This is an automated email from the ASF dual-hosted git repository.

roryqi pushed a commit to branch branch-1.3
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/branch-1.3 by this push:
     new 796b27e8bb [Cherry-pick to branch-1.3] [#11231] fix(spark-connector): 
handle JDBC timestamp type (#11424) (#11436)
796b27e8bb is described below

commit 796b27e8bb3ab74db3b387161e0fc93c7091c8ef
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Jun 4 22:45:52 2026 +0800

    [Cherry-pick to branch-1.3] [#11231] fix(spark-connector): handle JDBC 
timestamp type (#11424) (#11436)
    
    **Cherry-pick Information:**
    - Original commit: 3ce2387bcd93c74eeaf69116c246fa725042e47d
    - Target branch: `branch-1.3`
    - Status: ✅ Clean cherry-pick (no conflicts)
    
    Co-authored-by: YangJie <[email protected]>
---
 .../connector/jdbc/SparkJdbcTypeConverter.java     |  2 ++
 .../jdbc/TestSparkJdbcTypeConverter.java}          | 33 +++++++++++++---------
 2 files changed, 22 insertions(+), 13 deletions(-)

diff --git 
a/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/jdbc/SparkJdbcTypeConverter.java
 
b/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/jdbc/SparkJdbcTypeConverter.java
index 56e2734a7f..95a9c0c408 100644
--- 
a/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/jdbc/SparkJdbcTypeConverter.java
+++ 
b/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/jdbc/SparkJdbcTypeConverter.java
@@ -33,6 +33,8 @@ public class SparkJdbcTypeConverter extends 
SparkTypeConverter {
     // type varchar.
     if (gravitinoType instanceof Types.VarCharType) {
       return DataTypes.StringType;
+    } else if (gravitinoType instanceof Types.TimestampType) {
+      return DataTypes.TimestampType;
     } else {
       return super.toSparkType(gravitinoType);
     }
diff --git 
a/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/jdbc/SparkJdbcTypeConverter.java
 
b/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/jdbc/TestSparkJdbcTypeConverter.java
similarity index 54%
copy from 
spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/jdbc/SparkJdbcTypeConverter.java
copy to 
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/jdbc/TestSparkJdbcTypeConverter.java
index 56e2734a7f..00fd1c7784 100644
--- 
a/spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/jdbc/SparkJdbcTypeConverter.java
+++ 
b/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/jdbc/TestSparkJdbcTypeConverter.java
@@ -19,22 +19,29 @@
 
 package org.apache.gravitino.spark.connector.jdbc;
 
-import org.apache.gravitino.rel.types.Type;
 import org.apache.gravitino.rel.types.Types;
-import org.apache.gravitino.spark.connector.SparkTypeConverter;
-import org.apache.spark.sql.types.DataType;
 import org.apache.spark.sql.types.DataTypes;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
 
-public class SparkJdbcTypeConverter extends SparkTypeConverter {
+/** Unit tests for {@link SparkJdbcTypeConverter}. */
+public class TestSparkJdbcTypeConverter {
 
-  @Override
-  public DataType toSparkType(Type gravitinoType) {
-    // if spark version lower than 3.4.4, using VarCharType will throw an 
exception: Unsupported
-    // type varchar.
-    if (gravitinoType instanceof Types.VarCharType) {
-      return DataTypes.StringType;
-    } else {
-      return super.toSparkType(gravitinoType);
-    }
+  private final SparkJdbcTypeConverter sparkJdbcTypeConverter = new 
SparkJdbcTypeConverter();
+
+  @Test
+  void testConvertTimestampTypesToSparkTimestamp() {
+    Assertions.assertEquals(
+        DataTypes.TimestampType,
+        
sparkJdbcTypeConverter.toSparkType(Types.TimestampType.withTimeZone()));
+    Assertions.assertEquals(
+        DataTypes.TimestampType,
+        
sparkJdbcTypeConverter.toSparkType(Types.TimestampType.withoutTimeZone()));
+  }
+
+  @Test
+  void testConvertVarCharTypeToSparkString() {
+    Assertions.assertEquals(
+        DataTypes.StringType, 
sparkJdbcTypeConverter.toSparkType(Types.VarCharType.of(10)));
   }
 }

Reply via email to