From fc71bb6d90d1d8888898465ea1275341c5598145 Mon Sep 17 00:00:00 2001 From: nobigo Date: Thu, 23 May 2024 09:22:08 +0800 Subject: [PATCH] [CALCITE-6415] Invalid unparse for TIMESTAMP with HiveSqlDialect --- .../java/org/apache/calcite/sql/dialect/HiveSqlDialect.java | 4 ++++ .../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 2feacf6a6a0d..e727eb524203 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 HiveSqlDialect(Context context) { 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 6e55237bc9ac..c97caae76286 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 @@ private SqlDialect nonOrdinalDialect() { 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() {