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>