This is an automated email from the ASF dual-hosted git repository. zykkk pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push: new ef754487d9a [branch-2.1][improvement](jdbc catalog) Catch `AbstractMethodError` in `getColumnValue` Method and Suggest Updating to ojdbc8+ (#37634) ef754487d9a is described below commit ef754487d9a9e48309c65b7e715c1008c2962f56 Author: zy-kkk <zhongy...@gmail.com> AuthorDate: Thu Jul 11 15:10:47 2024 +0800 [branch-2.1][improvement](jdbc catalog) Catch `AbstractMethodError` in `getColumnValue` Method and Suggest Updating to ojdbc8+ (#37634) pick (#37608) Catch AbstractMethodError in getColumnValue method. Provide a clear error message suggesting the use of ojdbc8 or higher versions to avoid compatibility issues. --- .../org/apache/doris/jdbc/OracleJdbcExecutor.java | 67 ++++++++++++---------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/OracleJdbcExecutor.java b/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/OracleJdbcExecutor.java index 0c29ac440e5..47055facabb 100644 --- a/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/OracleJdbcExecutor.java +++ b/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/OracleJdbcExecutor.java @@ -60,37 +60,42 @@ public class OracleJdbcExecutor extends BaseJdbcExecutor { @Override protected Object getColumnValue(int columnIndex, ColumnType type, String[] replaceStringList) throws SQLException { - switch (type.getType()) { - case TINYINT: - return resultSet.getObject(columnIndex + 1, Byte.class); - case SMALLINT: - return resultSet.getObject(columnIndex + 1, Short.class); - case INT: - return resultSet.getObject(columnIndex + 1, Integer.class); - case BIGINT: - return resultSet.getObject(columnIndex + 1, Long.class); - case FLOAT: - return resultSet.getObject(columnIndex + 1, Float.class); - case DOUBLE: - return resultSet.getObject(columnIndex + 1, Double.class); - case LARGEINT: - case DECIMALV2: - case DECIMAL32: - case DECIMAL64: - case DECIMAL128: - return resultSet.getObject(columnIndex + 1, BigDecimal.class); - case DATE: - case DATEV2: - return resultSet.getObject(columnIndex + 1, LocalDate.class); - case DATETIME: - case DATETIMEV2: - return resultSet.getObject(columnIndex + 1, LocalDateTime.class); - case CHAR: - case VARCHAR: - case STRING: - return resultSet.getObject(columnIndex + 1); - default: - throw new IllegalArgumentException("Unsupported column type: " + type.getType()); + try { + switch (type.getType()) { + case TINYINT: + return resultSet.getObject(columnIndex + 1, Byte.class); + case SMALLINT: + return resultSet.getObject(columnIndex + 1, Short.class); + case INT: + return resultSet.getObject(columnIndex + 1, Integer.class); + case BIGINT: + return resultSet.getObject(columnIndex + 1, Long.class); + case FLOAT: + return resultSet.getObject(columnIndex + 1, Float.class); + case DOUBLE: + return resultSet.getObject(columnIndex + 1, Double.class); + case LARGEINT: + case DECIMALV2: + case DECIMAL32: + case DECIMAL64: + case DECIMAL128: + return resultSet.getObject(columnIndex + 1, BigDecimal.class); + case DATE: + case DATEV2: + return resultSet.getObject(columnIndex + 1, LocalDate.class); + case DATETIME: + case DATETIMEV2: + return resultSet.getObject(columnIndex + 1, LocalDateTime.class); + case CHAR: + case VARCHAR: + case STRING: + return resultSet.getObject(columnIndex + 1); + default: + throw new IllegalArgumentException("Unsupported column type: " + type.getType()); + } + } catch (AbstractMethodError e) { + LOG.warn("Detected an outdated ojdbc driver. Please use ojdbc8 or above.", e); + throw new SQLException("Detected an outdated ojdbc driver. Please use ojdbc8 or above."); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org