You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by ca...@apache.org on 2025/01/26 10:13:13 UTC
(calcite) branch main updated: [CALCITE-6796] Convert Type from BINARY to VARBINARY in PrestoDialect
This is an automated email from the ASF dual-hosted git repository.
cancai 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 c79d6d4975 [CALCITE-6796] Convert Type from BINARY to VARBINARY in PrestoDialect
c79d6d4975 is described below
commit c79d6d4975f543207594bb8c70acd913afdc3f9c
Author: ClownXC <59...@qq.com>
AuthorDate: Fri Jan 24 16:00:11 2025 +0800
[CALCITE-6796] Convert Type from BINARY to VARBINARY in PrestoDialect
---
.../java/org/apache/calcite/sql/dialect/PrestoSqlDialect.java | 4 ++++
.../org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java | 11 +++++++++++
2 files changed, 15 insertions(+)
diff --git a/core/src/main/java/org/apache/calcite/sql/dialect/PrestoSqlDialect.java b/core/src/main/java/org/apache/calcite/sql/dialect/PrestoSqlDialect.java
index 6dfeec8029..f739e7e891 100644
--- a/core/src/main/java/org/apache/calcite/sql/dialect/PrestoSqlDialect.java
+++ b/core/src/main/java/org/apache/calcite/sql/dialect/PrestoSqlDialect.java
@@ -153,6 +153,10 @@ private static void unparseUsingLimit(SqlWriter writer, @Nullable SqlNode offset
case FLOAT:
return new SqlDataTypeSpec(
new SqlBasicTypeNameSpec(SqlTypeName.DOUBLE, SqlParserPos.ZERO), SqlParserPos.ZERO);
+ // https://prestodb.io/docs/current/language/types.html#varbinary
+ case BINARY:
+ return new SqlDataTypeSpec(
+ new SqlBasicTypeNameSpec(SqlTypeName.VARBINARY, SqlParserPos.ZERO), SqlParserPos.ZERO);
default:
return super.getCastSpec(type);
}
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 2ce249b4d4..6004fec86a 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
@@ -9146,6 +9146,17 @@ private void checkLiteral2(String expression, String expected) {
sql(query).withOracle().ok(oracle);
}
+ /** Test case for
+ * <a href="https://issues.apache.org/jira/browse/CALCITE-6796">[CALCITE-6796]
+ * Convert Type from BINARY to VARBINARY in PrestoDialect</a>. */
+ @Test void testPrestoBinaryCast() {
+ String query = "SELECT cast(cast(\"employee_id\" as varchar) as binary)"
+ + "from \"foodmart\".\"reserve_employee\" ";
+ String expected = "SELECT CAST(CAST(\"employee_id\" AS VARCHAR) AS VARBINARY)"
+ + "\nFROM \"foodmart\".\"reserve_employee\"";
+ sql(query).withPresto().ok(expected);
+ }
+
/** Test case for
* <a href="https://issues.apache.org/jira/browse/CALCITE-6771">[CALCITE-6771]
* Convert Type from FLOAT to DOUBLE in PrestoDialect</a>. */