embulk-output-jdbc 0.4.1 → 0.4.2

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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/build.gradle +2 -2
  3. data/classpath/embulk-output-jdbc-0.4.2.jar +0 -0
  4. data/lib/embulk/output/jdbc.rb +3 -3
  5. data/src/main/java/org/embulk/output/JdbcOutputPlugin.java +137 -138
  6. data/src/main/java/org/embulk/output/jdbc/AbstractJdbcOutputPlugin.java +972 -973
  7. data/src/main/java/org/embulk/output/jdbc/BatchInsert.java +52 -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 +153 -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 +34 -35
  17. data/src/main/java/org/embulk/output/jdbc/setter/BigDecimalColumnSetter.java +68 -70
  18. data/src/main/java/org/embulk/output/jdbc/setter/BooleanColumnSetter.java +53 -54
  19. data/src/main/java/org/embulk/output/jdbc/setter/ByteColumnSetter.java +75 -76
  20. data/src/main/java/org/embulk/output/jdbc/setter/ColumnSetter.java +44 -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 +95 -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 +60 -61
  25. data/src/main/java/org/embulk/output/jdbc/setter/FloatColumnSetter.java +60 -61
  26. data/src/main/java/org/embulk/output/jdbc/setter/IntColumnSetter.java +75 -76
  27. data/src/main/java/org/embulk/output/jdbc/setter/LongColumnSetter.java +71 -72
  28. data/src/main/java/org/embulk/output/jdbc/setter/NStringColumnSetter.java +58 -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 +58 -59
  32. data/src/main/java/org/embulk/output/jdbc/setter/ShortColumnSetter.java +75 -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 +58 -59
  35. data/src/main/java/org/embulk/output/jdbc/setter/SqlTimeColumnSetter.java +58 -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 +58 -59
  38. data/src/test/java/org/embulk/output/TestJdbcOutputPlugin.java +5 -5
  39. metadata +3 -3
  40. data/classpath/embulk-output-jdbc-0.4.1.jar +0 -0
@@ -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,34 @@
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
+
10
+ public class ToStringMap
11
+ extends HashMap<String, String>
12
+ {
13
+ @JsonCreator
14
+ ToStringMap(Map<String, ToString> map)
15
+ {
16
+ super(Maps.transformValues(map, new Function<ToString, String>() {
17
+ public String apply(ToString value)
18
+ {
19
+ if (value == null) {
20
+ return "null";
21
+ } else {
22
+ return value.toString();
23
+ }
24
+ }
25
+ }));
26
+ }
27
+
28
+ public Properties toProperties()
29
+ {
30
+ Properties props = new Properties();
31
+ props.putAll(this);
32
+ return props;
33
+ }
34
+ }
@@ -1,70 +1,68 @@
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.time.Timestamp;
7
+ import org.embulk.output.jdbc.JdbcColumn;
8
+ import org.embulk.output.jdbc.BatchInsert;
9
+
10
+ public class BigDecimalColumnSetter
11
+ extends ColumnSetter
12
+ {
13
+ private static final BigDecimal ZERO = BigDecimal.valueOf(0L);
14
+ private static final BigDecimal ONE = BigDecimal.valueOf(1L);
15
+
16
+ public BigDecimalColumnSetter(BatchInsert batch, JdbcColumn column,
17
+ DefaultValueSetter defaultValue)
18
+ {
19
+ super(batch, column, defaultValue);
20
+ }
21
+
22
+ @Override
23
+ public void nullValue() throws IOException, SQLException
24
+ {
25
+ defaultValue.setBigDecimal();
26
+ }
27
+
28
+ @Override
29
+ public void booleanValue(boolean v) throws IOException, SQLException
30
+ {
31
+ batch.setBigDecimal(v ? ONE : ZERO);
32
+ }
33
+
34
+ @Override
35
+ public void longValue(long v) throws IOException, SQLException
36
+ {
37
+ batch.setBigDecimal(BigDecimal.valueOf(v));
38
+ }
39
+
40
+ @Override
41
+ public void doubleValue(double v) throws IOException, SQLException
42
+ {
43
+ if (Double.isNaN(v) || Double.isInfinite(v)) {
44
+ defaultValue.setBigDecimal();
45
+ } else {
46
+ batch.setBigDecimal(BigDecimal.valueOf(v));
47
+ }
48
+ }
49
+
50
+ @Override
51
+ public void stringValue(String v) throws IOException, SQLException
52
+ {
53
+ BigDecimal dv;
54
+ try {
55
+ dv = new BigDecimal(v);
56
+ } catch (NumberFormatException ex) {
57
+ defaultValue.setBigDecimal();
58
+ return;
59
+ }
60
+ batch.setBigDecimal(dv);
61
+ }
62
+
63
+ @Override
64
+ public void timestampValue(Timestamp v) throws IOException, SQLException
65
+ {
66
+ defaultValue.setBigDecimal();
67
+ }
68
+ }
@@ -1,54 +1,53 @@
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 org.embulk.spi.time.Timestamp;
6
+ import org.embulk.output.jdbc.JdbcColumn;
7
+ import org.embulk.output.jdbc.BatchInsert;
8
+
9
+ public class BooleanColumnSetter
10
+ extends ColumnSetter
11
+ {
12
+ public BooleanColumnSetter(BatchInsert batch, JdbcColumn column,
13
+ DefaultValueSetter defaultValue)
14
+ {
15
+ super(batch, column, defaultValue);
16
+ }
17
+
18
+ @Override
19
+ public void nullValue() throws IOException, SQLException
20
+ {
21
+ defaultValue.setBoolean();
22
+ }
23
+
24
+ @Override
25
+ public void booleanValue(boolean v) throws IOException, SQLException
26
+ {
27
+ batch.setBoolean(v);
28
+ }
29
+
30
+ @Override
31
+ public void longValue(long v) throws IOException, SQLException
32
+ {
33
+ batch.setBoolean(v > 0);
34
+ }
35
+
36
+ @Override
37
+ public void doubleValue(double v) throws IOException, SQLException
38
+ {
39
+ batch.setBoolean(v > 0.0);
40
+ }
41
+
42
+ @Override
43
+ public void stringValue(String v) throws IOException, SQLException
44
+ {
45
+ defaultValue.setBoolean();
46
+ }
47
+
48
+ @Override
49
+ public void timestampValue(Timestamp v) throws IOException, SQLException
50
+ {
51
+ defaultValue.setBoolean();
52
+ }
53
+ }
@@ -1,76 +1,75 @@
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.time.Timestamp;
8
+ import org.embulk.output.jdbc.JdbcColumn;
9
+ import org.embulk.output.jdbc.BatchInsert;
10
+
11
+ public class ByteColumnSetter
12
+ extends ColumnSetter
13
+ {
14
+ public ByteColumnSetter(BatchInsert batch, JdbcColumn column,
15
+ DefaultValueSetter defaultValue)
16
+ {
17
+ super(batch, column, defaultValue);
18
+ }
19
+
20
+ @Override
21
+ public void nullValue() throws IOException, SQLException
22
+ {
23
+ defaultValue.setByte();
24
+ }
25
+
26
+ @Override
27
+ public void booleanValue(boolean v) throws IOException, SQLException
28
+ {
29
+ batch.setByte(v ? (byte) 1 : (byte) 0);
30
+ }
31
+
32
+ @Override
33
+ public void longValue(long v) throws IOException, SQLException
34
+ {
35
+ if (v > Byte.MAX_VALUE || v < Byte.MIN_VALUE) {
36
+ defaultValue.setByte();
37
+ } else {
38
+ batch.setByte((byte) v);
39
+ }
40
+ }
41
+
42
+ @Override
43
+ public void doubleValue(double v) throws IOException, SQLException
44
+ {
45
+ long lv;
46
+ try {
47
+ // TODO configurable rounding mode
48
+ lv = DoubleMath.roundToLong(v, RoundingMode.HALF_UP);
49
+ } catch (ArithmeticException ex) {
50
+ // NaN / Infinite / -Infinite
51
+ defaultValue.setByte();
52
+ return;
53
+ }
54
+ longValue(lv);
55
+ }
56
+
57
+ @Override
58
+ public void stringValue(String v) throws IOException, SQLException
59
+ {
60
+ byte sv;
61
+ try {
62
+ sv = Byte.parseByte(v);
63
+ } catch (NumberFormatException e) {
64
+ defaultValue.setByte();
65
+ return;
66
+ }
67
+ batch.setByte(sv);
68
+ }
69
+
70
+ @Override
71
+ public void timestampValue(Timestamp v) throws IOException, SQLException
72
+ {
73
+ defaultValue.setByte();
74
+ }
75
+ }