embulk-output-jdbc 0.4.1 → 0.4.2

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