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/12/03 19:23:13 UTC

[2/2] calcite git commit: [CALCITE-1001] Upgrade to quidem-0.7

[CALCITE-1001] Upgrade to quidem-0.7


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

Branch: refs/heads/master
Commit: 14419d8c360da8bdfa9d29f8c1d2fff357106db0
Parents: 6c35f3b
Author: Julian Hyde <jh...@apache.org>
Authored: Wed Dec 2 18:34:45 2015 -0800
Committer: Julian Hyde <jh...@apache.org>
Committed: Thu Dec 3 01:45:01 2015 -0800

----------------------------------------------------------------------
 .../calcite/prepare/CalcitePrepareImpl.java     | 17 +++++++------
 .../java/org/apache/calcite/test/JdbcTest.java  | 25 ++++++++++++++++----
 core/src/test/resources/sql/agg.oq              |  6 +++++
 core/src/test/resources/sql/sort.oq             | 15 +-----------
 pom.xml                                         |  2 +-
 5 files changed, 39 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/14419d8c/core/src/main/java/org/apache/calcite/prepare/CalcitePrepareImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/prepare/CalcitePrepareImpl.java b/core/src/main/java/org/apache/calcite/prepare/CalcitePrepareImpl.java
index 052be41..6d7fb31 100644
--- a/core/src/main/java/org/apache/calcite/prepare/CalcitePrepareImpl.java
+++ b/core/src/main/java/org/apache/calcite/prepare/CalcitePrepareImpl.java
@@ -96,7 +96,6 @@ import org.apache.calcite.rel.rules.ValuesReduceRule;
 import org.apache.calcite.rel.stream.StreamRules;
 import org.apache.calcite.rel.type.RelDataType;
 import org.apache.calcite.rel.type.RelDataTypeFactory;
-import org.apache.calcite.rel.type.RelDataTypeFactoryImpl;
 import org.apache.calcite.rel.type.RelDataTypeField;
 import org.apache.calcite.rex.RexBuilder;
 import org.apache.calcite.rex.RexInputRef;
@@ -901,20 +900,24 @@ public class CalcitePrepareImpl implements CalcitePrepare {
         : type.getPrecision();
   }
 
+  /** Returns the type name in string form. Does not include precision, scale
+   * or whether nulls are allowed. Example: "DECIMAL" not "DECIMAL(7, 2)";
+   * "INTEGER" not "JavaType(int)". */
   private static String getTypeName(RelDataType type) {
-    SqlTypeName sqlTypeName = type.getSqlTypeName();
-    if (type instanceof RelDataTypeFactoryImpl.JavaType) {
-      // We'd rather print "INTEGER" than "JavaType(int)".
-      return sqlTypeName.getName();
-    }
+    final SqlTypeName sqlTypeName = type.getSqlTypeName();
     switch (sqlTypeName) {
     case INTERVAL_YEAR_MONTH:
     case INTERVAL_DAY_TIME:
       // e.g. "INTERVAL_MONTH" or "INTERVAL_YEAR_MONTH"
       return "INTERVAL_"
           + type.getIntervalQualifier().toString().replace(' ', '_');
+    case ARRAY:
+    case MULTISET:
+    case MAP:
+    case ROW:
+      return type.toString(); // e.g. "INTEGER ARRAY"
     default:
-      return type.toString(); // e.g. "VARCHAR(10)", "INTEGER ARRAY"
+      return sqlTypeName.getName(); // e.g. "DECIMAL"
     }
   }
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/14419d8c/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 3709eba..5cf7d16 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
@@ -4641,10 +4641,26 @@ public class JdbcTest {
             return null;
           }
         };
-    final Quidem quidem = new Quidem(bufferedReader, writer, env);
-    quidem.execute(
-        new Quidem.ConnectionFactory() {
+    final Quidem.NewConnectionFactory connectionFactory =
+        new Quidem.NewConnectionFactory() {
           public Connection connect(String name) throws Exception {
+            return connect(name, false);
+          }
+
+          public Connection connect(String name, boolean reference)
+              throws Exception {
+            if (reference) {
+              if (name.equals("foodmart")) {
+                final ConnectionSpec db =
+                    CalciteAssert.DatabaseInstance.HSQLDB.foodmart;
+                final Connection connection = DriverManager.getConnection(db.url,
+                    db.username,
+                    db.password);
+                connection.setSchema("foodmart");
+                return connection;
+              }
+              return null;
+            }
             if (name.equals("hr")) {
               return CalciteAssert.hr()
                   .connect();
@@ -4700,7 +4716,8 @@ public class JdbcTest {
             }
             throw new RuntimeException("unknown connection '" + name + "'");
           }
-        });
+        };
+    new Quidem(bufferedReader, writer, env, connectionFactory).execute();
     final String diff = DiffTestCase.diff(inFile, outFile);
     if (!diff.isEmpty()) {
       fail("Files differ: " + outFile + " " + inFile + "\n" + diff);

http://git-wip-us.apache.org/repos/asf/calcite/blob/14419d8c/core/src/test/resources/sql/agg.oq
----------------------------------------------------------------------
diff --git a/core/src/test/resources/sql/agg.oq b/core/src/test/resources/sql/agg.oq
index e92f08d..2dea732 100644
--- a/core/src/test/resources/sql/agg.oq
+++ b/core/src/test/resources/sql/agg.oq
@@ -150,6 +150,9 @@ select count(mod(deptno, 20), gender) as c from emps;
 select x = 1 as x1, count(*) as c
 from (values 0, 1, 2, cast(null as integer)) as t(x)
 group by x = 1;
+X1 BOOLEAN(1)
+C BIGINT(19) NOT NULL
+!type
 +-------+---+
 | X1    | C |
 +-------+---+
@@ -664,6 +667,9 @@ select deptno,
   sum(sal) filter (where deptno = 10) sal_10
 from "scott".emp
 group by deptno;
+DEPTNO TINYINT(3)
+SAL_10 DECIMAL(7, 2)
+!type
 +--------+---------+
 | DEPTNO | SAL_10  |
 +--------+---------+

http://git-wip-us.apache.org/repos/asf/calcite/blob/14419d8c/core/src/test/resources/sql/sort.oq
----------------------------------------------------------------------
diff --git a/core/src/test/resources/sql/sort.oq b/core/src/test/resources/sql/sort.oq
index 0253072..be30ac4 100644
--- a/core/src/test/resources/sql/sort.oq
+++ b/core/src/test/resources/sql/sort.oq
@@ -20,20 +20,7 @@
 
 # The ArrayTable "days" is sorted by "day", so plan must not contain sort
 select * from "days" order by "day";
-+-----+-----------+
-| day | week_day  |
-+-----+-----------+
-|   1 | Sunday    |
-|   2 | Monday    |
-|   3 | Tuesday   |
-|   4 | Wednesday |
-|   5 | Thursday  |
-|   6 | Friday    |
-|   7 | Saturday  |
-+-----+-----------+
-(7 rows)
-
-!ok
+!verify
 EnumerableTableScan(table=[[foodmart2, days]])
 !plan
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/14419d8c/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index a3a2323..7cc273c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -205,7 +205,7 @@ limitations under the License.
       <dependency>
         <groupId>net.hydromatic</groupId>
         <artifactId>quidem</artifactId>
-        <version>0.6</version>
+        <version>0.7</version>
       </dependency>
       <dependency>
         <groupId>net.hydromatic</groupId>