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