embulk-output-jdbc 0.1.0

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 (25) hide show
  1. checksums.yaml +7 -0
  2. data/build.gradle +2 -0
  3. data/classpath/embulk-output-jdbc-0.1.0.jar +0 -0
  4. data/lib/embulk/output/jdbc.rb +3 -0
  5. data/src/main/java/org/embulk/output/JdbcOutputPlugin.java +104 -0
  6. data/src/main/java/org/embulk/output/jdbc/AbstractJdbcOutputPlugin.java +701 -0
  7. data/src/main/java/org/embulk/output/jdbc/BatchInsert.java +54 -0
  8. data/src/main/java/org/embulk/output/jdbc/JdbcColumn.java +71 -0
  9. data/src/main/java/org/embulk/output/jdbc/JdbcOutputConnection.java +423 -0
  10. data/src/main/java/org/embulk/output/jdbc/JdbcOutputConnector.java +8 -0
  11. data/src/main/java/org/embulk/output/jdbc/JdbcSchema.java +37 -0
  12. data/src/main/java/org/embulk/output/jdbc/JdbcUtils.java +155 -0
  13. data/src/main/java/org/embulk/output/jdbc/RetryExecutor.java +105 -0
  14. data/src/main/java/org/embulk/output/jdbc/StandardBatchInsert.java +180 -0
  15. data/src/main/java/org/embulk/output/jdbc/setter/BooleanColumnSetter.java +52 -0
  16. data/src/main/java/org/embulk/output/jdbc/setter/ColumnSetter.java +121 -0
  17. data/src/main/java/org/embulk/output/jdbc/setter/ColumnSetterFactory.java +137 -0
  18. data/src/main/java/org/embulk/output/jdbc/setter/DoubleColumnSetter.java +51 -0
  19. data/src/main/java/org/embulk/output/jdbc/setter/LongColumnSetter.java +62 -0
  20. data/src/main/java/org/embulk/output/jdbc/setter/NullColumnSetter.java +43 -0
  21. data/src/main/java/org/embulk/output/jdbc/setter/SkipColumnSetter.java +35 -0
  22. data/src/main/java/org/embulk/output/jdbc/setter/SqlTimestampColumnSetter.java +48 -0
  23. data/src/main/java/org/embulk/output/jdbc/setter/StringColumnSetter.java +48 -0
  24. data/src/test/java/org/embulk/output/TestJdbcOutputPlugin.java +5 -0
  25. metadata +67 -0
@@ -0,0 +1,35 @@
1
+ package org.embulk.output.jdbc.setter;
2
+
3
+ import org.embulk.spi.PageReader;
4
+ import org.embulk.spi.time.Timestamp;
5
+ import org.embulk.output.jdbc.JdbcColumn;
6
+ import org.embulk.output.jdbc.BatchInsert;
7
+
8
+ public class SkipColumnSetter
9
+ extends ColumnSetter
10
+ {
11
+ public SkipColumnSetter(BatchInsert batch, PageReader pageReader)
12
+ {
13
+ super(batch, pageReader, null);
14
+ }
15
+
16
+ protected void booleanValue(boolean v)
17
+ {
18
+ }
19
+
20
+ protected void longValue(long v)
21
+ {
22
+ }
23
+
24
+ protected void doubleValue(double v)
25
+ {
26
+ }
27
+
28
+ protected void stringValue(String v)
29
+ {
30
+ }
31
+
32
+ protected void timestampValue(Timestamp v)
33
+ {
34
+ }
35
+ }
@@ -0,0 +1,48 @@
1
+ package org.embulk.output.jdbc.setter;
2
+
3
+ import java.io.IOException;
4
+ import java.sql.SQLException;
5
+ import java.math.RoundingMode;
6
+ import com.google.common.math.DoubleMath;
7
+ import org.embulk.spi.PageReader;
8
+ import org.embulk.spi.time.Timestamp;
9
+ import org.embulk.output.jdbc.JdbcColumn;
10
+ import org.embulk.output.jdbc.BatchInsert;
11
+
12
+ public class SqlTimestampColumnSetter
13
+ extends ColumnSetter
14
+ {
15
+ public SqlTimestampColumnSetter(BatchInsert batch, PageReader pageReader,
16
+ JdbcColumn column)
17
+ {
18
+ super(batch, pageReader, column);
19
+ }
20
+
21
+ protected void booleanValue(boolean v) throws IOException, SQLException
22
+ {
23
+ nullValue();
24
+ }
25
+
26
+ protected void longValue(long v) throws IOException, SQLException
27
+ {
28
+ nullValue();
29
+ }
30
+
31
+ protected void doubleValue(double v) throws IOException, SQLException
32
+ {
33
+ nullValue();
34
+ }
35
+
36
+ protected void stringValue(String v) throws IOException, SQLException
37
+ {
38
+ // TODO parse time?
39
+ nullValue();
40
+ }
41
+
42
+ protected void timestampValue(Timestamp v) throws IOException, SQLException
43
+ {
44
+ java.sql.Timestamp t = new java.sql.Timestamp(v.toEpochMilli());
45
+ t.setNanos(v.getNano());
46
+ batch.setSqlTimestamp(t, getSqlType());
47
+ }
48
+ }
@@ -0,0 +1,48 @@
1
+ package org.embulk.output.jdbc.setter;
2
+
3
+ import java.io.IOException;
4
+ import java.sql.SQLException;
5
+ import org.embulk.spi.ColumnVisitor;
6
+ import org.embulk.spi.PageReader;
7
+ import org.embulk.spi.time.Timestamp;
8
+ import org.embulk.spi.time.TimestampFormatter;
9
+ import org.embulk.output.jdbc.JdbcColumn;
10
+ import org.embulk.output.jdbc.BatchInsert;
11
+
12
+ public class StringColumnSetter
13
+ extends ColumnSetter
14
+ {
15
+ private final TimestampFormatter timestampFormatter;
16
+
17
+ public StringColumnSetter(BatchInsert batch, PageReader pageReader,
18
+ JdbcColumn column, TimestampFormatter timestampFormatter)
19
+ {
20
+ super(batch, pageReader, column);
21
+ this.timestampFormatter = timestampFormatter;
22
+ }
23
+
24
+ protected void booleanValue(boolean v) throws IOException, SQLException
25
+ {
26
+ batch.setString(Boolean.toString(v));
27
+ }
28
+
29
+ protected void longValue(long v) throws IOException, SQLException
30
+ {
31
+ batch.setString(Long.toString(v));
32
+ }
33
+
34
+ protected void doubleValue(double v) throws IOException, SQLException
35
+ {
36
+ batch.setString(Double.toString(v));
37
+ }
38
+
39
+ protected void stringValue(String v) throws IOException, SQLException
40
+ {
41
+ batch.setString(v);
42
+ }
43
+
44
+ protected void timestampValue(Timestamp v) throws IOException, SQLException
45
+ {
46
+ batch.setString(timestampFormatter.format(v));
47
+ }
48
+ }
@@ -0,0 +1,5 @@
1
+ package org.embulk.output;
2
+
3
+ public class TestJdbcOutputPlugin
4
+ {
5
+ }
metadata ADDED
@@ -0,0 +1,67 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: embulk-output-jdbc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - FURUHASHI Sadayuki
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-02-16 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: JDBC output plugin is an Embulk plugin that loads records to JDBC read by any input plugins. Search the input plugins by "embulk-input" keyword.
14
+ email:
15
+ - frsyuki@users.sourceforge.jp
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - build.gradle
21
+ - lib/embulk/output/jdbc.rb
22
+ - src/main/java/org/embulk/output/JdbcOutputPlugin.java
23
+ - src/main/java/org/embulk/output/jdbc/AbstractJdbcOutputPlugin.java
24
+ - src/main/java/org/embulk/output/jdbc/BatchInsert.java
25
+ - src/main/java/org/embulk/output/jdbc/JdbcColumn.java
26
+ - src/main/java/org/embulk/output/jdbc/JdbcOutputConnection.java
27
+ - src/main/java/org/embulk/output/jdbc/JdbcOutputConnector.java
28
+ - src/main/java/org/embulk/output/jdbc/JdbcSchema.java
29
+ - src/main/java/org/embulk/output/jdbc/JdbcUtils.java
30
+ - src/main/java/org/embulk/output/jdbc/RetryExecutor.java
31
+ - src/main/java/org/embulk/output/jdbc/StandardBatchInsert.java
32
+ - src/main/java/org/embulk/output/jdbc/setter/BooleanColumnSetter.java
33
+ - src/main/java/org/embulk/output/jdbc/setter/ColumnSetter.java
34
+ - src/main/java/org/embulk/output/jdbc/setter/ColumnSetterFactory.java
35
+ - src/main/java/org/embulk/output/jdbc/setter/DoubleColumnSetter.java
36
+ - src/main/java/org/embulk/output/jdbc/setter/LongColumnSetter.java
37
+ - src/main/java/org/embulk/output/jdbc/setter/NullColumnSetter.java
38
+ - src/main/java/org/embulk/output/jdbc/setter/SkipColumnSetter.java
39
+ - src/main/java/org/embulk/output/jdbc/setter/SqlTimestampColumnSetter.java
40
+ - src/main/java/org/embulk/output/jdbc/setter/StringColumnSetter.java
41
+ - src/test/java/org/embulk/output/TestJdbcOutputPlugin.java
42
+ - classpath/embulk-output-jdbc-0.1.0.jar
43
+ homepage: https://github.com/embulk/embulk-output-jdbc
44
+ licenses:
45
+ - Apache 2.0
46
+ metadata: {}
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ requirements: []
62
+ rubyforge_project:
63
+ rubygems_version: 2.1.9
64
+ signing_key:
65
+ specification_version: 4
66
+ summary: JDBC output plugin for Embulk
67
+ test_files: []