embulk-input-redshift 0.8.2 → 0.8.3
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 +4 -4
- data/README.md +7 -0
- data/build.gradle +2 -0
- data/classpath/{embulk-input-jdbc-0.8.2.jar → embulk-input-jdbc-0.8.3.jar} +0 -0
- data/classpath/{embulk-input-postgresql-0.8.2.jar → embulk-input-postgresql-0.8.3.jar} +0 -0
- data/classpath/embulk-input-redshift-0.8.3.jar +0 -0
- data/src/main/java/org/embulk/input/RedshiftInputPlugin.java +10 -0
- data/src/main/java/org/embulk/input/redshift/getter/RedshiftColumnGetterFactory.java +36 -0
- data/src/test/java/org/embulk/input/redshift/IncrementalTest.java +143 -0
- data/src/test/java/org/embulk/input/redshift/RedshiftTests.java +43 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/config_1.yml +3 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/config_2.yml +4 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/expected_1.csv +4 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/expected_1.diff +3 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/expected_2.csv +2 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/expected_2.diff +3 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/insert_more.sql +6 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/setup.sql +12 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/config_1.yml +4 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/config_2.yml +4 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/expected_1.csv +7 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/expected_1.diff +3 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/expected_2.csv +3 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/expected_2.diff +3 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/insert_more.sql +8 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/setup.sql +15 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/config_1.yml +4 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/config_2.yml +4 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/expected_1.csv +7 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/expected_1.diff +3 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/expected_2.csv +3 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/expected_2.diff +3 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/insert_more.sql +8 -0
- data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/setup.sql +15 -0
- metadata +32 -5
- data/classpath/embulk-input-redshift-0.8.2.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c230871ead7faef54938ba29508c4806b4ce8af
|
4
|
+
data.tar.gz: 77d957464767609885fc1854c49b29cfdd382300
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6fcc5c0786d941df213db00851f29f93d053eabf71d7d0c12dedf0e24c45ce3ad04d21bde674a582659a825a22d7acda93570007c85596ba26677e52e8bace6
|
7
|
+
data.tar.gz: 7ab2529173924e4b40be6c1b1a2adb454c4fb529910333696af580c14f949f03a44fc861673e3cd7702b4fa43ed1a25ed4d0bed6a8e178c2af27210897c52a12
|
data/README.md
CHANGED
@@ -144,3 +144,10 @@ in:
|
|
144
144
|
```
|
145
145
|
$ ./gradlew gem
|
146
146
|
```
|
147
|
+
|
148
|
+
Running tests:
|
149
|
+
|
150
|
+
```
|
151
|
+
$ cp ci/travis_redshift.yml ci/redshift.yml # edit this file if necessary
|
152
|
+
$ EMBULK_INPUT_REDSHIFT_TEST_CONFIG=`pwd`/ci/redshift.yml ./gradlew :embulk-input-redshift:check --info
|
153
|
+
```
|
data/build.gradle
CHANGED
Binary file
|
Binary file
|
Binary file
|
@@ -9,7 +9,11 @@ import java.sql.SQLException;
|
|
9
9
|
import org.embulk.config.Config;
|
10
10
|
import org.embulk.config.ConfigDefault;
|
11
11
|
import org.embulk.input.jdbc.AbstractJdbcInputPlugin;
|
12
|
+
import org.embulk.input.jdbc.getter.ColumnGetterFactory;
|
12
13
|
import org.embulk.input.postgresql.PostgreSQLInputConnection;
|
14
|
+
import org.embulk.input.redshift.getter.RedshiftColumnGetterFactory;
|
15
|
+
import org.embulk.spi.PageBuilder;
|
16
|
+
import org.joda.time.DateTimeZone;
|
13
17
|
|
14
18
|
public class RedshiftInputPlugin
|
15
19
|
extends AbstractJdbcInputPlugin
|
@@ -90,4 +94,10 @@ public class RedshiftInputPlugin
|
|
90
94
|
}
|
91
95
|
}
|
92
96
|
}
|
97
|
+
|
98
|
+
@Override
|
99
|
+
protected ColumnGetterFactory newColumnGetterFactory(PageBuilder pageBuilder, DateTimeZone dateTimeZone)
|
100
|
+
{
|
101
|
+
return new RedshiftColumnGetterFactory(pageBuilder, dateTimeZone);
|
102
|
+
}
|
93
103
|
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
package org.embulk.input.redshift.getter;
|
2
|
+
|
3
|
+
import org.embulk.input.jdbc.AbstractJdbcInputPlugin.PluginTask;
|
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.TimestampWithTimeZoneIncrementalHandler;
|
10
|
+
import org.embulk.input.jdbc.getter.TimestampWithoutTimeZoneIncrementalHandler;
|
11
|
+
import org.embulk.spi.PageBuilder;
|
12
|
+
import org.joda.time.DateTimeZone;
|
13
|
+
|
14
|
+
public class RedshiftColumnGetterFactory extends ColumnGetterFactory
|
15
|
+
{
|
16
|
+
public RedshiftColumnGetterFactory(PageBuilder to, DateTimeZone defaultTimeZone)
|
17
|
+
{
|
18
|
+
super(to, defaultTimeZone);
|
19
|
+
}
|
20
|
+
|
21
|
+
@Override
|
22
|
+
public ColumnGetter newColumnGetter(JdbcInputConnection con, PluginTask task, JdbcColumn column, JdbcColumnOption option)
|
23
|
+
{
|
24
|
+
ColumnGetter getter = super.newColumnGetter(con, task, column, option);
|
25
|
+
|
26
|
+
// incremental loading wrapper
|
27
|
+
switch (column.getTypeName()) {
|
28
|
+
case "timestamptz":
|
29
|
+
return new TimestampWithTimeZoneIncrementalHandler(getter);
|
30
|
+
case "timestamp":
|
31
|
+
return new TimestampWithoutTimeZoneIncrementalHandler(getter);
|
32
|
+
default:
|
33
|
+
return getter;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
@@ -0,0 +1,143 @@
|
|
1
|
+
package org.embulk.input.redshift;
|
2
|
+
|
3
|
+
import org.embulk.config.ConfigDiff;
|
4
|
+
import org.embulk.config.ConfigSource;
|
5
|
+
import org.embulk.input.RedshiftInputPlugin;
|
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.redshift.RedshiftTests.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/redshift/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, "redshift", RedshiftInputPlugin.class)
|
38
|
+
.build();
|
39
|
+
|
40
|
+
private ConfigSource baseConfig;
|
41
|
+
|
42
|
+
@Before
|
43
|
+
public void setup()
|
44
|
+
{
|
45
|
+
baseConfig = RedshiftTests.baseConfig();
|
46
|
+
}
|
47
|
+
|
48
|
+
@Test
|
49
|
+
public void simpleInt() throws Exception
|
50
|
+
{
|
51
|
+
// setup first rows
|
52
|
+
execute(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(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 simpleTimestampWithoutTimeZone() throws Exception
|
82
|
+
{
|
83
|
+
// setup first rows
|
84
|
+
execute(readResource("timestamp/setup.sql"));
|
85
|
+
|
86
|
+
Path out1 = embulk.createTempFile("csv");
|
87
|
+
RunResult result1 = embulk.runInput(
|
88
|
+
baseConfig.merge(loadYamlResource(embulk, "timestamp/config_1.yml")),
|
89
|
+
out1);
|
90
|
+
assertThat(
|
91
|
+
readSortedFile(out1),
|
92
|
+
is(readResource("timestamp/expected_1.csv")));
|
93
|
+
assertThat(
|
94
|
+
result1.getConfigDiff(),
|
95
|
+
is((ConfigDiff) loadYamlResource(embulk, "timestamp/expected_1.diff")));
|
96
|
+
|
97
|
+
// insert more rows
|
98
|
+
execute(readResource("timestamp/insert_more.sql"));
|
99
|
+
|
100
|
+
Path out2 = embulk.createTempFile("csv");
|
101
|
+
RunResult result2 = embulk.runInput(
|
102
|
+
baseConfig.merge(loadYamlResource(embulk, "timestamp/config_2.yml")),
|
103
|
+
out2);
|
104
|
+
assertThat(
|
105
|
+
readSortedFile(out2),
|
106
|
+
is(readResource("timestamp/expected_2.csv")));
|
107
|
+
assertThat(
|
108
|
+
result2.getConfigDiff(),
|
109
|
+
is((ConfigDiff) loadYamlResource(embulk, "timestamp/expected_2.diff")));
|
110
|
+
}
|
111
|
+
|
112
|
+
@Test
|
113
|
+
public void simpleTimestampWithTimeZone() throws Exception
|
114
|
+
{
|
115
|
+
// setup first rows
|
116
|
+
execute(readResource("timestamptz/setup.sql"));
|
117
|
+
|
118
|
+
Path out1 = embulk.createTempFile("csv");
|
119
|
+
RunResult result1 = embulk.runInput(
|
120
|
+
baseConfig.merge(loadYamlResource(embulk, "timestamptz/config_1.yml")),
|
121
|
+
out1);
|
122
|
+
assertThat(
|
123
|
+
readSortedFile(out1),
|
124
|
+
is(readResource("timestamptz/expected_1.csv")));
|
125
|
+
assertThat(
|
126
|
+
result1.getConfigDiff(),
|
127
|
+
is((ConfigDiff) loadYamlResource(embulk, "timestamptz/expected_1.diff")));
|
128
|
+
|
129
|
+
// insert more rows
|
130
|
+
execute(readResource("timestamptz/insert_more.sql"));
|
131
|
+
|
132
|
+
Path out2 = embulk.createTempFile("csv");
|
133
|
+
RunResult result2 = embulk.runInput(
|
134
|
+
baseConfig.merge(loadYamlResource(embulk, "timestamptz/config_2.yml")),
|
135
|
+
out2);
|
136
|
+
assertThat(
|
137
|
+
readSortedFile(out2),
|
138
|
+
is(readResource("timestamptz/expected_2.csv")));
|
139
|
+
assertThat(
|
140
|
+
result2.getConfigDiff(),
|
141
|
+
is((ConfigDiff) loadYamlResource(embulk, "timestamptz/expected_2.diff")));
|
142
|
+
}
|
143
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
package org.embulk.input.redshift;
|
2
|
+
|
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
|
+
|
8
|
+
import java.io.IOException;
|
9
|
+
|
10
|
+
import static java.util.Locale.ENGLISH;
|
11
|
+
|
12
|
+
public class RedshiftTests
|
13
|
+
{
|
14
|
+
public static ConfigSource baseConfig()
|
15
|
+
{
|
16
|
+
return EmbulkTests.config("EMBULK_INPUT_REDSHIFT_TEST_CONFIG");
|
17
|
+
}
|
18
|
+
|
19
|
+
public static void execute(String sql)
|
20
|
+
{
|
21
|
+
ConfigSource config = baseConfig();
|
22
|
+
ProcessBuilder pb = new ProcessBuilder("psql", "-w", "--set", "ON_ERROR_STOP=1", "-c", sql);
|
23
|
+
pb.environment().put("PGUSER", config.get(String.class, "user"));
|
24
|
+
pb.environment().put("PGPASSWORD", config.get(String.class, "password"));
|
25
|
+
pb.environment().put("PGDATABASE", config.get(String.class, "database"));
|
26
|
+
pb.environment().put("PGHOST", config.get(String.class, "host", "localhost"));
|
27
|
+
pb.environment().put("PGPORT", config.get(String.class, "port", "5439"));
|
28
|
+
pb.redirectErrorStream(true);
|
29
|
+
|
30
|
+
int code;
|
31
|
+
try {
|
32
|
+
Process process = pb.start();
|
33
|
+
ByteStreams.copy(process.getInputStream(), System.out);
|
34
|
+
code = process.waitFor();
|
35
|
+
} catch (IOException | InterruptedException ex) {
|
36
|
+
throw Throwables.propagate(ex);
|
37
|
+
}
|
38
|
+
if (code != 0) {
|
39
|
+
throw new RuntimeException(String.format(ENGLISH,
|
40
|
+
"Command finished with non-zero exit code. Exit code is %d.", code));
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/expected_1.csv
ADDED
@@ -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
|
data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/insert_more.sql
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
|
2
|
+
insert into load (time, note) values
|
3
|
+
('2016-11-02 04:00:00', 'more_skip'),
|
4
|
+
('2016-11-02 04:00:05.333000', 'more_skip'),
|
5
|
+
('2016-11-02 04:00:05.333003', 'more_skip'),
|
6
|
+
('2016-11-02 04:00:05.333004', 'more_load'),
|
7
|
+
('2016-11-02 04:00:06', 'more_load'),
|
8
|
+
('2016-11-02 04:00:06', 'more_load');
|
@@ -0,0 +1,15 @@
|
|
1
|
+
drop table if exists load;
|
2
|
+
|
3
|
+
create table load (
|
4
|
+
time timestamp without time zone not null,
|
5
|
+
note text
|
6
|
+
);
|
7
|
+
|
8
|
+
insert into load (time, note) values
|
9
|
+
('2016-11-02 01:00:01', 'first'),
|
10
|
+
('2016-11-02 02:00:02', 'first'),
|
11
|
+
('2016-11-02 03:00:03', 'first'),
|
12
|
+
('2016-11-02 04:00:04', 'first'),
|
13
|
+
('2016-11-02 04:00:05.111001', 'first'),
|
14
|
+
('2016-11-02 04:00:05.222002', 'first'),
|
15
|
+
('2016-11-02 04:00:05.333003', 'first');
|
data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/expected_1.csv
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
2016-11-02 01:00:01.000000 +0000,first
|
2
|
+
2016-11-02 02:00:02.000000 +0000,first
|
3
|
+
2016-11-02 03:00:03.000000 +0000,first
|
4
|
+
2016-11-02 04:00:04.000000 +0000,first
|
5
|
+
2016-11-02 04:00:05.111001 +0000,first
|
6
|
+
2016-11-02 04:00:05.222002 +0000,first
|
7
|
+
2016-11-02 04:00:05.333003 +0000,first
|
@@ -0,0 +1,8 @@
|
|
1
|
+
|
2
|
+
insert into load (time, note) values
|
3
|
+
('2016-11-02 04:00:00+0000', 'more_skip'),
|
4
|
+
('2016-11-02 04:00:05.333000+0000', 'more_skip'),
|
5
|
+
('2016-11-02 04:00:05.333003+0000', 'more_skip'),
|
6
|
+
('2016-11-02 04:00:05.333004+0000', 'more_load'),
|
7
|
+
('2016-11-02 04:00:06+0000', 'more_load'),
|
8
|
+
('2016-11-02 04:00:06+0000', 'more_load');
|
data/src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/setup.sql
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
drop table if exists load;
|
2
|
+
|
3
|
+
create table load (
|
4
|
+
time timestamptz not null,
|
5
|
+
note text
|
6
|
+
);
|
7
|
+
|
8
|
+
insert into load (time, note) values
|
9
|
+
('2016-11-02 01:00:01+0000', 'first'),
|
10
|
+
('2016-11-02 02:00:02+0000', 'first'),
|
11
|
+
('2016-11-02 03:00:03+0000', 'first'),
|
12
|
+
('2016-11-02 04:00:04+0000', 'first'),
|
13
|
+
('2016-11-02 04:00:05.111001+0000', 'first'),
|
14
|
+
('2016-11-02 04:00:05.222002+0000', 'first'),
|
15
|
+
('2016-11-02 04:00:05.333003+0000', 'first');
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-input-redshift
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
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-
|
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,39 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- README.md
|
21
21
|
- build.gradle
|
22
|
-
- classpath/embulk-input-jdbc-0.8.
|
23
|
-
- classpath/embulk-input-postgresql-0.8.
|
24
|
-
- classpath/embulk-input-redshift-0.8.
|
22
|
+
- classpath/embulk-input-jdbc-0.8.3.jar
|
23
|
+
- classpath/embulk-input-postgresql-0.8.3.jar
|
24
|
+
- classpath/embulk-input-redshift-0.8.3.jar
|
25
25
|
- classpath/postgresql-9.4-1205-jdbc41.jar
|
26
26
|
- lib/embulk/input/redshift.rb
|
27
27
|
- src/main/java/org/embulk/input/RedshiftInputPlugin.java
|
28
|
+
- src/main/java/org/embulk/input/redshift/getter/RedshiftColumnGetterFactory.java
|
29
|
+
- src/test/java/org/embulk/input/redshift/IncrementalTest.java
|
30
|
+
- src/test/java/org/embulk/input/redshift/RedshiftTests.java
|
31
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/config_1.yml
|
32
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/config_2.yml
|
33
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/expected_1.csv
|
34
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/expected_1.diff
|
35
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/expected_2.csv
|
36
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/expected_2.diff
|
37
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/insert_more.sql
|
38
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/int/setup.sql
|
39
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/config_1.yml
|
40
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/config_2.yml
|
41
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/expected_1.csv
|
42
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/expected_1.diff
|
43
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/expected_2.csv
|
44
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/expected_2.diff
|
45
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/insert_more.sql
|
46
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamp/setup.sql
|
47
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/config_1.yml
|
48
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/config_2.yml
|
49
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/expected_1.csv
|
50
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/expected_1.diff
|
51
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/expected_2.csv
|
52
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/expected_2.diff
|
53
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/insert_more.sql
|
54
|
+
- src/test/resources/org/embulk/input/redshift/test/expect/incremental/timestamptz/setup.sql
|
28
55
|
homepage: https://github.com/embulk/embulk-input-jdbc
|
29
56
|
licenses:
|
30
57
|
- Apache 2.0
|
Binary file
|