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() {