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