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"""

Reply via email to