This is an automated email from the ASF dual-hosted git repository.
zykkk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 3c1488ca240 [improvement](jdbc catalog) Catch `AbstractMethodError` in
`getColumnValue` Method and Suggest Updating to ojdbc8+ (#37608)
3c1488ca240 is described below
commit 3c1488ca240d83e3209f31e2a122bac282e43ef3
Author: zy-kkk <[email protected]>
AuthorDate: Thu Jul 11 09:58:22 2024 +0800
[improvement](jdbc catalog) Catch `AbstractMethodError` in `getColumnValue`
Method and Suggest Updating to ojdbc8+ (#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 9a38c2b9e68..662f324eb23 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
@@ -65,37 +65,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: [email protected]
For additional commands, e-mail: [email protected]