This is an automated email from the ASF dual-hosted git repository.
JingsongLi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new 58bc214bba [spark] Fix analyze failure for timestamp ntz columns
(#9485)
58bc214bba is described below
commit 58bc214bbaff5f3d235b3768089ea0c833064ec7
Author: Arnav Balyan <[email protected]>
AuthorDate: Wed Sep 2 13:49:42 2026 +0530
[spark] Fix analyze failure for timestamp ntz columns (#9485)
---
.../commands/PaimonAnalyzeTableColumnCommand.scala | 4 +++-
.../paimon/spark/sql/AnalyzeTableTestBase.scala | 25 ++++++++++++++++++++++
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git
a/paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/commands/PaimonAnalyzeTableColumnCommand.scala
b/paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/commands/PaimonAnalyzeTableColumnCommand.scala
index 6f73c31157..27f98e71b6 100644
---
a/paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/commands/PaimonAnalyzeTableColumnCommand.scala
+++
b/paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/commands/PaimonAnalyzeTableColumnCommand.scala
@@ -31,7 +31,7 @@ import org.apache.spark.sql.catalyst.plans.logical.ColumnStat
import org.apache.spark.sql.catalyst.util.DateTimeUtils
import org.apache.spark.sql.connector.catalog.{Identifier, TableCatalog}
import org.apache.spark.sql.execution.datasources.v2.DataSourceV2Relation
-import org.apache.spark.sql.types.{DataType, Decimal, DecimalType,
TimestampType}
+import org.apache.spark.sql.types.{DataType, Decimal, DecimalType,
TimestampNTZType, TimestampType}
import java.util
@@ -162,6 +162,8 @@ case class PaimonAnalyzeTableColumnCommand(
case _: TimestampType =>
val l = o.asInstanceOf[Long]
org.apache.paimon.data.Timestamp.fromSQLTimestamp(DateTimeUtils.toJavaTimestamp(l))
+ case _: TimestampNTZType =>
+ org.apache.paimon.data.Timestamp.fromMicros(o.asInstanceOf[Long])
case _ => o
}
}
diff --git
a/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/sql/AnalyzeTableTestBase.scala
b/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/sql/AnalyzeTableTestBase.scala
index 34c38062f0..5e959ddfae 100644
---
a/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/sql/AnalyzeTableTestBase.scala
+++
b/paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/sql/AnalyzeTableTestBase.scala
@@ -326,6 +326,31 @@ abstract class AnalyzeTableTestBase extends
PaimonSparkTestBase {
colStats.get("varchar_col"))
}
+ test("Paimon analyze: timestamp ntz column") {
+ assume(gteqSpark3_4)
+
+ spark.sql("CREATE TABLE T (ts TIMESTAMP_NTZ) USING PAIMON")
+ spark.sql(s"""INSERT INTO T VALUES
+ |(TIMESTAMP_NTZ '2020-01-01 00:00:00.123456'),
+ |(TIMESTAMP_NTZ '2020-01-02 00:00:00.654321')
+ |""".stripMargin)
+
+ spark.sql("ANALYZE TABLE T COMPUTE STATISTICS FOR COLUMNS ts")
+
+ val colStats = loadTable("T").statistics().get().colStats()
+ Assertions.assertEquals(
+ ColStats.newColStats(
+ 0,
+ 2,
+ DateTimeUtils.parseTimestampData("2020-01-01 00:00:00.123456", 6),
+ DateTimeUtils.parseTimestampData("2020-01-02 00:00:00.654321", 6),
+ 0,
+ 8,
+ 8),
+ colStats.get("ts")
+ )
+ }
+
test("Paimon analyze: analyze unsupported cols") {
spark.sql(
s"""