embulk-output-teradata 0.1.2 → 0.1.3

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/README.md +0 -8
  4. data/build.gradle +5 -2
  5. data/embulk-output-teradata.iml +12 -0
  6. data/gradle/wrapper/gradle-wrapper.properties +2 -2
  7. data/gradlew +0 -0
  8. data/lib/embulk-output-jdbc-0.7.11.jar +0 -0
  9. data/src/main/java/org/embulk/output/teradata/TeradataOutputPlugin.java +13 -52
  10. data/src/main/java/org/embulk/output/teradata/jdbc/TeradataBatchInsert.java +37 -0
  11. data/src/main/java/org/embulk/output/teradata/jdbc/TeradataOutputConnection.java +307 -0
  12. data/src/main/java/org/embulk/output/teradata/jdbc/TeradataOutputConnector.java +46 -0
  13. metadata +10 -40
  14. data/src/main/java/org/embulk/output/teradata/JdbcOutputPlugin.java +0 -134
  15. data/src/main/java/org/embulk/output/teradata/TeradataOutputConnection.java +0 -19
  16. data/src/main/java/org/embulk/output/teradata/jdbc/AbstractJdbcOutputPlugin.java +0 -1144
  17. data/src/main/java/org/embulk/output/teradata/jdbc/BatchInsert.java +0 -52
  18. data/src/main/java/org/embulk/output/teradata/jdbc/JdbcColumn.java +0 -134
  19. data/src/main/java/org/embulk/output/teradata/jdbc/JdbcColumnOption.java +0 -34
  20. data/src/main/java/org/embulk/output/teradata/jdbc/JdbcOutputConnection.java +0 -549
  21. data/src/main/java/org/embulk/output/teradata/jdbc/JdbcOutputConnector.java +0 -8
  22. data/src/main/java/org/embulk/output/teradata/jdbc/JdbcSchema.java +0 -79
  23. data/src/main/java/org/embulk/output/teradata/jdbc/JdbcUtils.java +0 -153
  24. data/src/main/java/org/embulk/output/teradata/jdbc/MergeConfig.java +0 -23
  25. data/src/main/java/org/embulk/output/teradata/jdbc/StandardBatchInsert.java +0 -201
  26. data/src/main/java/org/embulk/output/teradata/jdbc/TimestampFormat.java +0 -37
  27. data/src/main/java/org/embulk/output/teradata/jdbc/ToString.java +0 -54
  28. data/src/main/java/org/embulk/output/teradata/jdbc/ToStringMap.java +0 -34
  29. data/src/main/java/org/embulk/output/teradata/jdbc/setter/BigDecimalColumnSetter.java +0 -76
  30. data/src/main/java/org/embulk/output/teradata/jdbc/setter/BooleanColumnSetter.java +0 -61
  31. data/src/main/java/org/embulk/output/teradata/jdbc/setter/ByteColumnSetter.java +0 -84
  32. data/src/main/java/org/embulk/output/teradata/jdbc/setter/ColumnSetter.java +0 -48
  33. data/src/main/java/org/embulk/output/teradata/jdbc/setter/ColumnSetterFactory.java +0 -199
  34. data/src/main/java/org/embulk/output/teradata/jdbc/setter/ColumnSetterVisitor.java +0 -110
  35. data/src/main/java/org/embulk/output/teradata/jdbc/setter/DefaultValueSetter.java +0 -50
  36. data/src/main/java/org/embulk/output/teradata/jdbc/setter/DoubleColumnSetter.java +0 -68
  37. data/src/main/java/org/embulk/output/teradata/jdbc/setter/FloatColumnSetter.java +0 -68
  38. data/src/main/java/org/embulk/output/teradata/jdbc/setter/IntColumnSetter.java +0 -84
  39. data/src/main/java/org/embulk/output/teradata/jdbc/setter/JsonColumnSetter.java +0 -61
  40. data/src/main/java/org/embulk/output/teradata/jdbc/setter/LongColumnSetter.java +0 -80
  41. data/src/main/java/org/embulk/output/teradata/jdbc/setter/NStringColumnSetter.java +0 -66
  42. data/src/main/java/org/embulk/output/teradata/jdbc/setter/NullColumnSetter.java +0 -61
  43. data/src/main/java/org/embulk/output/teradata/jdbc/setter/NullDefaultValueSetter.java +0 -111
  44. data/src/main/java/org/embulk/output/teradata/jdbc/setter/PassThroughColumnSetter.java +0 -66
  45. data/src/main/java/org/embulk/output/teradata/jdbc/setter/ShortColumnSetter.java +0 -84
  46. data/src/main/java/org/embulk/output/teradata/jdbc/setter/SkipColumnSetter.java +0 -49
  47. data/src/main/java/org/embulk/output/teradata/jdbc/setter/SqlDateColumnSetter.java +0 -66
  48. data/src/main/java/org/embulk/output/teradata/jdbc/setter/SqlTimeColumnSetter.java +0 -66
  49. data/src/main/java/org/embulk/output/teradata/jdbc/setter/SqlTimestampColumnSetter.java +0 -66
  50. data/src/main/java/org/embulk/output/teradata/jdbc/setter/StringColumnSetter.java +0 -66
@@ -1,37 +0,0 @@
1
- package org.embulk.output.jdbc;
2
-
3
- import java.sql.Timestamp;
4
- import java.text.FieldPosition;
5
- import java.text.SimpleDateFormat;
6
- import java.util.Date;
7
-
8
-
9
- public class TimestampFormat extends SimpleDateFormat
10
- {
11
-
12
- private final int scale;
13
-
14
- public TimestampFormat(String pattern, int scale)
15
- {
16
- super(pattern);
17
-
18
- this.scale = scale;
19
- }
20
-
21
- @Override
22
- public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos)
23
- {
24
- StringBuffer buffer = super.format(date, toAppendTo, pos);
25
- if (scale > 0) {
26
- buffer.append('.');
27
- String nanos = Integer.toString(((Timestamp)date).getNanos());
28
- int zeros = Math.min(scale, 9 - nanos.length());
29
- for (int i = 0; i < zeros; i++) {
30
- buffer.append('0');
31
- }
32
- buffer.append(nanos.substring(0, scale - zeros));
33
- }
34
- return buffer;
35
- }
36
-
37
- }
@@ -1,54 +0,0 @@
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,34 +0,0 @@
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,76 +0,0 @@
1
- package org.embulk.output.jdbc.setter;
2
-
3
- import java.math.BigDecimal;
4
- import java.io.IOException;
5
- import java.sql.SQLException;
6
-
7
- import org.embulk.spi.time.Timestamp;
8
- import org.embulk.output.jdbc.JdbcColumn;
9
- import org.embulk.output.jdbc.BatchInsert;
10
- import org.msgpack.value.Value;
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
-
71
- @Override
72
- public void jsonValue(Value v) throws IOException, SQLException
73
- {
74
- defaultValue.setBigDecimal();
75
- }
76
- }
@@ -1,61 +0,0 @@
1
- package org.embulk.output.jdbc.setter;
2
-
3
- import java.io.IOException;
4
- import java.sql.SQLException;
5
-
6
- import org.embulk.spi.time.Timestamp;
7
- import org.embulk.output.jdbc.JdbcColumn;
8
- import org.embulk.output.jdbc.BatchInsert;
9
- import org.msgpack.value.Value;
10
-
11
- public class BooleanColumnSetter
12
- extends ColumnSetter
13
- {
14
- public BooleanColumnSetter(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.setBoolean();
24
- }
25
-
26
- @Override
27
- public void booleanValue(boolean v) throws IOException, SQLException
28
- {
29
- batch.setBoolean(v);
30
- }
31
-
32
- @Override
33
- public void longValue(long v) throws IOException, SQLException
34
- {
35
- batch.setBoolean(v > 0);
36
- }
37
-
38
- @Override
39
- public void doubleValue(double v) throws IOException, SQLException
40
- {
41
- batch.setBoolean(v > 0.0);
42
- }
43
-
44
- @Override
45
- public void stringValue(String v) throws IOException, SQLException
46
- {
47
- defaultValue.setBoolean();
48
- }
49
-
50
- @Override
51
- public void timestampValue(Timestamp v) throws IOException, SQLException
52
- {
53
- defaultValue.setBoolean();
54
- }
55
-
56
- @Override
57
- public void jsonValue(Value v) throws IOException, SQLException
58
- {
59
- defaultValue.setBoolean();
60
- }
61
- }
@@ -1,84 +0,0 @@
1
- package org.embulk.output.jdbc.setter;
2
-
3
- import java.io.IOException;
4
- import java.sql.SQLException;
5
- import java.math.RoundingMode;
6
-
7
- import com.google.common.math.DoubleMath;
8
-
9
- import org.embulk.spi.time.Timestamp;
10
- import org.embulk.output.jdbc.JdbcColumn;
11
- import org.embulk.output.jdbc.BatchInsert;
12
- import org.msgpack.value.Value;
13
-
14
- public class ByteColumnSetter
15
- extends ColumnSetter
16
- {
17
- public ByteColumnSetter(BatchInsert batch, JdbcColumn column,
18
- DefaultValueSetter defaultValue)
19
- {
20
- super(batch, column, defaultValue);
21
- }
22
-
23
- @Override
24
- public void nullValue() throws IOException, SQLException
25
- {
26
- defaultValue.setByte();
27
- }
28
-
29
- @Override
30
- public void booleanValue(boolean v) throws IOException, SQLException
31
- {
32
- batch.setByte(v ? (byte) 1 : (byte) 0);
33
- }
34
-
35
- @Override
36
- public void longValue(long v) throws IOException, SQLException
37
- {
38
- if (v > Byte.MAX_VALUE || v < Byte.MIN_VALUE) {
39
- defaultValue.setByte();
40
- } else {
41
- batch.setByte((byte) v);
42
- }
43
- }
44
-
45
- @Override
46
- public void doubleValue(double v) throws IOException, SQLException
47
- {
48
- long lv;
49
- try {
50
- // TODO configurable rounding mode
51
- lv = DoubleMath.roundToLong(v, RoundingMode.HALF_UP);
52
- } catch (ArithmeticException ex) {
53
- // NaN / Infinite / -Infinite
54
- defaultValue.setByte();
55
- return;
56
- }
57
- longValue(lv);
58
- }
59
-
60
- @Override
61
- public void stringValue(String v) throws IOException, SQLException
62
- {
63
- byte sv;
64
- try {
65
- sv = Byte.parseByte(v);
66
- } catch (NumberFormatException e) {
67
- defaultValue.setByte();
68
- return;
69
- }
70
- batch.setByte(sv);
71
- }
72
-
73
- @Override
74
- public void timestampValue(Timestamp v) throws IOException, SQLException
75
- {
76
- defaultValue.setByte();
77
- }
78
-
79
- @Override
80
- public void jsonValue(Value v) throws IOException, SQLException
81
- {
82
- defaultValue.setByte();
83
- }
84
- }
@@ -1,48 +0,0 @@
1
- package org.embulk.output.jdbc.setter;
2
-
3
- import java.io.IOException;
4
- import java.sql.SQLException;
5
-
6
- import org.embulk.output.jdbc.BatchInsert;
7
- import org.embulk.output.jdbc.JdbcColumn;
8
- import org.embulk.spi.time.Timestamp;
9
- import org.msgpack.value.Value;
10
-
11
- public abstract class ColumnSetter
12
- {
13
- protected final BatchInsert batch;
14
- protected final JdbcColumn column;
15
- protected final DefaultValueSetter defaultValue;
16
-
17
- public ColumnSetter(BatchInsert batch, JdbcColumn column,
18
- DefaultValueSetter defaultValue)
19
- {
20
- this.batch = batch;
21
- this.column = column;
22
- this.defaultValue = defaultValue;
23
- }
24
-
25
- public JdbcColumn getColumn()
26
- {
27
- return column;
28
- }
29
-
30
- public int getSqlType()
31
- {
32
- return column.getSqlType();
33
- }
34
-
35
- public abstract void nullValue() throws IOException, SQLException;
36
-
37
- public abstract void booleanValue(boolean v) throws IOException, SQLException;
38
-
39
- public abstract void longValue(long v) throws IOException, SQLException;
40
-
41
- public abstract void doubleValue(double v) throws IOException, SQLException;
42
-
43
- public abstract void stringValue(String v) throws IOException, SQLException;
44
-
45
- public abstract void timestampValue(Timestamp v) throws IOException, SQLException;
46
-
47
- public abstract void jsonValue(Value v) throws IOException, SQLException;
48
- }
@@ -1,199 +0,0 @@
1
- package org.embulk.output.jdbc.setter;
2
-
3
- import java.util.Calendar;
4
- import java.util.Locale;
5
- import java.sql.Types;
6
- import org.joda.time.DateTimeZone;
7
- import org.embulk.spi.time.TimestampFormatter;
8
- import org.embulk.output.jdbc.BatchInsert;
9
- import org.embulk.output.jdbc.JdbcColumn;
10
- import org.embulk.output.jdbc.JdbcColumnOption;
11
- import org.embulk.config.ConfigException;
12
-
13
- public class ColumnSetterFactory
14
- {
15
- protected final BatchInsert batch;
16
- protected final DateTimeZone defaultTimeZone;
17
-
18
- public ColumnSetterFactory(BatchInsert batch, DateTimeZone defaultTimeZone)
19
- {
20
- this.batch = batch;
21
- this.defaultTimeZone = defaultTimeZone;
22
- }
23
-
24
- public SkipColumnSetter newSkipColumnSetter()
25
- {
26
- return new SkipColumnSetter(batch);
27
- }
28
-
29
- public DefaultValueSetter newDefaultValueSetter(JdbcColumn column, JdbcColumnOption option)
30
- {
31
- return new NullDefaultValueSetter(batch, column);
32
- }
33
-
34
- public ColumnSetter newColumnSetter(JdbcColumn column, JdbcColumnOption option)
35
- {
36
- switch (option.getValueType()) {
37
- case "coerce":
38
- return newCoalesceColumnSetter(column, option);
39
- case "byte":
40
- return new ByteColumnSetter(batch, column, newDefaultValueSetter(column, option));
41
- case "short":
42
- return new ShortColumnSetter(batch, column, newDefaultValueSetter(column, option));
43
- case "int":
44
- return new IntColumnSetter(batch, column, newDefaultValueSetter(column, option));
45
- case "long":
46
- return new LongColumnSetter(batch, column, newDefaultValueSetter(column, option));
47
- case "double":
48
- return new DoubleColumnSetter(batch, column, newDefaultValueSetter(column, option));
49
- case "float":
50
- return new FloatColumnSetter(batch, column, newDefaultValueSetter(column, option));
51
- case "boolean":
52
- return new BooleanColumnSetter(batch, column, newDefaultValueSetter(column, option));
53
- case "string":
54
- return new StringColumnSetter(batch, column, newDefaultValueSetter(column, option), newTimestampFormatter(option));
55
- case "nstring":
56
- return new NStringColumnSetter(batch, column, newDefaultValueSetter(column, option), newTimestampFormatter(option));
57
- case "date":
58
- return new SqlDateColumnSetter(batch, column, newDefaultValueSetter(column, option), newCalendar(option));
59
- case "time":
60
- return new SqlTimeColumnSetter(batch, column, newDefaultValueSetter(column, option), newCalendar(option));
61
- case "timestamp":
62
- return new SqlTimestampColumnSetter(batch, column, newDefaultValueSetter(column, option), newCalendar(option));
63
- case "decimal":
64
- return new BigDecimalColumnSetter(batch, column, newDefaultValueSetter(column, option));
65
- case "json":
66
- return new JsonColumnSetter(batch, column, newDefaultValueSetter(column, option));
67
- case "null":
68
- return new NullColumnSetter(batch, column, newDefaultValueSetter(column, option));
69
- case "pass":
70
- return new PassThroughColumnSetter(batch, column, newDefaultValueSetter(column, option), newCalendar(option));
71
- default:
72
- throw new ConfigException(String.format("Unknown value_type '%s' for column '%s'", option.getValueType(), column.getName()));
73
- }
74
- }
75
-
76
- protected TimestampFormatter newTimestampFormatter(JdbcColumnOption option)
77
- {
78
- return new TimestampFormatter(
79
- option.getJRuby(),
80
- option.getTimestampFormat().getFormat(),
81
- getTimeZone(option));
82
- }
83
-
84
- protected Calendar newCalendar(JdbcColumnOption option)
85
- {
86
- return Calendar.getInstance(getTimeZone(option).toTimeZone(), Locale.ENGLISH);
87
- }
88
-
89
- protected DateTimeZone getTimeZone(JdbcColumnOption option)
90
- {
91
- return option.getTimeZone().or(defaultTimeZone);
92
- }
93
-
94
- public ColumnSetter newCoalesceColumnSetter(JdbcColumn column, JdbcColumnOption option)
95
- {
96
- switch(column.getSqlType()) {
97
- // setByte
98
- case Types.TINYINT:
99
- return new ByteColumnSetter(batch, column, newDefaultValueSetter(column, option));
100
-
101
- // setShort
102
- case Types.SMALLINT:
103
- return new ShortColumnSetter(batch, column, newDefaultValueSetter(column, option));
104
-
105
- // setInt
106
- case Types.INTEGER:
107
- return new IntColumnSetter(batch, column, newDefaultValueSetter(column, option));
108
-
109
- // setLong
110
- case Types.BIGINT:
111
- return new LongColumnSetter(batch, column, newDefaultValueSetter(column, option));
112
-
113
- // setDouble
114
- case Types.DOUBLE:
115
- case Types.FLOAT:
116
- return new DoubleColumnSetter(batch, column, newDefaultValueSetter(column, option));
117
-
118
- // setFloat
119
- case Types.REAL:
120
- return new FloatColumnSetter(batch, column, newDefaultValueSetter(column, option));
121
-
122
- // setBool
123
- case Types.BOOLEAN:
124
- case Types.BIT: // JDBC BIT is boolean, unlike SQL-92
125
- return new BooleanColumnSetter(batch, column, newDefaultValueSetter(column, option));
126
-
127
- // setString, Clob
128
- case Types.CHAR:
129
- case Types.VARCHAR:
130
- case Types.LONGVARCHAR:
131
- case Types.CLOB:
132
- return new StringColumnSetter(batch, column, newDefaultValueSetter(column, option), newTimestampFormatter(option));
133
-
134
- // setNString, NClob
135
- case Types.NCHAR:
136
- case Types.NVARCHAR:
137
- case Types.LONGNVARCHAR:
138
- case Types.NCLOB:
139
- return new NStringColumnSetter(batch, column, newDefaultValueSetter(column, option), newTimestampFormatter(option));
140
-
141
- // TODO
142
- //// setBytes Blob
143
- //case Types.BINARY:
144
- //case Types.VARBINARY:
145
- //case Types.LONGVARBINARY:
146
- //case Types.BLOB:
147
- // return new BytesColumnSetter(batch, column, newDefaultValueSetter(column, option));
148
-
149
- // Time
150
- case Types.DATE:
151
- return new SqlDateColumnSetter(batch, column, newDefaultValueSetter(column, option), newCalendar(option));
152
- case Types.TIME:
153
- return new SqlTimeColumnSetter(batch, column, newDefaultValueSetter(column, option), newCalendar(option));
154
- case Types.TIMESTAMP:
155
- return new SqlTimestampColumnSetter(batch, column, newDefaultValueSetter(column, option), newCalendar(option));
156
-
157
- // Null
158
- case Types.NULL:
159
- return new NullColumnSetter(batch, column, newDefaultValueSetter(column, option));
160
-
161
- // BigDecimal
162
- case Types.NUMERIC:
163
- case Types.DECIMAL:
164
- return new BigDecimalColumnSetter(batch, column, newDefaultValueSetter(column, option));
165
-
166
- // others
167
- case Types.ARRAY: // array
168
- case Types.STRUCT: // map
169
- case Types.REF:
170
- case Types.DATALINK:
171
- case Types.SQLXML: // XML
172
- case Types.ROWID:
173
- case Types.DISTINCT:
174
- case Types.JAVA_OBJECT:
175
- case Types.OTHER:
176
- default:
177
- throw unsupportedOperationException(column);
178
- }
179
- }
180
-
181
- //private static String[] UNSUPPORTED = new String[] {
182
- // "ARRAY",
183
- // "STRUCT",
184
- // "REF",
185
- // "DATALINK",
186
- // "SQLXML",
187
- // "ROWID",
188
- // "DISTINCT",
189
- // "OTHER",
190
- //};
191
-
192
- private static UnsupportedOperationException unsupportedOperationException(JdbcColumn column)
193
- {
194
- throw new UnsupportedOperationException(
195
- String.format("Unsupported type %s (sqlType=%d, size=%d, scale=%d)",
196
- column.getDeclaredType().or(column.getSimpleTypeName()),
197
- column.getSqlType(), column.getSizeTypeParameter(), column.getScaleTypeParameter()));
198
- }
199
- }