This is an automated email from the ASF dual-hosted git repository.

jiajunxie 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 697412624e [CALCITE-5885] SqlNode#toSqlString() does not honor 
dialect's supportsCharSet() flag on nested types
697412624e is described below

commit 697412624ef6baf0bf94554a51a5f7ed54d09ce7
Author: xiejiajun <jiajunbernou...@foxmail.com>
AuthorDate: Sun Aug 6 14:44:07 2023 +0800

    [CALCITE-5885] SqlNode#toSqlString() does not honor dialect's 
supportsCharSet() flag on nested types
---
 .../java/org/apache/calcite/sql/SqlBasicTypeNameSpec.java     |  2 +-
 .../org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git 
a/core/src/main/java/org/apache/calcite/sql/SqlBasicTypeNameSpec.java 
b/core/src/main/java/org/apache/calcite/sql/SqlBasicTypeNameSpec.java
index 2b9cf6e0e4..547bdfb22f 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlBasicTypeNameSpec.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlBasicTypeNameSpec.java
@@ -180,7 +180,7 @@ public class SqlBasicTypeNameSpec extends SqlTypeNameSpec {
       writer.keyword("WITH LOCAL TIME ZONE");
     }
 
-    if (charSetName != null) {
+    if (writer.getDialect().supportsCharSet() && charSetName != null) {
       writer.keyword("CHARACTER SET");
       writer.identifier(charSetName, 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 51044cb250..6670a44349 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
@@ -2024,6 +2024,17 @@ class RelToSqlConverterTest {
     sql(query).withHive().ok(expected);
   }
 
+  /** Test case for
+   * <a 
href="https://issues.apache.org/jira/browse/CALCITE-5885";>[CALCITE-5885]
+   * SqlNode#toSqlString() does not honor dialect's supportsCharSet() flag on 
nested types</a>.
+   */
+  @Test void testCastArrayCharset() {
+    final String query = "select cast(array['a', 'b', 'c'] as varchar array)";
+    final String expected = "SELECT CAST(ARRAY['a', 'b', 'c'] AS VARCHAR 
ARRAY)";
+    sql(query)
+        .withHive().ok(expected);
+  }
+
   /** Test case for
    * <a 
href="https://issues.apache.org/jira/browse/CALCITE-3282";>[CALCITE-3282]
    * HiveSqlDialect unparse Interger type as Int in order

Reply via email to