You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by pa...@apache.org on 2015/02/25 02:07:45 UTC
drill git commit: DRILL-2283: Fixed Java VARCHAR(1) in INFO._SCHEMA
that caused bad comparisons.
Repository: drill
Updated Branches:
refs/heads/master 4c7519aa0 -> 01667a26d
DRILL-2283: Fixed Java VARCHAR(1) in INFO._SCHEMA that caused bad comparisons.
Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/01667a26
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/01667a26
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/01667a26
Branch: refs/heads/master
Commit: 01667a26da110ec53cd33089c686cb16f19a8bb6
Parents: 4c7519a
Author: dbarclay <db...@maprtech.com>
Authored: Fri Feb 20 18:57:36 2015 -0800
Committer: Parth Chandra <pc...@maprtech.com>
Committed: Tue Feb 24 17:06:59 2015 -0800
----------------------------------------------------------------------
.../exec/store/ischema/InfoSchemaTable.java | 11 +++-
.../Drill2283InfoSchemaVarchar1BugTest.java | 59 ++++++++++++++++++++
2 files changed, 67 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/drill/blob/01667a26/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaTable.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaTable.java
index c343c5c..66ba2e3 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaTable.java
@@ -57,9 +57,14 @@ public abstract class InfoSchemaTable implements InfoSchemaConstants{
static public RelDataType getRelDataType(RelDataTypeFactory typeFactory, MajorType type) {
switch (type.getMinorType()) {
- case INT: return typeFactory.createSqlType(SqlTypeName.INTEGER);
- case VARCHAR: return typeFactory.createSqlType(SqlTypeName.VARCHAR);
- default: throw new UnsupportedOperationException("Only INT and VARCHAR types are supported in INFORMATION_SCHEMA");
+ case INT:
+ return typeFactory.createSqlType(SqlTypeName.INTEGER);
+ case VARCHAR:
+ // Note: Remember to not default to "VARCHAR(1)":
+ return typeFactory.createSqlType(SqlTypeName.VARCHAR, Integer.MAX_VALUE);
+ default:
+ throw new UnsupportedOperationException(
+ "Only INT and VARCHAR types are supported in INFORMATION_SCHEMA");
}
}
http://git-wip-us.apache.org/repos/asf/drill/blob/01667a26/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/Drill2283InfoSchemaVarchar1BugTest.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/Drill2283InfoSchemaVarchar1BugTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/Drill2283InfoSchemaVarchar1BugTest.java
new file mode 100644
index 0000000..5f5d2a3
--- /dev/null
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/Drill2283InfoSchemaVarchar1BugTest.java
@@ -0,0 +1,59 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.drill.exec.store.ischema;
+
+import org.apache.drill.BaseTestQuery;
+import org.junit.Test;
+
+public class Drill2283InfoSchemaVarchar1BugTest extends BaseTestQuery {
+
+ @Test
+ public void testInfoSchemaStringsNotOfLength1() throws Exception {
+ testBuilder()
+ .sqlQuery("SELECT CATALOG_NAME, "
+ + " CATALOG_NAME = 'DRILL' AS happened_to_be_right_1, "
+ + " CATALOG_NAME = 'DRIL' AS was_wrong_1, "
+ + " CATALOG_NAME = 'DRI' AS was_wrong_2, "
+ + " CATALOG_NAME = 'DR' AS was_wrong_3, "
+ + " CATALOG_NAME = 'DX' AS happened_to_be_right_2, "
+ + " CATALOG_NAME = 'D' AS happened_to_be_right_3, "
+ + " CATALOG_NAME = 'X' AS happened_to_be_right_4"
+ + " "
+ + " FROM INFORMATION_SCHEMA.CATALOGS "
+ + " WHERE CATALOG_NAME LIKE '%DRILL%'"
+ + " LIMIT 1")
+ .ordered()
+ .baselineColumns("CATALOG_NAME",
+ "happened_to_be_right_1",
+ "was_wrong_1",
+ "was_wrong_2",
+ "was_wrong_3",
+ "happened_to_be_right_2",
+ "happened_to_be_right_3",
+ "happened_to_be_right_4")
+ .baselineValues("DRILL",
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false)
+ .build().run();
+ }
+}