[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.
    *

Reply via email to