From 80ef62ee98a768b2d5cba51ab198f8feb41886eb Mon Sep 17 00:00:00 2001 From: walt Date: Thu, 21 May 2026 09:56:18 +0800 Subject: [PATCH 1/2] fix jdbc oracle engine NUMBER(20,0) type problem --- .../kyuubi/engine/jdbc/oracle/OracleTRowSetGenerator.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleTRowSetGenerator.scala b/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleTRowSetGenerator.scala index e3f38024570..b0fa8490601 100644 --- a/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleTRowSetGenerator.scala +++ b/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleTRowSetGenerator.scala @@ -34,9 +34,10 @@ class OracleTRowSetGenerator extends DefaultJdbcTRowSetGenerator { } override def getColumnType(schema: Seq[Column], ordinal: Int): Int = { - schema(ordinal).sqlType match { + val col = schema(ordinal) + col.sqlType match { // case for int, returns NUMERIC type in Oracle JDBC - case Types.NUMERIC if schema(ordinal).scale == 0 => + case Types.NUMERIC if col.scale == 0 && (col.precision > 0 && col.precision <= 9) => Types.INTEGER case Types.NUMERIC => Types.DECIMAL From 588c3fed0f9fd9d8af411ddd3934bfdf0720b89a Mon Sep 17 00:00:00 2001 From: walt Date: Thu, 21 May 2026 09:57:03 +0800 Subject: [PATCH 2/2] fix jdbc oracle engine NUMBER(20,0) type problem --- .../apache/kyuubi/engine/jdbc/oracle/OracleSchemaHelper.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleSchemaHelper.scala b/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleSchemaHelper.scala index 29d708d93c2..a2dc59bc6f3 100644 --- a/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleSchemaHelper.scala +++ b/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleSchemaHelper.scala @@ -25,7 +25,7 @@ class OracleSchemaHelper extends SchemaHelper { override protected def toTTypeDesc(sqlType: Int, precision: Int, scale: Int): TTypeDesc = { sqlType match { // case for int, returns NUMERIC type in Oracle JDBC - case Types.NUMERIC if scale == 0 => + case Types.NUMERIC if scale == 0 && (precision > 0 && precision <= 9) => super.toTTypeDesc(Types.INTEGER, precision, scale) // except for int case Types.NUMERIC =>