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 2016/03/17 21:10:11 UTC

[4/8] calcite git commit: Add test case for [CALCITE-1153]

Add test case for [CALCITE-1153]


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/22aa8a80
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/22aa8a80
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/22aa8a80

Branch: refs/heads/master
Commit: 22aa8a8072bd98d4d81d17aad7db5a972e03478e
Parents: 9dd4993
Author: Julian Hyde <jh...@apache.org>
Authored: Mon Mar 14 14:14:56 2016 -0700
Committer: Julian Hyde <jh...@apache.org>
Committed: Thu Mar 17 12:32:00 2016 -0700

----------------------------------------------------------------------
 .../java/org/apache/calcite/test/JdbcTest.java  | 24 ++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/22aa8a80/core/src/test/java/org/apache/calcite/test/JdbcTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/JdbcTest.java b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
index b57feee..cfebfb2 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
@@ -4387,16 +4387,36 @@ public class JdbcTest {
     CalciteAssert.model(FOODMART_MODEL)
         .query("select count(*) as c from \"customer\" "
             + "where \"lname\" = 'this string is longer than 30 characters'")
-        .enable(CalciteAssert.DB != CalciteAssert.DatabaseInstance.ORACLE)
         .returns("C=0\n");
 
     CalciteAssert.model(FOODMART_MODEL)
         .query("select count(*) as c from \"customer\" "
             + "where cast(\"customer_id\" as char(20)) = 'this string is longer than 30 characters'")
-        .enable(CalciteAssert.DB != CalciteAssert.DatabaseInstance.ORACLE)
         .returns("C=0\n");
   }
 
+  /** Test case for
+   * <a href="https://issues.apache.org/jira/browse/CALCITE-1153">[CALCITE-1153]
+   * Invalid CAST when push JOIN down to Oracle</a>. */
+  @Test public void testJoinMismatchedVarchar() {
+    final String sql = "select count(*) as c\n"
+        + "from \"customer\" as c\n"
+        + "join \"product\" as p on c.\"lname\" = p.\"brand_name\"";
+    CalciteAssert.model(FOODMART_MODEL)
+        .query(sql)
+        .returns("C=607\n");
+  }
+
+  @Test public void testIntersectMismatchedVarchar() {
+    final String sql = "select count(*) as c from (\n"
+        + "  select \"lname\" from \"customer\" as c\n"
+        + "  intersect\n"
+        + "  select \"brand_name\" from \"product\" as p)";
+    CalciteAssert.model(FOODMART_MODEL)
+        .query(sql)
+        .returns("C=12\n");
+  }
+
   /** Tests the NOT IN operator. Problems arose in code-generation because
    * the column allows nulls. */
   @Test public void testNotIn() {