embulk-output-teradata 0.1.2 → 0.1.3

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