fluent-plugin-redshift 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6ff3e820b9cccac040efc73a11cf261f4a307dda
4
- data.tar.gz: f00f6cc70b5cf75ac399ba65cc25f773d02123db
3
+ metadata.gz: 2b88c3334997e74901efda542d441ee184e6fba6
4
+ data.tar.gz: ddaf48cb0097b54d1232057d17f6e2b80f1d6675
5
5
  SHA512:
6
- metadata.gz: 096462829885b50f9cd01852843c80fd8096d028d8e9c0f45160fc2be4f3f66e43f7e28cf4b137c79f46bbbaad8f042693ee72e9b00f793e16a2dd280d1e7b9b
7
- data.tar.gz: 739976ff4077c4ce34c51ee311dcdc10dd186f9f45ab39414292f8f49b9d87d2ad2dec5f2540f3f465bf6604932e05c115d2da5250b619236df580f7840ebf29
6
+ metadata.gz: 5e72f127433af970ac505de35235e0879eb9390f1bf3b43e20fea896d54ed25347071efd6b42e769bf7e77525e49355f7b085c43f9fbad5c464afd0182c02a5a
7
+ data.tar.gz: 082a35783e38b79f31a216ef01a3625e6c492d007f58b186a0edad1a4dcae8c1fba72a9c5bfa850f9089937aab86974cafb797ccf34b9e2acfa3733d7a6de093
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -64,7 +64,7 @@ DESC
64
64
  Schema name to store data. By default, this option is not
65
65
  Set and find table without schema as your own search_path.
66
66
  DESC
67
- config_param :redshift_copy_base_options, :string , :default => "FILLRECORD ACCEPTANYDATE TRUNCATECOLUMNS"
67
+ config_param :redshift_copy_base_options, :string , :default => "ESCAPE FILLRECORD ACCEPTANYDATE TRUNCATECOLUMNS"
68
68
  config_param :redshift_copy_options, :string , :default => nil
69
69
  config_param :redshift_connect_timeout, :integer, :default => 10,
70
70
  :desc => "Maximum time to wait for connection to succeed."
@@ -214,7 +214,10 @@ DESC
214
214
  else
215
215
  "CREDENTIALS 'aws_iam_role=#{@aws_iam_role}'"
216
216
  end
217
- "copy #{@table_name_with_schema}#{copy_columns} from '%s' #{credentials} delimiter '#{@delimiter}' GZIP ESCAPE #{@redshift_copy_base_options} #{@redshift_copy_options};"
217
+ escape = if !@redshift_copy_base_options.include?('ESCAPE') && (json? || msgpack?)
218
+ " ESCAPE"
219
+ end
220
+ "copy #{@table_name_with_schema}#{copy_columns} from '%s' #{credentials} delimiter '#{@delimiter}' GZIP#{escape} #{@redshift_copy_base_options} #{@redshift_copy_options};"
218
221
  end
219
222
 
220
223
 
@@ -107,13 +107,14 @@ class RedshiftOutputTest < Test::Unit::TestCase
107
107
  assert_equal "test_password", d.instance.redshift_password
108
108
  assert_equal "test_table", d.instance.redshift_tablename
109
109
  assert_equal nil, d.instance.redshift_schemaname
110
- assert_equal "FILLRECORD ACCEPTANYDATE TRUNCATECOLUMNS", d.instance.redshift_copy_base_options
110
+ assert_equal "ESCAPE FILLRECORD ACCEPTANYDATE TRUNCATECOLUMNS", d.instance.redshift_copy_base_options
111
111
  assert_equal nil, d.instance.redshift_copy_options
112
112
  assert_equal "csv", d.instance.file_type
113
113
  assert_equal ",", d.instance.delimiter
114
114
  assert_equal true, d.instance.utc
115
115
  assert_equal MAINTENANCE_FILE_PATH_FOR_TEST, d.instance.maintenance_file_path
116
116
  assert_equal nil, d.instance.redshift_copy_columns
117
+ assert_equal true, d.instance.instance_variable_get("@copy_sql_template").include?('ESCAPE')
117
118
  end
118
119
  def test_configure_with_schemaname
119
120
  d = create_driver(CONFIG_JSON_WITH_SCHEMA)
@@ -147,16 +148,28 @@ class RedshiftOutputTest < Test::Unit::TestCase
147
148
  d1 = create_driver(CONFIG_TSV)
148
149
  assert_equal "tsv", d1.instance.file_type
149
150
  assert_equal "\t", d1.instance.delimiter
151
+ assert_equal true, d1.instance.instance_variable_get("@copy_sql_template").include?('ESCAPE')
152
+ end
153
+ def test_configure_tsv_without_copy_escape
154
+ d1 = create_driver(CONFIG_TSV + "\n redshift_copy_base_options FILLRECORD ACCEPTANYDATE TRUNCATECOLUMNS")
155
+ assert_equal false, d1.instance.instance_variable_get("@copy_sql_template").include?('ESCAPE')
150
156
  end
151
157
  def test_configure_json
152
158
  d2 = create_driver(CONFIG_JSON)
153
159
  assert_equal "json", d2.instance.file_type
154
160
  assert_equal "\t", d2.instance.delimiter
161
+ assert_match /^copy test_table.*ESCAPE.*/, d2.instance.instance_variable_get("@copy_sql_template")
162
+ end
163
+ def test_configure_json_without_copy_escape
164
+ d1 = create_driver(CONFIG_JSON + "\n redshift_copy_base_options FILLRECORD ACCEPTANYDATE TRUNCATECOLUMNS")
165
+ # It should add ESCAPE option since json value is escaped anyway by our code
166
+ assert_equal true, d1.instance.instance_variable_get("@copy_sql_template").include?('ESCAPE')
155
167
  end
156
168
  def test_configure_msgpack
157
169
  d2 = create_driver(CONFIG_MSGPACK)
158
170
  assert_equal "msgpack", d2.instance.file_type
159
171
  assert_equal "\t", d2.instance.delimiter
172
+ assert_match /^copy test_table.*ESCAPE.*/, d2.instance.instance_variable_get("@copy_sql_template")
160
173
  end
161
174
  def test_configure_original_file_type
162
175
  d3 = create_driver(CONFIG_PIPE_DELIMITER)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-redshift
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masashi Miyazaki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-06 00:00:00.000000000 Z
11
+ date: 2016-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd