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

xiong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git


The following commit(s) were added to refs/heads/main by this push:
     new 665ea4af04 [CALCITE-6415] Invalid unparse for TIMESTAMP with 
HiveSqlDialect
665ea4af04 is described below

commit 665ea4af0452b039bac2bb66ac3f01c6bc9ca393
Author: Xiong Duan <nobigo...@gmail.com>
AuthorDate: Thu May 23 09:22:08 2024 +0800

    [CALCITE-6415] Invalid unparse for TIMESTAMP with HiveSqlDialect
---
 .../main/java/org/apache/calcite/sql/dialect/HiveSqlDialect.java    | 4 ++++
 .../java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java  | 6 +++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git 
a/core/src/main/java/org/apache/calcite/sql/dialect/HiveSqlDialect.java 
b/core/src/main/java/org/apache/calcite/sql/dialect/HiveSqlDialect.java
index 2feacf6a6a..e727eb5242 100644
--- a/core/src/main/java/org/apache/calcite/sql/dialect/HiveSqlDialect.java
+++ b/core/src/main/java/org/apache/calcite/sql/dialect/HiveSqlDialect.java
@@ -115,6 +115,10 @@ public class HiveSqlDialect extends SqlDialect {
     return true;
   }
 
+  @Override public boolean supportsTimestampPrecision() {
+    return false;
+  }
+
   @Override public boolean supportsApproxCountDistinct() {
     return true;
   }
diff --git 
a/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java 
b/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
index 6e55237bc9..c97caae762 100644
--- 
a/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
+++ 
b/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
@@ -2662,10 +2662,14 @@ class RelToSqlConverterTest {
     final String expectedStarRocks = "SELECT *\n"
         + "FROM `foodmart`.`employee`\n"
         + "WHERE (`hire_date` - INTERVAL '19800' SECOND) > CAST(`hire_date` AS 
DATETIME)";
+    final String expectedHive = "SELECT *\n"
+        + "FROM foodmart.employee\n"
+        + "WHERE (hire_date - INTERVAL '19800' SECOND(5)) > CAST(hire_date AS 
TIMESTAMP)";
     sql(query)
         .withSpark().ok(expectedSpark)
         .withPresto().ok(expectedPresto)
-        .withStarRocks().ok(expectedStarRocks);
+        .withStarRocks().ok(expectedStarRocks)
+        .withHive().ok(expectedHive);
   }
 
   @Test void testExasolCastToTimestamp() {

Reply via email to