[CALCITE-2715] In JDBC adapter, do not generate character set in data types for MS SQL Server (Piotr Bojko)
MS SQL Server does not support character set as part of data type. Close apache/calcite#945 Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/ce47088f Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/ce47088f Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/ce47088f Branch: refs/heads/master Commit: ce47088f118b796908b1de4b1440d21d08d2b6b7 Parents: ed3da62 Author: Piotr Bojko <[email protected]> Authored: Wed Nov 28 12:12:54 2018 +0100 Committer: Julian Hyde <[email protected]> Committed: Fri Nov 30 17:57:00 2018 -0800 ---------------------------------------------------------------------- .../org/apache/calcite/sql/dialect/MssqlSqlDialect.java | 4 ++++ .../calcite/rel/rel2sql/RelToSqlConverterTest.java | 11 +++++++++++ 2 files changed, 15 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/ce47088f/core/src/main/java/org/apache/calcite/sql/dialect/MssqlSqlDialect.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/sql/dialect/MssqlSqlDialect.java b/core/src/main/java/org/apache/calcite/sql/dialect/MssqlSqlDialect.java index 6261481..644a39b 100644 --- a/core/src/main/java/org/apache/calcite/sql/dialect/MssqlSqlDialect.java +++ b/core/src/main/java/org/apache/calcite/sql/dialect/MssqlSqlDialect.java @@ -81,6 +81,10 @@ public class MssqlSqlDialect extends SqlDialect { } } + @Override public boolean supportsCharSet() { + return false; + } + /** * Unparses datetime floor for Microsoft SQL Server. * There is no TRUNC function, so simulate this using calls to CONVERT. http://git-wip-us.apache.org/repos/asf/calcite/blob/ce47088f/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java ---------------------------------------------------------------------- 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 189c33f..93676c1 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 @@ -495,6 +495,17 @@ public class RelToSqlConverterTest { sql(query).withHive().ok(expected); } + /** Test case for + * <a href="https://issues.apache.org/jira/browse/CALCITE-2715">[CALCITE-2715] + * MS SQL Server does not support character set as part of data type</a>. */ + @Test public void testMssqlCharacterSet() { + String query = "select \"hire_date\", cast(\"hire_date\" as varchar(10))\n" + + "from \"foodmart\".\"reserve_employee\""; + final String expected = "SELECT [hire_date], CAST([hire_date] AS VARCHAR(10))\n" + + "FROM [foodmart].[reserve_employee]"; + sql(query).withMssql().ok(expected); + } + /** * Tests that IN can be un-parsed. *
