embulk-output-jdbc 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []