embulk-input-oracle 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -0
  3. data/classpath/{embulk-input-jdbc-0.8.2.jar → embulk-input-jdbc-0.8.3.jar} +0 -0
  4. data/classpath/embulk-input-oracle-0.8.3.jar +0 -0
  5. data/src/main/java/org/embulk/input/OracleInputPlugin.java +14 -6
  6. data/src/main/java/org/embulk/input/oracle/getter/OracleColumnGetterFactory.java +36 -0
  7. data/src/test/java/org/embulk/input/oracle/BasicTest.java +7 -7
  8. data/src/test/java/org/embulk/input/oracle/IncrementalTest.java +144 -0
  9. data/src/test/java/org/embulk/input/oracle/OracleTests.java +10 -10
  10. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/config_1.yml +4 -0
  11. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/config_2.yml +4 -0
  12. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/expected_1.csv +4 -0
  13. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/expected_1.diff +3 -0
  14. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/expected_2.csv +2 -0
  15. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/expected_2.diff +3 -0
  16. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/insert_more.sql +5 -0
  17. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/setup.sql +13 -0
  18. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/config_1.yml +5 -0
  19. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/config_2.yml +6 -0
  20. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/expected_1.csv +4 -0
  21. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/expected_1.diff +3 -0
  22. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/expected_2.csv +2 -0
  23. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/expected_2.diff +3 -0
  24. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/insert_more.sql +6 -0
  25. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/setup.sql +13 -0
  26. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/config_1.yml +4 -0
  27. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/config_2.yml +4 -0
  28. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/expected_1.csv +7 -0
  29. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/expected_1.diff +3 -0
  30. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/expected_2.csv +3 -0
  31. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/expected_2.diff +3 -0
  32. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/insert_more.sql +8 -0
  33. data/src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/setup.sql +16 -0
  34. metadata +30 -4
  35. data/classpath/embulk-input-oracle-0.8.2.jar +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c867257a633c564da19ca21214e4de9d68975354
4
- data.tar.gz: fd92032ed60d1f001d5a5cc216b60a90fd2ea390
3
+ metadata.gz: 7eab9f730371efeebe6854a88e07408700823ee0
4
+ data.tar.gz: 1f7b6cd1baee130768aca701b2a24a5bfc25136a
5
5
  SHA512:
6
- metadata.gz: 69859c738dc5693d6f2d1d3eb959d79a97bb9fdd2563c7a881997f714df33f46acb198ae1414ed452307571137fa051538a6fbc26b7e0c34b0e1657caff9e29f
7
- data.tar.gz: 34b382e340ebe2d7f0f6c844c6b2eb7b4c7a924672b80babe3669b8672a5c8598fa05412bb695014cc9e8e8fb009409494923588c98618622e9a3b33cfa776e7
6
+ metadata.gz: 39a7950675fad10c2284641e4838bab0ceb8c2cc934be34a6252ee57ec2f6c144dc00a0d8ecf64a1fb5b351a1e60870bd3c6b8dc87fd36474ba211d0b3b8ca50
7
+ data.tar.gz: 9b660cc8343c625445b75ade1fdc321136761271fb776451edb459b0fbd3a170bc1cf9fa67ec8be2dc013c5ebd00e1e6187ceedb3133e8f058cf709d721e8650
data/README.md CHANGED
@@ -149,3 +149,22 @@ in:
149
149
  ```
150
150
  $ ./gradlew gem
151
151
  ```
152
+
153
+ Running tests:
154
+
155
+ You need to add ojdbc7.jar to embulk-input-oracle/driver
156
+
157
+ Also oracle.yml is needed
158
+ ```
159
+ type: oracle
160
+ host: localhost
161
+ port: 1521
162
+ database: xe
163
+ user: system
164
+ password: pass
165
+ ```
166
+
167
+ To run tests for oracle project only
168
+ ```
169
+ $ EMBULK_INPUT_ORACLE_TEST_CONFIG=oracle.yml ./gradlew :embulk-input-oracle:check --info
170
+ ```
@@ -1,17 +1,20 @@
1
1
  package org.embulk.input;
2
2
 
3
- import java.sql.Connection;
4
- import java.sql.DriverManager;
5
- import java.sql.SQLException;
6
- import java.util.Properties;
7
-
3
+ import com.google.common.base.Optional;
8
4
  import org.embulk.config.Config;
9
5
  import org.embulk.config.ConfigDefault;
10
6
  import org.embulk.input.jdbc.AbstractJdbcInputPlugin;
11
7
  import org.embulk.input.jdbc.JdbcInputConnection;
8
+ import org.embulk.input.jdbc.getter.ColumnGetterFactory;
12
9
  import org.embulk.input.oracle.OracleInputConnection;
10
+ import org.embulk.input.oracle.getter.OracleColumnGetterFactory;
11
+ import org.embulk.spi.PageBuilder;
12
+ import org.joda.time.DateTimeZone;
13
13
 
14
- import com.google.common.base.Optional;
14
+ import java.sql.Connection;
15
+ import java.sql.DriverManager;
16
+ import java.sql.SQLException;
17
+ import java.util.Properties;
15
18
 
16
19
  public class OracleInputPlugin
17
20
  extends AbstractJdbcInputPlugin
@@ -130,4 +133,9 @@ public class OracleInputPlugin
130
133
  }
131
134
  }
132
135
 
136
+ @Override
137
+ protected ColumnGetterFactory newColumnGetterFactory(PageBuilder pageBuilder, DateTimeZone dateTimeZone) {
138
+ return new OracleColumnGetterFactory(pageBuilder, dateTimeZone);
139
+ }
140
+
133
141
  }
@@ -0,0 +1,36 @@
1
+ package org.embulk.input.oracle.getter;
2
+
3
+ import org.embulk.input.jdbc.AbstractJdbcInputPlugin;
4
+ import org.embulk.input.jdbc.JdbcColumn;
5
+ import org.embulk.input.jdbc.JdbcColumnOption;
6
+ import org.embulk.input.jdbc.JdbcInputConnection;
7
+ import org.embulk.input.jdbc.getter.ColumnGetter;
8
+ import org.embulk.input.jdbc.getter.ColumnGetterFactory;
9
+ import org.embulk.input.jdbc.getter.TimestampWithoutTimeZoneIncrementalHandler;
10
+ import org.embulk.spi.PageBuilder;
11
+ import org.joda.time.DateTimeZone;
12
+
13
+ public class OracleColumnGetterFactory extends ColumnGetterFactory
14
+ {
15
+
16
+ public OracleColumnGetterFactory(PageBuilder to, DateTimeZone defaultTimeZone) {
17
+ super(to, defaultTimeZone);
18
+ }
19
+
20
+ @Override
21
+ public ColumnGetter newColumnGetter(JdbcInputConnection con, AbstractJdbcInputPlugin.PluginTask task, JdbcColumn column, JdbcColumnOption option)
22
+ {
23
+
24
+ ColumnGetter getter = super.newColumnGetter(con, task, column, option);
25
+
26
+ switch (column.getTypeName()) {
27
+ case "DATE":
28
+ return new TimestampWithoutTimeZoneIncrementalHandler(getter);
29
+ case "TIMESTAMP":
30
+ return new TimestampWithoutTimeZoneIncrementalHandler(getter);
31
+ default:
32
+ return getter;
33
+ }
34
+ }
35
+
36
+ }
@@ -1,12 +1,5 @@
1
1
  package org.embulk.input.oracle;
2
2
 
3
- import static org.embulk.input.oracle.OracleTests.execute;
4
- import static org.embulk.test.EmbulkTests.readSortedFile;
5
- import static org.hamcrest.Matchers.is;
6
- import static org.junit.Assert.assertThat;
7
-
8
- import java.nio.file.Path;
9
-
10
3
  import org.embulk.config.ConfigDiff;
11
4
  import org.embulk.config.ConfigSource;
12
5
  import org.embulk.input.OracleInputPlugin;
@@ -17,6 +10,13 @@ import org.junit.Before;
17
10
  import org.junit.Rule;
18
11
  import org.junit.Test;
19
12
 
13
+ import java.nio.file.Path;
14
+
15
+ import static org.embulk.input.oracle.OracleTests.execute;
16
+ import static org.embulk.test.EmbulkTests.readSortedFile;
17
+ import static org.hamcrest.Matchers.is;
18
+ import static org.junit.Assert.assertThat;
19
+
20
20
  public class BasicTest
21
21
  {
22
22
  private static final String BASIC_RESOURCE_PATH = "org/embulk/input/oracle/test/expect/basic/";
@@ -0,0 +1,144 @@
1
+ package org.embulk.input.oracle;
2
+
3
+ import org.embulk.config.ConfigDiff;
4
+ import org.embulk.config.ConfigSource;
5
+ import org.embulk.input.OracleInputPlugin;
6
+ import org.embulk.spi.InputPlugin;
7
+ import org.embulk.test.EmbulkTests;
8
+ import org.embulk.test.TestingEmbulk;
9
+ import org.embulk.test.TestingEmbulk.RunResult;
10
+ import org.junit.Before;
11
+ import org.junit.Rule;
12
+ import org.junit.Test;
13
+
14
+ import java.nio.file.Path;
15
+
16
+ import static org.embulk.input.oracle.OracleTests.execute;
17
+ import static org.embulk.test.EmbulkTests.readSortedFile;
18
+ import static org.hamcrest.Matchers.is;
19
+ import static org.junit.Assert.assertThat;
20
+
21
+ public class IncrementalTest
22
+ {
23
+ private static final String BASIC_RESOURCE_PATH = "org/embulk/input/oracle/test/expect/incremental/";
24
+
25
+ private static ConfigSource loadYamlResource(TestingEmbulk embulk, String fileName)
26
+ {
27
+ return embulk.loadYamlResource(BASIC_RESOURCE_PATH + fileName);
28
+ }
29
+
30
+ private static String readResource(String fileName)
31
+ {
32
+ return EmbulkTests.readResource(BASIC_RESOURCE_PATH + fileName);
33
+ }
34
+
35
+ @Rule
36
+ public TestingEmbulk embulk = TestingEmbulk.builder()
37
+ .registerPlugin(InputPlugin.class, "oracle", OracleInputPlugin.class)
38
+ .build();
39
+
40
+ private ConfigSource baseConfig;
41
+
42
+ @Before
43
+ public void setup()
44
+ {
45
+ baseConfig = OracleTests.baseConfig();
46
+ }
47
+
48
+ @Test
49
+ public void simpleInt() throws Exception
50
+ {
51
+ // setup first rows
52
+ execute(embulk, readResource("int/setup.sql"));
53
+
54
+ Path out1 = embulk.createTempFile("csv");
55
+ RunResult result1 = embulk.runInput(
56
+ baseConfig.merge(loadYamlResource(embulk, "int/config_1.yml")),
57
+ out1);
58
+ assertThat(
59
+ readSortedFile(out1),
60
+ is(readResource("int/expected_1.csv")));
61
+ assertThat(
62
+ result1.getConfigDiff(),
63
+ is((ConfigDiff) loadYamlResource(embulk, "int/expected_1.diff")));
64
+
65
+ // insert more rows
66
+ execute(embulk, readResource("int/insert_more.sql"));
67
+
68
+ Path out2 = embulk.createTempFile("csv");
69
+ RunResult result2 = embulk.runInput(
70
+ baseConfig.merge(loadYamlResource(embulk, "int/config_2.yml")),
71
+ out2);
72
+ assertThat(
73
+ readSortedFile(out2),
74
+ is(readResource("int/expected_2.csv")));
75
+ assertThat(
76
+ result2.getConfigDiff(),
77
+ is((ConfigDiff) loadYamlResource(embulk, "int/expected_2.diff")));
78
+ }
79
+
80
+ @Test
81
+ public void simpleDate() throws Exception
82
+ {
83
+ // setup first rows
84
+ execute(embulk, readResource("date/setup.sql"));
85
+
86
+ Path out1 = embulk.createTempFile("csv");
87
+ RunResult result1 = embulk.runInput(
88
+ baseConfig.merge(loadYamlResource(embulk, "date/config_1.yml")),
89
+ out1);
90
+ assertThat(
91
+ readSortedFile(out1),
92
+ is(readResource("date/expected_1.csv")));
93
+ assertThat(
94
+ result1.getConfigDiff(),
95
+ is((ConfigDiff) loadYamlResource(embulk, "date/expected_1.diff")));
96
+
97
+ // insert more rows
98
+ execute(embulk, readResource("date/insert_more.sql"));
99
+
100
+ Path out2 = embulk.createTempFile("csv");
101
+ RunResult result2 = embulk.runInput(
102
+ baseConfig.merge(loadYamlResource(embulk, "date/config_2.yml")),
103
+ out2);
104
+ assertThat(
105
+ readSortedFile(out2),
106
+ is(readResource("date/expected_2.csv")));
107
+ assertThat(
108
+ result2.getConfigDiff(),
109
+ is((ConfigDiff) loadYamlResource(embulk, "date/expected_2.diff")));
110
+ }
111
+
112
+ @Test
113
+ public void simpleTimestamp() throws Exception
114
+ {
115
+ // setup first rows
116
+ execute(embulk, readResource("timestamp/setup.sql"));
117
+
118
+ Path out1 = embulk.createTempFile("csv");
119
+ RunResult result1 = embulk.runInput(
120
+ baseConfig.merge(loadYamlResource(embulk, "timestamp/config_1.yml")),
121
+ out1);
122
+ assertThat(
123
+ readSortedFile(out1),
124
+ is(readResource("timestamp/expected_1.csv")));
125
+ assertThat(
126
+ result1.getConfigDiff(),
127
+ is((ConfigDiff) loadYamlResource(embulk, "timestamp/expected_1.diff")));
128
+
129
+ // insert more rows
130
+ execute(embulk, readResource("timestamp/insert_more.sql"));
131
+
132
+ Path out2 = embulk.createTempFile("csv");
133
+ RunResult result2 = embulk.runInput(
134
+ baseConfig.merge(loadYamlResource(embulk, "timestamp/config_2.yml")),
135
+ out2);
136
+ assertThat(
137
+ readSortedFile(out2),
138
+ is(readResource("timestamp/expected_2.csv")));
139
+ assertThat(
140
+ result2.getConfigDiff(),
141
+ is((ConfigDiff) loadYamlResource(embulk, "timestamp/expected_2.diff")));
142
+ }
143
+
144
+ }
@@ -1,6 +1,10 @@
1
1
  package org.embulk.input.oracle;
2
2
 
3
- import static java.util.Locale.ENGLISH;
3
+ import com.google.common.base.Throwables;
4
+ import com.google.common.io.ByteStreams;
5
+ import org.embulk.config.ConfigSource;
6
+ import org.embulk.test.EmbulkTests;
7
+ import org.embulk.test.TestingEmbulk;
4
8
 
5
9
  import java.io.IOException;
6
10
  import java.nio.charset.Charset;
@@ -8,12 +12,7 @@ import java.nio.file.Files;
8
12
  import java.nio.file.Path;
9
13
  import java.util.Arrays;
10
14
 
11
- import org.embulk.config.ConfigSource;
12
- import org.embulk.test.EmbulkTests;
13
- import org.embulk.test.TestingEmbulk;
14
-
15
- import com.google.common.base.Throwables;
16
- import com.google.common.io.ByteStreams;
15
+ import static java.util.Locale.ENGLISH;
17
16
 
18
17
  public class OracleTests
19
18
  {
@@ -23,7 +22,7 @@ public class OracleTests
23
22
  }
24
23
 
25
24
  public static void execute(TestingEmbulk embulk, String sql) throws IOException
26
- {
25
+ {
27
26
  Path sqlFile = embulk.createTempFile("sql");
28
27
  Files.write(sqlFile, Arrays.asList(sql), Charset.forName("UTF8"));
29
28
 
@@ -33,11 +32,12 @@ public class OracleTests
33
32
  String user = config.get(String.class, "user");
34
33
  String password = config.get(String.class, "password");
35
34
  String database = config.get(String.class, "database");
35
+
36
36
  ProcessBuilder pb = new ProcessBuilder(
37
- "SQLPLUS",
37
+ "sql",
38
38
  user + "/" + password + "@" + host + ":" + port + "/" + database,
39
39
  "@" + sqlFile.toFile().getAbsolutePath());
40
- pb.environment().put("NLS_LANG", "American_America.UTF8");
40
+ pb.environment().put("JAVA_TOOL_OPTIONS", "-Dfile.encoding=UTF8");
41
41
  pb.redirectErrorStream(true);
42
42
  int code;
43
43
  try {
@@ -0,0 +1,4 @@
1
+ table: load
2
+ default_time_zone: +0300
3
+ incremental: true
4
+ incremental_columns: [dt]
@@ -0,0 +1,4 @@
1
+ table: load
2
+ last_record: ['2016-11-02T04:00:04.000000']
3
+ incremental: true
4
+ incremental_columns: [dt]
@@ -0,0 +1,4 @@
1
+ 2016-11-01 23:00:01.000000 +0000,first
2
+ 2016-11-02 00:00:02.000000 +0000,first
3
+ 2016-11-02 01:00:03.000000 +0000,first
4
+ 2016-11-02 02:00:04.000000 +0000,first
@@ -0,0 +1,3 @@
1
+ in:
2
+ last_record: ['2016-11-02T04:00:04.000000']
3
+ out: {}
@@ -0,0 +1,2 @@
1
+ 2016-11-02 02:00:06.000000 +0000,more_load
2
+ 2016-11-02 02:00:06.000000 +0000,more_load
@@ -0,0 +1,3 @@
1
+ in:
2
+ last_record: ['2016-11-02T04:00:06.000000']
3
+ out: {}
@@ -0,0 +1,5 @@
1
+ INSERT INTO load (dt, note) VALUES (TO_DATE('2016-11-02 04:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'more_skip');
2
+ INSERT INTO load (dt, note) VALUES (TO_DATE('2016-11-02 04:00:06', 'YYYY-MM-DD HH24:MI:SS'), 'more_load');
3
+ INSERT INTO load (dt, note) VALUES (TO_DATE('2016-11-02 04:00:06', 'YYYY-MM-DD HH24:MI:SS'), 'more_load');
4
+
5
+ EXIT;
@@ -0,0 +1,13 @@
1
+ DROP TABLE load;
2
+
3
+ CREATE TABLE load (
4
+ dt DATE NOT NULL,
5
+ note VARCHAR2(10)
6
+ );
7
+
8
+ INSERT INTO load (dt, note) VALUES (TO_DATE('2016-11-02 01:00:01', 'YYYY-MM-DD HH24:MI:SS'), 'first');
9
+ INSERT INTO load (dt, note) VALUES (TO_DATE('2016-11-02 02:00:02', 'YYYY-MM-DD HH24:MI:SS'), 'first');
10
+ INSERT INTO load (dt, note) VALUES (TO_DATE('2016-11-02 03:00:03', 'YYYY-MM-DD HH24:MI:SS'), 'first');
11
+ INSERT INTO load (dt, note) VALUES (TO_DATE('2016-11-02 04:00:04', 'YYYY-MM-DD HH24:MI:SS'), 'first');
12
+
13
+ EXIT;
@@ -0,0 +1,5 @@
1
+ table: int_load
2
+ column_options:
3
+ num: {value_type: long}
4
+ incremental: true
5
+ incremental_columns: [num]
@@ -0,0 +1,6 @@
1
+ table: int_load
2
+ column_options:
3
+ num: {type: long}
4
+ last_record: [4]
5
+ incremental: true
6
+ incremental_columns: [num]
@@ -0,0 +1,6 @@
1
+ insert into int_load (num, note) values (0, 'more_skip');
2
+ insert into int_load (num, note) values (4, 'more_skip');
3
+ insert into int_load (num, note) values (9, 'more_load');
4
+ insert into int_load (num, note) values (5, 'more_load');
5
+
6
+ EXIT;
@@ -0,0 +1,13 @@
1
+ drop table int_load;
2
+
3
+ create table int_load (
4
+ num NUMBER(10) not null,
5
+ note VARCHAR2(10)
6
+ );
7
+
8
+ insert into int_load (num, note) values (3, 'first');
9
+ insert into int_load (num, note) values (4, 'first');
10
+ insert into int_load (num, note) values (2, 'first');
11
+ insert into int_load (num, note) values (1, 'first');
12
+
13
+ EXIT;
@@ -0,0 +1,4 @@
1
+ table: load
2
+ default_time_zone: +0300
3
+ incremental: true
4
+ incremental_columns: [ts]
@@ -0,0 +1,4 @@
1
+ table: load
2
+ last_record: ['2016-11-02T04:00:05.333003']
3
+ incremental: true
4
+ incremental_columns: [ts]
@@ -0,0 +1,7 @@
1
+ 2016-11-01 23:00:01.000000 +0000,first
2
+ 2016-11-02 00:00:02.000000 +0000,first
3
+ 2016-11-02 01:00:03.000000 +0000,first
4
+ 2016-11-02 02:00:04.000000 +0000,first
5
+ 2016-11-02 02:00:05.111001 +0000,first
6
+ 2016-11-02 02:00:05.222002 +0000,first
7
+ 2016-11-02 02:00:05.333003 +0000,first
@@ -0,0 +1,3 @@
1
+ in:
2
+ last_record: ['2016-11-02T04:00:05.333003']
3
+ out: {}
@@ -0,0 +1,3 @@
1
+ 2016-11-02 02:00:05.333004 +0000,more_load
2
+ 2016-11-02 02:00:06.000000 +0000,more_load
3
+ 2016-11-02 02:00:06.000000 +0000,more_load
@@ -0,0 +1,3 @@
1
+ in:
2
+ last_record: ['2016-11-02T04:00:06.000000']
3
+ out: {}
@@ -0,0 +1,8 @@
1
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 04:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'more_skip');
2
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 04:00:05.333000', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'more_skip');
3
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 04:00:05.333003', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'more_skip');
4
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 04:00:05.333004', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'more_load');
5
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 04:00:06', 'YYYY-MM-DD HH24:MI:SS'), 'more_load');
6
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 04:00:06', 'YYYY-MM-DD HH24:MI:SS'), 'more_load');
7
+
8
+ EXIT;
@@ -0,0 +1,16 @@
1
+ DROP TABLE load;
2
+
3
+ CREATE TABLE load (
4
+ ts TIMESTAMP NOT NULL,
5
+ note VARCHAR2(10)
6
+ );
7
+
8
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 01:00:01', 'YYYY-MM-DD HH24:MI:SS'), 'first');
9
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 02:00:02', 'YYYY-MM-DD HH24:MI:SS'), 'first');
10
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 03:00:03', 'YYYY-MM-DD HH24:MI:SS'), 'first');
11
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 04:00:04', 'YYYY-MM-DD HH24:MI:SS'), 'first');
12
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 04:00:05.111001', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'first');
13
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 04:00:05.222002', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'first');
14
+ INSERT INTO load (ts, note) VALUES (TO_TIMESTAMP('2016-11-02 04:00:05.333003', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'first');
15
+
16
+ EXIT;
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-input-oracle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
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-02-10 00:00:00.000000000 Z
11
+ date: 2017-05-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Selects records from a table.
14
14
  email:
@@ -19,12 +19,14 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - README.md
21
21
  - build.gradle
22
- - classpath/embulk-input-jdbc-0.8.2.jar
23
- - classpath/embulk-input-oracle-0.8.2.jar
22
+ - classpath/embulk-input-jdbc-0.8.3.jar
23
+ - classpath/embulk-input-oracle-0.8.3.jar
24
24
  - lib/embulk/input/oracle.rb
25
25
  - src/main/java/org/embulk/input/OracleInputPlugin.java
26
26
  - src/main/java/org/embulk/input/oracle/OracleInputConnection.java
27
+ - src/main/java/org/embulk/input/oracle/getter/OracleColumnGetterFactory.java
27
28
  - src/test/java/org/embulk/input/oracle/BasicTest.java
29
+ - src/test/java/org/embulk/input/oracle/IncrementalTest.java
28
30
  - src/test/java/org/embulk/input/oracle/OracleTests.java
29
31
  - src/test/resources/org/embulk/input/oracle/test/expect/basic/setup.sql
30
32
  - src/test/resources/org/embulk/input/oracle/test/expect/basic/test_column_options_config.yml
@@ -46,6 +48,30 @@ files:
46
48
  - src/test/resources/org/embulk/input/oracle/test/expect/basic/test_unknown_type_expected2.diff
47
49
  - src/test/resources/org/embulk/input/oracle/test/expect/basic/test_unknown_type_expected3.csv
48
50
  - src/test/resources/org/embulk/input/oracle/test/expect/basic/test_unknown_type_expected3.diff
51
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/config_1.yml
52
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/config_2.yml
53
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/expected_1.csv
54
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/expected_1.diff
55
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/expected_2.csv
56
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/expected_2.diff
57
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/insert_more.sql
58
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/date/setup.sql
59
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/config_1.yml
60
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/config_2.yml
61
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/expected_1.csv
62
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/expected_1.diff
63
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/expected_2.csv
64
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/expected_2.diff
65
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/insert_more.sql
66
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/int/setup.sql
67
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/config_1.yml
68
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/config_2.yml
69
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/expected_1.csv
70
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/expected_1.diff
71
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/expected_2.csv
72
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/expected_2.diff
73
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/insert_more.sql
74
+ - src/test/resources/org/embulk/input/oracle/test/expect/incremental/timestamp/setup.sql
49
75
  homepage: https://github.com/embulk/embulk-input-jdbc
50
76
  licenses:
51
77
  - Apache 2.0