embulk-output-jdbc 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/build.gradle +2 -2
  3. data/classpath/{embulk-output-jdbc-0.4.0.jar → embulk-output-jdbc-0.4.1.jar} +0 -0
  4. data/lib/embulk/output/jdbc.rb +3 -3
  5. data/src/main/java/org/embulk/output/JdbcOutputPlugin.java +138 -138
  6. data/src/main/java/org/embulk/output/jdbc/AbstractJdbcOutputPlugin.java +973 -972
  7. data/src/main/java/org/embulk/output/jdbc/BatchInsert.java +53 -53
  8. data/src/main/java/org/embulk/output/jdbc/JdbcColumn.java +116 -116
  9. data/src/main/java/org/embulk/output/jdbc/JdbcColumnOption.java +34 -34
  10. data/src/main/java/org/embulk/output/jdbc/JdbcOutputConnection.java +492 -492
  11. data/src/main/java/org/embulk/output/jdbc/JdbcOutputConnector.java +8 -8
  12. data/src/main/java/org/embulk/output/jdbc/JdbcSchema.java +60 -60
  13. data/src/main/java/org/embulk/output/jdbc/JdbcUtils.java +155 -155
  14. data/src/main/java/org/embulk/output/jdbc/StandardBatchInsert.java +200 -200
  15. data/src/main/java/org/embulk/output/jdbc/ToString.java +54 -54
  16. data/src/main/java/org/embulk/output/jdbc/ToStringMap.java +35 -35
  17. data/src/main/java/org/embulk/output/jdbc/setter/BigDecimalColumnSetter.java +70 -70
  18. data/src/main/java/org/embulk/output/jdbc/setter/BooleanColumnSetter.java +54 -54
  19. data/src/main/java/org/embulk/output/jdbc/setter/ByteColumnSetter.java +76 -76
  20. data/src/main/java/org/embulk/output/jdbc/setter/ColumnSetter.java +45 -45
  21. data/src/main/java/org/embulk/output/jdbc/setter/ColumnSetterFactory.java +196 -196
  22. data/src/main/java/org/embulk/output/jdbc/setter/ColumnSetterVisitor.java +96 -96
  23. data/src/main/java/org/embulk/output/jdbc/setter/DefaultValueSetter.java +48 -48
  24. data/src/main/java/org/embulk/output/jdbc/setter/DoubleColumnSetter.java +61 -61
  25. data/src/main/java/org/embulk/output/jdbc/setter/FloatColumnSetter.java +61 -61
  26. data/src/main/java/org/embulk/output/jdbc/setter/IntColumnSetter.java +76 -76
  27. data/src/main/java/org/embulk/output/jdbc/setter/LongColumnSetter.java +72 -72
  28. data/src/main/java/org/embulk/output/jdbc/setter/NStringColumnSetter.java +59 -59
  29. data/src/main/java/org/embulk/output/jdbc/setter/NullColumnSetter.java +53 -53
  30. data/src/main/java/org/embulk/output/jdbc/setter/NullDefaultValueSetter.java +105 -105
  31. data/src/main/java/org/embulk/output/jdbc/setter/PassThroughColumnSetter.java +59 -59
  32. data/src/main/java/org/embulk/output/jdbc/setter/ShortColumnSetter.java +76 -76
  33. data/src/main/java/org/embulk/output/jdbc/setter/SkipColumnSetter.java +43 -43
  34. data/src/main/java/org/embulk/output/jdbc/setter/SqlDateColumnSetter.java +59 -59
  35. data/src/main/java/org/embulk/output/jdbc/setter/SqlTimeColumnSetter.java +59 -59
  36. data/src/main/java/org/embulk/output/jdbc/setter/SqlTimestampColumnSetter.java +58 -58
  37. data/src/main/java/org/embulk/output/jdbc/setter/StringColumnSetter.java +59 -59
  38. data/src/test/java/org/embulk/output/TestJdbcOutputPlugin.java +5 -5
  39. metadata +3 -3
@@ -1,54 +1,54 @@
1
- package org.embulk.output.jdbc;
2
-
3
- import com.google.common.base.Optional;
4
- import com.fasterxml.jackson.databind.JsonNode;
5
- import com.fasterxml.jackson.databind.JsonMappingException;
6
- import com.fasterxml.jackson.databind.node.NullNode;
7
- import com.fasterxml.jackson.annotation.JsonCreator;
8
- import com.fasterxml.jackson.annotation.JsonValue;
9
-
10
- public class ToString
11
- {
12
- private final String string;
13
-
14
- public ToString(String string)
15
- {
16
- this.string = string;
17
- }
18
-
19
- @JsonCreator
20
- ToString(Optional<JsonNode> option) throws JsonMappingException
21
- {
22
- JsonNode node = option.or(NullNode.getInstance());
23
- if (node.isTextual()) {
24
- this.string = node.textValue();
25
- } else if (node.isValueNode()) {
26
- this.string = node.toString();
27
- } else {
28
- throw new JsonMappingException(String.format("Arrays and objects are invalid: '%s'", node));
29
- }
30
- }
31
-
32
- @Override
33
- public boolean equals(Object obj)
34
- {
35
- if (!(obj instanceof ToString)) {
36
- return false;
37
- }
38
- ToString o = (ToString) obj;
39
- return string.equals(o.string);
40
- }
41
-
42
- @Override
43
- public int hashCode()
44
- {
45
- return string.hashCode();
46
- }
47
-
48
- @JsonValue
49
- @Override
50
- public String toString()
51
- {
52
- return string;
53
- }
54
- }
1
+ package org.embulk.output.jdbc;
2
+
3
+ import com.google.common.base.Optional;
4
+ import com.fasterxml.jackson.databind.JsonNode;
5
+ import com.fasterxml.jackson.databind.JsonMappingException;
6
+ import com.fasterxml.jackson.databind.node.NullNode;
7
+ import com.fasterxml.jackson.annotation.JsonCreator;
8
+ import com.fasterxml.jackson.annotation.JsonValue;
9
+
10
+ public class ToString
11
+ {
12
+ private final String string;
13
+
14
+ public ToString(String string)
15
+ {
16
+ this.string = string;
17
+ }
18
+
19
+ @JsonCreator
20
+ ToString(Optional<JsonNode> option) throws JsonMappingException
21
+ {
22
+ JsonNode node = option.or(NullNode.getInstance());
23
+ if (node.isTextual()) {
24
+ this.string = node.textValue();
25
+ } else if (node.isValueNode()) {
26
+ this.string = node.toString();
27
+ } else {
28
+ throw new JsonMappingException(String.format("Arrays and objects are invalid: '%s'", node));
29
+ }
30
+ }
31
+
32
+ @Override
33
+ public boolean equals(Object obj)
34
+ {
35
+ if (!(obj instanceof ToString)) {
36
+ return false;
37
+ }
38
+ ToString o = (ToString) obj;
39
+ return string.equals(o.string);
40
+ }
41
+
42
+ @Override
43
+ public int hashCode()
44
+ {
45
+ return string.hashCode();
46
+ }
47
+
48
+ @JsonValue
49
+ @Override
50
+ public String toString()
51
+ {
52
+ return string;
53
+ }
54
+ }
@@ -1,35 +1,35 @@
1
- package org.embulk.output.jdbc;
2
-
3
- import java.util.Map;
4
- import java.util.HashMap;
5
- import java.util.Properties;
6
- import com.google.common.base.Function;
7
- import com.google.common.collect.Maps;
8
- import com.fasterxml.jackson.annotation.JsonCreator;
9
- import com.fasterxml.jackson.annotation.JsonValue;
10
-
11
- public class ToStringMap
12
- extends HashMap<String, String>
13
- {
14
- @JsonCreator
15
- ToStringMap(Map<String, ToString> map)
16
- {
17
- super(Maps.transformValues(map, new Function<ToString, String>() {
18
- public String apply(ToString value)
19
- {
20
- if (value == null) {
21
- return "null";
22
- } else {
23
- return value.toString();
24
- }
25
- }
26
- }));
27
- }
28
-
29
- public Properties toProperties()
30
- {
31
- Properties props = new Properties();
32
- props.putAll(this);
33
- return props;
34
- }
35
- }
1
+ package org.embulk.output.jdbc;
2
+
3
+ import java.util.Map;
4
+ import java.util.HashMap;
5
+ import java.util.Properties;
6
+ import com.google.common.base.Function;
7
+ import com.google.common.collect.Maps;
8
+ import com.fasterxml.jackson.annotation.JsonCreator;
9
+ import com.fasterxml.jackson.annotation.JsonValue;
10
+
11
+ public class ToStringMap
12
+ extends HashMap<String, String>
13
+ {
14
+ @JsonCreator
15
+ ToStringMap(Map<String, ToString> map)
16
+ {
17
+ super(Maps.transformValues(map, new Function<ToString, String>() {
18
+ public String apply(ToString value)
19
+ {
20
+ if (value == null) {
21
+ return "null";
22
+ } else {
23
+ return value.toString();
24
+ }
25
+ }
26
+ }));
27
+ }
28
+
29
+ public Properties toProperties()
30
+ {
31
+ Properties props = new Properties();
32
+ props.putAll(this);
33
+ return props;
34
+ }
35
+ }
@@ -1,70 +1,70 @@
1
- package org.embulk.output.jdbc.setter;
2
-
3
- import java.math.BigDecimal;
4
- import java.io.IOException;
5
- import java.sql.SQLException;
6
- import org.embulk.spi.ColumnVisitor;
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 BigDecimalColumnSetter
13
- extends ColumnSetter
14
- {
15
- private static final BigDecimal ZERO = BigDecimal.valueOf(0L);
16
- private static final BigDecimal ONE = BigDecimal.valueOf(1L);
17
-
18
- public BigDecimalColumnSetter(BatchInsert batch, JdbcColumn column,
19
- DefaultValueSetter defaultValue)
20
- {
21
- super(batch, column, defaultValue);
22
- }
23
-
24
- @Override
25
- public void nullValue() throws IOException, SQLException
26
- {
27
- defaultValue.setBigDecimal();
28
- }
29
-
30
- @Override
31
- public void booleanValue(boolean v) throws IOException, SQLException
32
- {
33
- batch.setBigDecimal(v ? ONE : ZERO);
34
- }
35
-
36
- @Override
37
- public void longValue(long v) throws IOException, SQLException
38
- {
39
- batch.setBigDecimal(BigDecimal.valueOf(v));
40
- }
41
-
42
- @Override
43
- public void doubleValue(double v) throws IOException, SQLException
44
- {
45
- if (Double.isNaN(v) || Double.isInfinite(v)) {
46
- defaultValue.setBigDecimal();
47
- } else {
48
- batch.setBigDecimal(BigDecimal.valueOf(v));
49
- }
50
- }
51
-
52
- @Override
53
- public void stringValue(String v) throws IOException, SQLException
54
- {
55
- BigDecimal dv;
56
- try {
57
- dv = new BigDecimal(v);
58
- } catch (NumberFormatException ex) {
59
- defaultValue.setBigDecimal();
60
- return;
61
- }
62
- batch.setBigDecimal(dv);
63
- }
64
-
65
- @Override
66
- public void timestampValue(Timestamp v) throws IOException, SQLException
67
- {
68
- defaultValue.setBigDecimal();
69
- }
70
- }
1
+ package org.embulk.output.jdbc.setter;
2
+
3
+ import java.math.BigDecimal;
4
+ import java.io.IOException;
5
+ import java.sql.SQLException;
6
+ import org.embulk.spi.ColumnVisitor;
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 BigDecimalColumnSetter
13
+ extends ColumnSetter
14
+ {
15
+ private static final BigDecimal ZERO = BigDecimal.valueOf(0L);
16
+ private static final BigDecimal ONE = BigDecimal.valueOf(1L);
17
+
18
+ public BigDecimalColumnSetter(BatchInsert batch, JdbcColumn column,
19
+ DefaultValueSetter defaultValue)
20
+ {
21
+ super(batch, column, defaultValue);
22
+ }
23
+
24
+ @Override
25
+ public void nullValue() throws IOException, SQLException
26
+ {
27
+ defaultValue.setBigDecimal();
28
+ }
29
+
30
+ @Override
31
+ public void booleanValue(boolean v) throws IOException, SQLException
32
+ {
33
+ batch.setBigDecimal(v ? ONE : ZERO);
34
+ }
35
+
36
+ @Override
37
+ public void longValue(long v) throws IOException, SQLException
38
+ {
39
+ batch.setBigDecimal(BigDecimal.valueOf(v));
40
+ }
41
+
42
+ @Override
43
+ public void doubleValue(double v) throws IOException, SQLException
44
+ {
45
+ if (Double.isNaN(v) || Double.isInfinite(v)) {
46
+ defaultValue.setBigDecimal();
47
+ } else {
48
+ batch.setBigDecimal(BigDecimal.valueOf(v));
49
+ }
50
+ }
51
+
52
+ @Override
53
+ public void stringValue(String v) throws IOException, SQLException
54
+ {
55
+ BigDecimal dv;
56
+ try {
57
+ dv = new BigDecimal(v);
58
+ } catch (NumberFormatException ex) {
59
+ defaultValue.setBigDecimal();
60
+ return;
61
+ }
62
+ batch.setBigDecimal(dv);
63
+ }
64
+
65
+ @Override
66
+ public void timestampValue(Timestamp v) throws IOException, SQLException
67
+ {
68
+ defaultValue.setBigDecimal();
69
+ }
70
+ }
@@ -1,54 +1,54 @@
1
- package org.embulk.output.jdbc.setter;
2
-
3
- import java.io.IOException;
4
- import java.sql.SQLException;
5
- import com.google.common.collect.ImmutableSet;
6
- import org.embulk.spi.time.Timestamp;
7
- import org.embulk.output.jdbc.JdbcColumn;
8
- import org.embulk.output.jdbc.BatchInsert;
9
-
10
- public class BooleanColumnSetter
11
- extends ColumnSetter
12
- {
13
- public BooleanColumnSetter(BatchInsert batch, JdbcColumn column,
14
- DefaultValueSetter defaultValue)
15
- {
16
- super(batch, column, defaultValue);
17
- }
18
-
19
- @Override
20
- public void nullValue() throws IOException, SQLException
21
- {
22
- defaultValue.setBoolean();
23
- }
24
-
25
- @Override
26
- public void booleanValue(boolean v) throws IOException, SQLException
27
- {
28
- batch.setBoolean(v);
29
- }
30
-
31
- @Override
32
- public void longValue(long v) throws IOException, SQLException
33
- {
34
- batch.setBoolean(v > 0);
35
- }
36
-
37
- @Override
38
- public void doubleValue(double v) throws IOException, SQLException
39
- {
40
- batch.setBoolean(v > 0.0);
41
- }
42
-
43
- @Override
44
- public void stringValue(String v) throws IOException, SQLException
45
- {
46
- defaultValue.setBoolean();
47
- }
48
-
49
- @Override
50
- public void timestampValue(Timestamp v) throws IOException, SQLException
51
- {
52
- defaultValue.setBoolean();
53
- }
54
- }
1
+ package org.embulk.output.jdbc.setter;
2
+
3
+ import java.io.IOException;
4
+ import java.sql.SQLException;
5
+ import com.google.common.collect.ImmutableSet;
6
+ import org.embulk.spi.time.Timestamp;
7
+ import org.embulk.output.jdbc.JdbcColumn;
8
+ import org.embulk.output.jdbc.BatchInsert;
9
+
10
+ public class BooleanColumnSetter
11
+ extends ColumnSetter
12
+ {
13
+ public BooleanColumnSetter(BatchInsert batch, JdbcColumn column,
14
+ DefaultValueSetter defaultValue)
15
+ {
16
+ super(batch, column, defaultValue);
17
+ }
18
+
19
+ @Override
20
+ public void nullValue() throws IOException, SQLException
21
+ {
22
+ defaultValue.setBoolean();
23
+ }
24
+
25
+ @Override
26
+ public void booleanValue(boolean v) throws IOException, SQLException
27
+ {
28
+ batch.setBoolean(v);
29
+ }
30
+
31
+ @Override
32
+ public void longValue(long v) throws IOException, SQLException
33
+ {
34
+ batch.setBoolean(v > 0);
35
+ }
36
+
37
+ @Override
38
+ public void doubleValue(double v) throws IOException, SQLException
39
+ {
40
+ batch.setBoolean(v > 0.0);
41
+ }
42
+
43
+ @Override
44
+ public void stringValue(String v) throws IOException, SQLException
45
+ {
46
+ defaultValue.setBoolean();
47
+ }
48
+
49
+ @Override
50
+ public void timestampValue(Timestamp v) throws IOException, SQLException
51
+ {
52
+ defaultValue.setBoolean();
53
+ }
54
+ }
@@ -1,76 +1,76 @@
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.ColumnVisitor;
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 ByteColumnSetter
13
- extends ColumnSetter
14
- {
15
- public ByteColumnSetter(BatchInsert batch, JdbcColumn column,
16
- DefaultValueSetter defaultValue)
17
- {
18
- super(batch, column, defaultValue);
19
- }
20
-
21
- @Override
22
- public void nullValue() throws IOException, SQLException
23
- {
24
- defaultValue.setByte();
25
- }
26
-
27
- @Override
28
- public void booleanValue(boolean v) throws IOException, SQLException
29
- {
30
- batch.setByte(v ? (byte) 1 : (byte) 0);
31
- }
32
-
33
- @Override
34
- public void longValue(long v) throws IOException, SQLException
35
- {
36
- if (v > Byte.MAX_VALUE || v < Byte.MIN_VALUE) {
37
- defaultValue.setByte();
38
- } else {
39
- batch.setByte((byte) v);
40
- }
41
- }
42
-
43
- @Override
44
- public void doubleValue(double v) throws IOException, SQLException
45
- {
46
- long lv;
47
- try {
48
- // TODO configurable rounding mode
49
- lv = DoubleMath.roundToLong(v, RoundingMode.HALF_UP);
50
- } catch (ArithmeticException ex) {
51
- // NaN / Infinite / -Infinite
52
- defaultValue.setByte();
53
- return;
54
- }
55
- longValue(lv);
56
- }
57
-
58
- @Override
59
- public void stringValue(String v) throws IOException, SQLException
60
- {
61
- byte sv;
62
- try {
63
- sv = Byte.parseByte(v);
64
- } catch (NumberFormatException e) {
65
- defaultValue.setByte();
66
- return;
67
- }
68
- batch.setByte(sv);
69
- }
70
-
71
- @Override
72
- public void timestampValue(Timestamp v) throws IOException, SQLException
73
- {
74
- defaultValue.setByte();
75
- }
76
- }
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.ColumnVisitor;
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 ByteColumnSetter
13
+ extends ColumnSetter
14
+ {
15
+ public ByteColumnSetter(BatchInsert batch, JdbcColumn column,
16
+ DefaultValueSetter defaultValue)
17
+ {
18
+ super(batch, column, defaultValue);
19
+ }
20
+
21
+ @Override
22
+ public void nullValue() throws IOException, SQLException
23
+ {
24
+ defaultValue.setByte();
25
+ }
26
+
27
+ @Override
28
+ public void booleanValue(boolean v) throws IOException, SQLException
29
+ {
30
+ batch.setByte(v ? (byte) 1 : (byte) 0);
31
+ }
32
+
33
+ @Override
34
+ public void longValue(long v) throws IOException, SQLException
35
+ {
36
+ if (v > Byte.MAX_VALUE || v < Byte.MIN_VALUE) {
37
+ defaultValue.setByte();
38
+ } else {
39
+ batch.setByte((byte) v);
40
+ }
41
+ }
42
+
43
+ @Override
44
+ public void doubleValue(double v) throws IOException, SQLException
45
+ {
46
+ long lv;
47
+ try {
48
+ // TODO configurable rounding mode
49
+ lv = DoubleMath.roundToLong(v, RoundingMode.HALF_UP);
50
+ } catch (ArithmeticException ex) {
51
+ // NaN / Infinite / -Infinite
52
+ defaultValue.setByte();
53
+ return;
54
+ }
55
+ longValue(lv);
56
+ }
57
+
58
+ @Override
59
+ public void stringValue(String v) throws IOException, SQLException
60
+ {
61
+ byte sv;
62
+ try {
63
+ sv = Byte.parseByte(v);
64
+ } catch (NumberFormatException e) {
65
+ defaultValue.setByte();
66
+ return;
67
+ }
68
+ batch.setByte(sv);
69
+ }
70
+
71
+ @Override
72
+ public void timestampValue(Timestamp v) throws IOException, SQLException
73
+ {
74
+ defaultValue.setByte();
75
+ }
76
+ }