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 <[email protected]>
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() {