You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2018/12/02 00:54:55 UTC

[03/15] calcite git commit: [CALCITE-2715] In JDBC adapter, do not generate character set in data types for MS SQL Server (Piotr Bojko)

[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 <pt...@gmail.com>
Authored: Wed Nov 28 12:12:54 2018 +0100
Committer: Julian Hyde <jh...@apache.org>
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.
    *