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 2015/04/07 22:36:15 UTC

[4/7] incubator-calcite git commit: Fix traits in MongoDB adapter, and NPE in JdbcTest

Fix traits in MongoDB adapter, and NPE in JdbcTest


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

Branch: refs/heads/r1.2
Commit: 65774b056bcd277634e0fc6f678806f15ba05e83
Parents: e48c762
Author: Julian Hyde <jh...@apache.org>
Authored: Mon Apr 6 16:11:40 2015 -0700
Committer: Julian Hyde <jh...@apache.org>
Committed: Tue Apr 7 12:23:04 2015 -0700

----------------------------------------------------------------------
 .../java/org/apache/calcite/test/JdbcTest.java   | 12 ++++++++----
 .../calcite/adapter/mongodb/MongoRules.java      |  4 ++--
 .../apache/calcite/test/MongoAdapterTest.java    | 19 ++++++++++++++-----
 3 files changed, 24 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/65774b05/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 730c672..0f0e162 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
@@ -192,13 +192,17 @@ public class JdbcTest {
       + "   ]\n"
       + "}";
 
+  private static final ConnectionSpec SCOTT =
+      Util.first(CalciteAssert.DB.scott,
+          CalciteAssert.DatabaseInstance.HSQLDB.scott);
+
   public static final String SCOTT_SCHEMA = "     {\n"
       + "       type: 'jdbc',\n"
       + "       name: 'SCOTT',\n"
-      + "       jdbcDriver: '" + CalciteAssert.DB.scott.driver + "',\n"
-      + "       jdbcUser: '" + CalciteAssert.DB.scott.username + "',\n"
-      + "       jdbcPassword: '" + CalciteAssert.DB.scott.password + "',\n"
-      + "       jdbcUrl: '" + CalciteAssert.DB.scott.url + "',\n"
+      + "       jdbcDriver: '" + SCOTT.driver + "',\n"
+      + "       jdbcUser: '" + SCOTT.username + "',\n"
+      + "       jdbcPassword: '" + SCOTT.password + "',\n"
+      + "       jdbcUrl: '" + SCOTT.url + "',\n"
       + "       jdbcCatalog: null,\n"
       + "       jdbcSchema: 'SCOTT'\n"
       + "     }\n";

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/65774b05/mongodb/src/main/java/org/apache/calcite/adapter/mongodb/MongoRules.java
----------------------------------------------------------------------
diff --git a/mongodb/src/main/java/org/apache/calcite/adapter/mongodb/MongoRules.java b/mongodb/src/main/java/org/apache/calcite/adapter/mongodb/MongoRules.java
index 0ccee35..0249cce 100644
--- a/mongodb/src/main/java/org/apache/calcite/adapter/mongodb/MongoRules.java
+++ b/mongodb/src/main/java/org/apache/calcite/adapter/mongodb/MongoRules.java
@@ -239,7 +239,7 @@ public class MongoRules {
       return new MongoFilter(
           rel.getCluster(),
           traitSet,
-          convert(filter.getInput(), traitSet),
+          convert(filter.getInput(), out),
           filter.getCondition());
     }
   }
@@ -260,7 +260,7 @@ public class MongoRules {
       final LogicalProject project = (LogicalProject) rel;
       final RelTraitSet traitSet = project.getTraitSet().replace(out);
       return new MongoProject(project.getCluster(), traitSet,
-          convert(project.getInput(), traitSet), project.getProjects(),
+          convert(project.getInput(), out), project.getProjects(),
           project.getRowType());
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/65774b05/mongodb/src/test/java/org/apache/calcite/test/MongoAdapterTest.java
----------------------------------------------------------------------
diff --git a/mongodb/src/test/java/org/apache/calcite/test/MongoAdapterTest.java b/mongodb/src/test/java/org/apache/calcite/test/MongoAdapterTest.java
index bdb9a87..bc9a9dc 100644
--- a/mongodb/src/test/java/org/apache/calcite/test/MongoAdapterTest.java
+++ b/mongodb/src/test/java/org/apache/calcite/test/MongoAdapterTest.java
@@ -530,8 +530,15 @@ public class MongoAdapterTest {
             + " min(pop) as min_pop, max(pop) as max_pop, sum(pop) as sum_pop\n"
             + "from zips group by state")
         .limit(2)
-        .returns("C=659; STATE=WV; MIN_POP=0; MAX_POP=70185; SUM_POP=1793477\n"
-            + "C=484; STATE=WA; MIN_POP=2; MAX_POP=50515; SUM_POP=4866692\n");
+        .returns("C=195; STATE=AK; MIN_POP=0; MAX_POP=32383; SUM_POP=544698\n"
+            + "C=567; STATE=AL; MIN_POP=0; MAX_POP=44165; SUM_POP=4040587\n")
+        .queryContains(
+            mongoChecker(
+                "{$project: {STATE: '$state', POP: '$pop'}}",
+                "{$group: {_id: '$STATE', C: {$sum: 1}, MIN_POP: {$min: '$POP'}, MAX_POP: {$max: '$POP'}, SUM_POP: {$sum: '$POP'}}}",
+                "{$project: {STATE: '$_id', C: '$C', MIN_POP: '$MIN_POP', MAX_POP: '$MAX_POP', SUM_POP: '$SUM_POP'}}",
+                "{$project: {C: 1, STATE: 1, MIN_POP: 1, MAX_POP: 1, SUM_POP: 1}}",
+                "{$sort: {STATE: 1}}"));
   }
 
   @Test public void testGroupComposite() {
@@ -547,9 +554,9 @@ public class MongoAdapterTest {
                 "{$project: {STATE: '$state', CITY: '$city'}}",
                 "{$group: {_id: {STATE: '$STATE', CITY: '$CITY'}, C: {$sum: 1}}}",
                 "{$project: {_id: 0, STATE: '$_id.STATE', CITY: '$_id.CITY', C: '$C'}}",
-                "{$project: {C: 1, STATE: 1, CITY: 1}}",
                 "{$sort: {C: -1}}",
-                "{$limit: 2}"));
+                "{$limit: 2}",
+                "{$project: {C: 1, STATE: 1, CITY: 1}}"));
   }
 
   @Test public void testDistinctCount() {
@@ -615,7 +622,9 @@ public class MongoAdapterTest {
             + "STATE=AL; CITY=ADAMSVILLE; ZERO=0\n")
         .queryContains(
             mongoChecker(
-                "{$project: {STATE: '$state', CITY: '$city', ZERO: {$ifNull: [null, 0]}}}"));
+                "{$project: {CITY: '$city', STATE: '$state'}}",
+                "{$sort: {STATE: 1, CITY: 1}}",
+                "{$project: {STATE: 1, CITY: 1, ZERO: {$ifNull: [null, 0]}}}"));
   }
 
   @Test public void testFilter() {