embulk-output-mysql 0.7.10 → 0.7.11

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -0
  3. data/build.gradle +1 -2
  4. data/classpath/{embulk-output-jdbc-0.7.10.jar → embulk-output-jdbc-0.7.11.jar} +0 -0
  5. data/classpath/{embulk-output-mysql-0.7.10.jar → embulk-output-mysql-0.7.11.jar} +0 -0
  6. data/src/test/java/org/embulk/output/mysql/AfterLoadTest.java +136 -0
  7. data/src/test/java/org/embulk/output/mysql/BeforeLoadTest.java +124 -0
  8. data/src/test/java/org/embulk/output/mysql/MySQLTests.java +69 -0
  9. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/setup.sql +8 -0
  10. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/test1.csv +4 -0
  11. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_expected.diff +2 -0
  12. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_insert_after_load.yml +3 -0
  13. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_insert_after_load_expected.csv +5 -0
  14. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_insert_direct_after_load.yml +3 -0
  15. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_merge_after_load.yml +3 -0
  16. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_merge_after_load_expected.csv +5 -0
  17. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_merge_direct_after_load.yml +3 -0
  18. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_replace_after_load.yml +3 -0
  19. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_replace_after_load_expected.csv +3 -0
  20. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_truncate_insert_after_load.yml +3 -0
  21. data/src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_truncate_insert_after_load_expected.csv +3 -0
  22. data/src/test/resources/org/embulk/output/mysql/test/expect/before_load/setup.sql +8 -0
  23. data/src/test/resources/org/embulk/output/mysql/test/expect/before_load/test1.csv +4 -0
  24. data/src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_expected.diff +2 -0
  25. data/src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_insert_before_load.yml +3 -0
  26. data/src/test/resources/{mysql/data/test1.csv → org/embulk/output/mysql/test/expect/before_load/test_insert_before_load_expected.csv} +1 -0
  27. data/src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_insert_direct_before_load.yml +3 -0
  28. data/src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_merge_before_load.yml +3 -0
  29. data/src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_merge_before_load_expected.csv +4 -0
  30. data/src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_merge_direct_before_load.yml +3 -0
  31. data/src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_truncate_insert_before_load.yml +3 -0
  32. data/src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_truncate_insert_before_load_expected.csv +4 -0
  33. metadata +31 -17
  34. data/src/test/java/org/embulk/output/mysql/MySQLOutputPluginTest.java +0 -569
  35. data/src/test/resources/mysql/yml/test-insert-after-load.yml +0 -22
  36. data/src/test/resources/mysql/yml/test-insert-before-load.yml +0 -22
  37. data/src/test/resources/mysql/yml/test-insert-direct-after-load.yml +0 -22
  38. data/src/test/resources/mysql/yml/test-insert-direct-before-load.yml +0 -22
  39. data/src/test/resources/mysql/yml/test-merge-after-load.yml +0 -22
  40. data/src/test/resources/mysql/yml/test-merge-before-load.yml +0 -22
  41. data/src/test/resources/mysql/yml/test-merge-direct-after-load.yml +0 -22
  42. data/src/test/resources/mysql/yml/test-merge-direct-before-load.yml +0 -22
  43. data/src/test/resources/mysql/yml/test-replace-after-load.yml +0 -22
  44. data/src/test/resources/mysql/yml/test-truncate-insert-after-load.yml +0 -22
  45. data/src/test/resources/mysql/yml/test-truncate-insert-before-load.yml +0 -22
@@ -0,0 +1,8 @@
1
+ drop table if exists test1;
2
+
3
+ create table test1 (
4
+ id char(4),
5
+ int_item int,
6
+ varchar_item varchar(8),
7
+ primary key (id)
8
+ );
@@ -0,0 +1,4 @@
1
+ id:string,int_item:long,varchar_item:string
2
+ A001,9,a
3
+ A002,0,b
4
+ A003,9,c
@@ -0,0 +1,3 @@
1
+ table: test1
2
+ mode: insert
3
+ before_load: "delete from test1 where int_item = 9"
@@ -0,0 +1,3 @@
1
+ table: test1
2
+ mode: insert_direct
3
+ before_load: "delete from test1 where int_item = 9"
@@ -0,0 +1,3 @@
1
+ table: test1
2
+ mode: merge
3
+ before_load: "delete from test1 where int_item = 9"
@@ -0,0 +1,3 @@
1
+ table: test1
2
+ mode: merge_direct
3
+ before_load: "delete from test1 where int_item = 9"
@@ -0,0 +1,3 @@
1
+ table: test1
2
+ mode: truncate_insert
3
+ before_load: "insert into test1 values('C001', 0, 'x')"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-output-mysql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.10
4
+ version: 0.7.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-14 00:00:00.000000000 Z
11
+ date: 2017-08-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Inserts or updates records to a table.
14
14
  email:
@@ -19,8 +19,8 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - README.md
21
21
  - build.gradle
22
- - classpath/embulk-output-jdbc-0.7.10.jar
23
- - classpath/embulk-output-mysql-0.7.10.jar
22
+ - classpath/embulk-output-jdbc-0.7.11.jar
23
+ - classpath/embulk-output-mysql-0.7.11.jar
24
24
  - classpath/mysql-connector-java-5.1.34.jar
25
25
  - lib/embulk/output/mysql.rb
26
26
  - src/main/java/org/embulk/output/MySQLOutputPlugin.java
@@ -28,19 +28,33 @@ files:
28
28
  - src/main/java/org/embulk/output/mysql/MySQLBatchInsert.java
29
29
  - src/main/java/org/embulk/output/mysql/MySQLOutputConnection.java
30
30
  - src/main/java/org/embulk/output/mysql/MySQLOutputConnector.java
31
- - src/test/java/org/embulk/output/mysql/MySQLOutputPluginTest.java
32
- - src/test/resources/mysql/data/test1.csv
33
- - src/test/resources/mysql/yml/test-insert-after-load.yml
34
- - src/test/resources/mysql/yml/test-insert-before-load.yml
35
- - src/test/resources/mysql/yml/test-insert-direct-after-load.yml
36
- - src/test/resources/mysql/yml/test-insert-direct-before-load.yml
37
- - src/test/resources/mysql/yml/test-merge-after-load.yml
38
- - src/test/resources/mysql/yml/test-merge-before-load.yml
39
- - src/test/resources/mysql/yml/test-merge-direct-after-load.yml
40
- - src/test/resources/mysql/yml/test-merge-direct-before-load.yml
41
- - src/test/resources/mysql/yml/test-replace-after-load.yml
42
- - src/test/resources/mysql/yml/test-truncate-insert-after-load.yml
43
- - src/test/resources/mysql/yml/test-truncate-insert-before-load.yml
31
+ - src/test/java/org/embulk/output/mysql/AfterLoadTest.java
32
+ - src/test/java/org/embulk/output/mysql/BeforeLoadTest.java
33
+ - src/test/java/org/embulk/output/mysql/MySQLTests.java
34
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/setup.sql
35
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/test1.csv
36
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_expected.diff
37
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_insert_after_load.yml
38
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_insert_after_load_expected.csv
39
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_insert_direct_after_load.yml
40
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_merge_after_load.yml
41
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_merge_after_load_expected.csv
42
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_merge_direct_after_load.yml
43
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_replace_after_load.yml
44
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_replace_after_load_expected.csv
45
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_truncate_insert_after_load.yml
46
+ - src/test/resources/org/embulk/output/mysql/test/expect/after_load/test_truncate_insert_after_load_expected.csv
47
+ - src/test/resources/org/embulk/output/mysql/test/expect/before_load/setup.sql
48
+ - src/test/resources/org/embulk/output/mysql/test/expect/before_load/test1.csv
49
+ - src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_expected.diff
50
+ - src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_insert_before_load.yml
51
+ - src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_insert_before_load_expected.csv
52
+ - src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_insert_direct_before_load.yml
53
+ - src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_merge_before_load.yml
54
+ - src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_merge_before_load_expected.csv
55
+ - src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_merge_direct_before_load.yml
56
+ - src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_truncate_insert_before_load.yml
57
+ - src/test/resources/org/embulk/output/mysql/test/expect/before_load/test_truncate_insert_before_load_expected.csv
44
58
  homepage: https://github.com/embulk/embulk-output-jdbc
45
59
  licenses:
46
60
  - Apache 2.0
@@ -1,569 +0,0 @@
1
- package org.embulk.output.mysql;
2
-
3
- import static java.util.Locale.ENGLISH;
4
- import static org.junit.Assert.assertEquals;
5
-
6
- import java.sql.Connection;
7
- import java.sql.DriverManager;
8
- import java.sql.SQLException;
9
- import java.util.Iterator;
10
- import java.util.List;
11
-
12
- import org.embulk.output.AbstractJdbcOutputPluginTest;
13
- import org.embulk.output.MySQLOutputPlugin;
14
- import org.embulk.spi.OutputPlugin;
15
- import org.junit.Test;
16
-
17
-
18
- public class MySQLOutputPluginTest extends AbstractJdbcOutputPluginTest
19
- {
20
- @Override
21
- protected void prepare() throws SQLException
22
- {
23
- tester.addPlugin(OutputPlugin.class, "mysql", MySQLOutputPlugin.class);
24
-
25
- try {
26
- connect();
27
- } catch (SQLException e) {
28
- System.err.println(e);
29
- System.err.println(String.format(ENGLISH, "Warning: prepare a schema on MySQL (server = %s, port = %d, database = %s, user = %s, password = %s).",
30
- getHost(), getPort(), getDatabase(), getUser(), getPassword()));
31
- return;
32
- }
33
-
34
- enabled = true;
35
- }
36
-
37
- @Test
38
- public void testInsertDirectBeforeLoad() throws Exception
39
- {
40
- if (!enabled) {
41
- return;
42
- }
43
-
44
- String table = "test1";
45
-
46
- dropTable(table);
47
- createTable(table);
48
- executeSQL(String.format("INSERT INTO %s VALUES('B001', 0, 'z')", table));
49
- executeSQL(String.format("INSERT INTO %s VALUES('B002', 9, 'z')", table));
50
-
51
- test("/mysql/yml/test-insert-direct-before-load.yml");
52
-
53
- List<List<Object>> rows = select(table);
54
- assertEquals(4, rows.size());
55
- Iterator<List<Object>> i1 = rows.iterator();
56
- {
57
- Iterator<Object> i2 = i1.next().iterator();
58
- assertEquals("A001", i2.next());
59
- assertEquals(9, i2.next());
60
- assertEquals("a", i2.next());
61
- }
62
- {
63
- Iterator<Object> i2 = i1.next().iterator();
64
- assertEquals("A002", i2.next());
65
- assertEquals(0, i2.next());
66
- assertEquals("b", i2.next());
67
- }
68
- {
69
- Iterator<Object> i2 = i1.next().iterator();
70
- assertEquals("A003", i2.next());
71
- assertEquals(9, i2.next());
72
- assertEquals("c", i2.next());
73
- }
74
- {
75
- Iterator<Object> i2 = i1.next().iterator();
76
- assertEquals("B001", i2.next());
77
- assertEquals(0, i2.next());
78
- assertEquals("z", i2.next());
79
- }
80
- }
81
-
82
- @Test
83
- public void testInsertBeforeLoad() throws Exception
84
- {
85
- if (!enabled) {
86
- return;
87
- }
88
-
89
- String table = "test1";
90
-
91
- dropTable(table);
92
- createTable(table);
93
- executeSQL(String.format("INSERT INTO %s VALUES('B001', 0, 'z')", table));
94
- executeSQL(String.format("INSERT INTO %s VALUES('B002', 9, 'z')", table));
95
-
96
- test("/mysql/yml/test-insert-before-load.yml");
97
-
98
- List<List<Object>> rows = select(table);
99
- assertEquals(4, rows.size());
100
- Iterator<List<Object>> i1 = rows.iterator();
101
- {
102
- Iterator<Object> i2 = i1.next().iterator();
103
- assertEquals("A001", i2.next());
104
- assertEquals(9, i2.next());
105
- assertEquals("a", i2.next());
106
- }
107
- {
108
- Iterator<Object> i2 = i1.next().iterator();
109
- assertEquals("A002", i2.next());
110
- assertEquals(0, i2.next());
111
- assertEquals("b", i2.next());
112
- }
113
- {
114
- Iterator<Object> i2 = i1.next().iterator();
115
- assertEquals("A003", i2.next());
116
- assertEquals(9, i2.next());
117
- assertEquals("c", i2.next());
118
- }
119
- {
120
- Iterator<Object> i2 = i1.next().iterator();
121
- assertEquals("B001", i2.next());
122
- assertEquals(0, i2.next());
123
- assertEquals("z", i2.next());
124
- }
125
- }
126
-
127
- @Test
128
- public void testTruncateInsertBeforeLoad() throws Exception
129
- {
130
- if (!enabled) {
131
- return;
132
- }
133
-
134
- String table = "test1";
135
-
136
- dropTable(table);
137
- createTable(table);
138
- executeSQL(String.format("INSERT INTO %s VALUES('B001', 0, 'z')", table));
139
- executeSQL(String.format("INSERT INTO %s VALUES('B002', 9, 'z')", table));
140
-
141
- test("/mysql/yml/test-truncate-insert-before-load.yml");
142
-
143
- List<List<Object>> rows = select(table);
144
- assertEquals(4, rows.size());
145
- Iterator<List<Object>> i1 = rows.iterator();
146
- {
147
- Iterator<Object> i2 = i1.next().iterator();
148
- assertEquals("A001", i2.next());
149
- assertEquals(9, i2.next());
150
- assertEquals("a", i2.next());
151
- }
152
- {
153
- Iterator<Object> i2 = i1.next().iterator();
154
- assertEquals("A002", i2.next());
155
- assertEquals(0, i2.next());
156
- assertEquals("b", i2.next());
157
- }
158
- {
159
- Iterator<Object> i2 = i1.next().iterator();
160
- assertEquals("A003", i2.next());
161
- assertEquals(9, i2.next());
162
- assertEquals("c", i2.next());
163
- }
164
- {
165
- Iterator<Object> i2 = i1.next().iterator();
166
- assertEquals("C001", i2.next());
167
- assertEquals(0, i2.next());
168
- assertEquals("x", i2.next());
169
- }
170
- }
171
-
172
- @Test
173
- public void testMergeDirectBeforeLoad() throws Exception
174
- {
175
- if (!enabled) {
176
- return;
177
- }
178
-
179
- String table = "test1";
180
-
181
- dropTable(table);
182
- createTable(table);
183
- executeSQL(String.format("INSERT INTO %s VALUES('A002', 1, 'y')", table));
184
- executeSQL(String.format("INSERT INTO %s VALUES('A003', 1, 'y')", table));
185
- executeSQL(String.format("INSERT INTO %s VALUES('B001', 0, 'z')", table));
186
- executeSQL(String.format("INSERT INTO %s VALUES('B002', 9, 'z')", table));
187
-
188
- test("/mysql/yml/test-merge-direct-before-load.yml");
189
-
190
- List<List<Object>> rows = select(table);
191
- assertEquals(4, rows.size());
192
- Iterator<List<Object>> i1 = rows.iterator();
193
- {
194
- Iterator<Object> i2 = i1.next().iterator();
195
- assertEquals("A001", i2.next());
196
- assertEquals(9, i2.next());
197
- assertEquals("a", i2.next());
198
- }
199
- {
200
- Iterator<Object> i2 = i1.next().iterator();
201
- assertEquals("A002", i2.next());
202
- assertEquals(0, i2.next());
203
- assertEquals("b", i2.next());
204
- }
205
- {
206
- Iterator<Object> i2 = i1.next().iterator();
207
- assertEquals("A003", i2.next());
208
- assertEquals(9, i2.next());
209
- assertEquals("c", i2.next());
210
- }
211
- {
212
- Iterator<Object> i2 = i1.next().iterator();
213
- assertEquals("B001", i2.next());
214
- assertEquals(0, i2.next());
215
- assertEquals("z", i2.next());
216
- }
217
- }
218
-
219
- @Test
220
- public void testMergeBeforeLoad() throws Exception
221
- {
222
- if (!enabled) {
223
- return;
224
- }
225
-
226
- String table = "test1";
227
-
228
- dropTable(table);
229
- createTable(table);
230
- executeSQL(String.format("INSERT INTO %s VALUES('A002', 1, 'y')", table));
231
- executeSQL(String.format("INSERT INTO %s VALUES('A003', 1, 'y')", table));
232
- executeSQL(String.format("INSERT INTO %s VALUES('B001', 0, 'z')", table));
233
- executeSQL(String.format("INSERT INTO %s VALUES('B002', 9, 'z')", table));
234
-
235
- test("/mysql/yml/test-merge-before-load.yml");
236
-
237
- List<List<Object>> rows = select(table);
238
- assertEquals(4, rows.size());
239
- Iterator<List<Object>> i1 = rows.iterator();
240
- {
241
- Iterator<Object> i2 = i1.next().iterator();
242
- assertEquals("A001", i2.next());
243
- assertEquals(9, i2.next());
244
- assertEquals("a", i2.next());
245
- }
246
- {
247
- Iterator<Object> i2 = i1.next().iterator();
248
- assertEquals("A002", i2.next());
249
- assertEquals(0, i2.next());
250
- assertEquals("b", i2.next());
251
- }
252
- {
253
- Iterator<Object> i2 = i1.next().iterator();
254
- assertEquals("A003", i2.next());
255
- assertEquals(9, i2.next());
256
- assertEquals("c", i2.next());
257
- }
258
- {
259
- Iterator<Object> i2 = i1.next().iterator();
260
- assertEquals("B001", i2.next());
261
- assertEquals(0, i2.next());
262
- assertEquals("z", i2.next());
263
- }
264
- }
265
-
266
- @Test
267
- public void testInsertDirectAfterLoad() throws Exception
268
- {
269
- if (!enabled) {
270
- return;
271
- }
272
-
273
- String table = "test1";
274
-
275
- dropTable(table);
276
- createTable(table);
277
- executeSQL(String.format("INSERT INTO %s VALUES('B001', 0, 'z')", table));
278
- executeSQL(String.format("INSERT INTO %s VALUES('B002', 9, 'z')", table));
279
-
280
- test("/mysql/yml/test-insert-direct-after-load.yml");
281
-
282
- List<List<Object>> rows = select(table);
283
- assertEquals(5, rows.size());
284
- Iterator<List<Object>> i1 = rows.iterator();
285
- {
286
- Iterator<Object> i2 = i1.next().iterator();
287
- assertEquals("A001", i2.next());
288
- assertEquals(9, i2.next());
289
- assertEquals("x", i2.next());
290
- }
291
- {
292
- Iterator<Object> i2 = i1.next().iterator();
293
- assertEquals("A002", i2.next());
294
- assertEquals(0, i2.next());
295
- assertEquals("b", i2.next());
296
- }
297
- {
298
- Iterator<Object> i2 = i1.next().iterator();
299
- assertEquals("A003", i2.next());
300
- assertEquals(9, i2.next());
301
- assertEquals("x", i2.next());
302
- }
303
- {
304
- Iterator<Object> i2 = i1.next().iterator();
305
- assertEquals("B001", i2.next());
306
- assertEquals(0, i2.next());
307
- assertEquals("z", i2.next());
308
- }
309
- {
310
- Iterator<Object> i2 = i1.next().iterator();
311
- assertEquals("B002", i2.next());
312
- assertEquals(9, i2.next());
313
- assertEquals("x", i2.next());
314
- }
315
- }
316
-
317
- @Test
318
- public void testInsertAfterLoad() throws Exception
319
- {
320
- if (!enabled) {
321
- return;
322
- }
323
-
324
- String table = "test1";
325
-
326
- dropTable(table);
327
- createTable(table);
328
- executeSQL(String.format("INSERT INTO %s VALUES('B001', 0, 'z')", table));
329
- executeSQL(String.format("INSERT INTO %s VALUES('B002', 9, 'z')", table));
330
-
331
- test("/mysql/yml/test-insert-after-load.yml");
332
-
333
- List<List<Object>> rows = select(table);
334
- assertEquals(5, rows.size());
335
- Iterator<List<Object>> i1 = rows.iterator();
336
- {
337
- Iterator<Object> i2 = i1.next().iterator();
338
- assertEquals("A001", i2.next());
339
- assertEquals(9, i2.next());
340
- assertEquals("x", i2.next());
341
- }
342
- {
343
- Iterator<Object> i2 = i1.next().iterator();
344
- assertEquals("A002", i2.next());
345
- assertEquals(0, i2.next());
346
- assertEquals("b", i2.next());
347
- }
348
- {
349
- Iterator<Object> i2 = i1.next().iterator();
350
- assertEquals("A003", i2.next());
351
- assertEquals(9, i2.next());
352
- assertEquals("x", i2.next());
353
- }
354
- {
355
- Iterator<Object> i2 = i1.next().iterator();
356
- assertEquals("B001", i2.next());
357
- assertEquals(0, i2.next());
358
- assertEquals("z", i2.next());
359
- }
360
- {
361
- Iterator<Object> i2 = i1.next().iterator();
362
- assertEquals("B002", i2.next());
363
- assertEquals(9, i2.next());
364
- assertEquals("x", i2.next());
365
- }
366
- }
367
-
368
- @Test
369
- public void testTruncateInsertAfterLoad() throws Exception
370
- {
371
- if (!enabled) {
372
- return;
373
- }
374
-
375
- String table = "test1";
376
-
377
- dropTable(table);
378
- createTable(table);
379
- executeSQL(String.format("INSERT INTO %s VALUES('B001', 0, 'z')", table));
380
- executeSQL(String.format("INSERT INTO %s VALUES('B002', 9, 'z')", table));
381
-
382
- test("/mysql/yml/test-truncate-insert-after-load.yml");
383
-
384
- List<List<Object>> rows = select(table);
385
- assertEquals(3, rows.size());
386
- Iterator<List<Object>> i1 = rows.iterator();
387
- {
388
- Iterator<Object> i2 = i1.next().iterator();
389
- assertEquals("A001", i2.next());
390
- assertEquals(9, i2.next());
391
- assertEquals("x", i2.next());
392
- }
393
- {
394
- Iterator<Object> i2 = i1.next().iterator();
395
- assertEquals("A002", i2.next());
396
- assertEquals(0, i2.next());
397
- assertEquals("b", i2.next());
398
- }
399
- {
400
- Iterator<Object> i2 = i1.next().iterator();
401
- assertEquals("A003", i2.next());
402
- assertEquals(9, i2.next());
403
- assertEquals("x", i2.next());
404
- }
405
- }
406
-
407
- @Test
408
- public void testReplaceAfterLoad() throws Exception
409
- {
410
- if (!enabled) {
411
- return;
412
- }
413
-
414
- String table = "test1";
415
-
416
- dropTable(table);
417
- createTable(table);
418
- executeSQL(String.format("INSERT INTO %s VALUES('B001', 0, 'z')", table));
419
- executeSQL(String.format("INSERT INTO %s VALUES('B002', 9, 'z')", table));
420
-
421
- test("/mysql/yml/test-replace-after-load.yml");
422
-
423
- List<List<Object>> rows = select(table);
424
- assertEquals(3, rows.size());
425
- Iterator<List<Object>> i1 = rows.iterator();
426
- {
427
- Iterator<Object> i2 = i1.next().iterator();
428
- assertEquals("A001", i2.next());
429
- assertEquals(9L, i2.next());
430
- assertEquals("x", i2.next());
431
- }
432
- {
433
- Iterator<Object> i2 = i1.next().iterator();
434
- assertEquals("A002", i2.next());
435
- assertEquals(0L, i2.next());
436
- assertEquals("b", i2.next());
437
- }
438
- {
439
- Iterator<Object> i2 = i1.next().iterator();
440
- assertEquals("A003", i2.next());
441
- assertEquals(9L, i2.next());
442
- assertEquals("x", i2.next());
443
- }
444
- }
445
-
446
- @Test
447
- public void testMergeDirectAfterLoad() throws Exception
448
- {
449
- if (!enabled) {
450
- return;
451
- }
452
-
453
- String table = "test1";
454
-
455
- dropTable(table);
456
- createTable(table);
457
- executeSQL(String.format("INSERT INTO %s VALUES('A002', 1, 'y')", table));
458
- executeSQL(String.format("INSERT INTO %s VALUES('A003', 1, 'y')", table));
459
- executeSQL(String.format("INSERT INTO %s VALUES('B001', 0, 'z')", table));
460
- executeSQL(String.format("INSERT INTO %s VALUES('B002', 9, 'z')", table));
461
-
462
- test("/mysql/yml/test-merge-direct-after-load.yml");
463
-
464
- List<List<Object>> rows = select(table);
465
- assertEquals(5, rows.size());
466
- Iterator<List<Object>> i1 = rows.iterator();
467
- {
468
- Iterator<Object> i2 = i1.next().iterator();
469
- assertEquals("A001", i2.next());
470
- assertEquals(9, i2.next());
471
- assertEquals("x", i2.next());
472
- }
473
- {
474
- Iterator<Object> i2 = i1.next().iterator();
475
- assertEquals("A002", i2.next());
476
- assertEquals(0, i2.next());
477
- assertEquals("b", i2.next());
478
- }
479
- {
480
- Iterator<Object> i2 = i1.next().iterator();
481
- assertEquals("A003", i2.next());
482
- assertEquals(9, i2.next());
483
- assertEquals("x", i2.next());
484
- }
485
- {
486
- Iterator<Object> i2 = i1.next().iterator();
487
- assertEquals("B001", i2.next());
488
- assertEquals(0, i2.next());
489
- assertEquals("z", i2.next());
490
- }
491
- {
492
- Iterator<Object> i2 = i1.next().iterator();
493
- assertEquals("B002", i2.next());
494
- assertEquals(9, i2.next());
495
- assertEquals("x", i2.next());
496
- }
497
- }
498
-
499
- @Test
500
- public void testMergeAfterLoad() throws Exception
501
- {
502
- if (!enabled) {
503
- return;
504
- }
505
-
506
- String table = "test1";
507
-
508
- dropTable(table);
509
- createTable(table);
510
- executeSQL(String.format("INSERT INTO %s VALUES('A002', 1, 'y')", table));
511
- executeSQL(String.format("INSERT INTO %s VALUES('A003', 1, 'y')", table));
512
- executeSQL(String.format("INSERT INTO %s VALUES('B001', 0, 'z')", table));
513
- executeSQL(String.format("INSERT INTO %s VALUES('B002', 9, 'z')", table));
514
-
515
- test("/mysql/yml/test-merge-after-load.yml");
516
-
517
- List<List<Object>> rows = select(table);
518
- assertEquals(5, rows.size());
519
- Iterator<List<Object>> i1 = rows.iterator();
520
- {
521
- Iterator<Object> i2 = i1.next().iterator();
522
- assertEquals("A001", i2.next());
523
- assertEquals(9, i2.next());
524
- assertEquals("x", i2.next());
525
- }
526
- {
527
- Iterator<Object> i2 = i1.next().iterator();
528
- assertEquals("A002", i2.next());
529
- assertEquals(0, i2.next());
530
- assertEquals("b", i2.next());
531
- }
532
- {
533
- Iterator<Object> i2 = i1.next().iterator();
534
- assertEquals("A003", i2.next());
535
- assertEquals(9, i2.next());
536
- assertEquals("x", i2.next());
537
- }
538
- {
539
- Iterator<Object> i2 = i1.next().iterator();
540
- assertEquals("B001", i2.next());
541
- assertEquals(0, i2.next());
542
- assertEquals("z", i2.next());
543
- }
544
- {
545
- Iterator<Object> i2 = i1.next().iterator();
546
- assertEquals("B002", i2.next());
547
- assertEquals(9, i2.next());
548
- assertEquals("x", i2.next());
549
- }
550
- }
551
-
552
- private void createTable(String table) throws SQLException
553
- {
554
- String sql = String.format("create table %s ("
555
- + "id char(4),"
556
- + "int_item int,"
557
- + "varchar_item varchar(8),"
558
- + "primary key (id))", table);
559
- executeSQL(sql);
560
- }
561
-
562
- @Override
563
- protected Connection connect() throws SQLException
564
- {
565
- return DriverManager.getConnection(String.format(ENGLISH, "jdbc:mysql://%s:%d/%s", getHost(), getPort(), getDatabase()),
566
- getUser(), getPassword());
567
- }
568
-
569
- }