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