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)));
}
}