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 <[email protected]>
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>. */

Reply via email to