Skip to content

Commit 8d38bda

Browse files
committed
[improve][lib][rdbms] Handle unknown or unsupported types as strings to improve support for various data types
1 parent ceefb94 commit 8d38bda

File tree

1 file changed

+7
-20
lines changed

1 file changed

+7
-20
lines changed

Diff for: lib/addax-rdbms/src/main/java/com/wgzhao/addax/rdbms/reader/CommonRdbmsReader.java

+7-20
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
import com.wgzhao.addax.rdbms.reader.util.ReaderSplitUtil;
4444
import com.wgzhao.addax.rdbms.reader.util.SingleTableSplitUtil;
4545
import com.wgzhao.addax.rdbms.util.DBUtil;
46-
import com.wgzhao.addax.rdbms.util.DBUtilErrorCode;
4746
import com.wgzhao.addax.rdbms.util.DataBaseType;
4847
import com.wgzhao.addax.rdbms.util.RdbmsException;
4948
import org.apache.commons.lang3.StringUtils;
@@ -330,32 +329,20 @@ protected Column createColumn(ResultSet rs, ResultSetMetaData metaData, int i)
330329
return new BytesColumn(rs.getBytes(i));
331330
}
332331

333-
case Types.NULL:
334-
String stringData = null;
335-
if (rs.getObject(i) != null) {
336-
stringData = rs.getObject(i).toString();
337-
}
338-
return new StringColumn(stringData);
339-
340332
case Types.ARRAY:
341333
return new StringColumn(rs.getArray(i).toString());
342334

343-
case Types.JAVA_OBJECT:
344-
345-
case Types.OTHER:
346-
return new StringColumn(rs.getObject(i).toString());
347-
348335
case Types.SQLXML:
349336
return new StringColumn(rs.getSQLXML(i).getString());
350337

351338
default:
352-
throw AddaxException.asAddaxException(DBUtilErrorCode.UNSUPPORTED_TYPE,
353-
String.format("The column configuration is incorrect, The database does not support reading this field type."
354-
+ "Field name:[%s], Field type:[%s], "
355-
+ "Field typename:[%s], Field java type:[%s]. Please try using database " +
356-
"functions to convert it to a supported type or ignore the field.",
357-
metaData.getColumnName(i), metaData.getColumnType(i),
358-
metaData.getColumnTypeName(i), metaData.getColumnClassName(i)));
339+
// use object as default data type for all unknown datatype
340+
LOG.debug("Unknown data type: {} at field name: {}, using getObject().", metaData.getColumnType(i), metaData.getColumnName(i));
341+
String stringData = null;
342+
if (rs.getObject(i) != null) {
343+
stringData = rs.getObject(i).toString();
344+
}
345+
return new StringColumn(stringData);
359346
}
360347
}
361348

0 commit comments

Comments
 (0)