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 2017/01/29 18:09:40 UTC
calcite git commit: [CALCITE-1572] JdbcSchema throws exception when
detecting nullable columns (Wu Xiang)
Repository: calcite
Updated Branches:
refs/heads/master beb465334 -> 2d7e1f1a6
[CALCITE-1572] JdbcSchema throws exception when detecting nullable columns (Wu Xiang)
Close apache/calcite#357
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/2d7e1f1a
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/2d7e1f1a
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/2d7e1f1a
Branch: refs/heads/master
Commit: 2d7e1f1a6649c085c88f8d81410363800a5b91ae
Parents: beb4653
Author: Wu Xiang <wu...@hulu.com>
Authored: Fri Jan 20 14:26:41 2017 +0000
Committer: Julian Hyde <jh...@apache.org>
Committed: Sat Jan 28 22:22:24 2017 -0800
----------------------------------------------------------------------
.../org/apache/calcite/adapter/jdbc/JdbcSchema.java | 2 +-
.../java/org/apache/calcite/test/JdbcAdapterTest.java | 13 +++++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/calcite/blob/2d7e1f1a/core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcSchema.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcSchema.java b/core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcSchema.java
index 41d05d2..5ac3a38 100644
--- a/core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcSchema.java
+++ b/core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcSchema.java
@@ -283,7 +283,7 @@ public class JdbcSchema implements Schema {
}
RelDataType sqlType =
sqlType(typeFactory, dataType, precision, scale, typeString);
- boolean nullable = resultSet.getBoolean(11);
+ boolean nullable = resultSet.getInt(11) != DatabaseMetaData.columnNoNulls;
fieldInfo.add(columnName, sqlType).nullable(nullable);
}
resultSet.close();
http://git-wip-us.apache.org/repos/asf/calcite/blob/2d7e1f1a/core/src/test/java/org/apache/calcite/test/JdbcAdapterTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/JdbcAdapterTest.java b/core/src/test/java/org/apache/calcite/test/JdbcAdapterTest.java
index 02db883..336c361 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcAdapterTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcAdapterTest.java
@@ -827,6 +827,19 @@ public class JdbcAdapterTest {
});
}
+ /** Test case for
+ * <a href="https://issues.apache.org/jira/browse/CALCITE-1572">[CALCITE-1572]
+ * JdbcSchema throws exception when detecting nullable columns</a>. */
+ @Test public void testColumnNullability() throws Exception {
+ final String sql = "select \"employee_id\", \"position_id\"\n"
+ + "from \"foodmart\".\"employee\" limit 10";
+ CalciteAssert.model(JdbcTest.FOODMART_MODEL)
+ .query(sql)
+ .runs()
+ .returnsCount(10)
+ .typeIs("[employee_id INTEGER NOT NULL, position_id INTEGER]");
+ }
+
/** Acquires a lock, and releases it when closed. */
static class LockWrapper implements AutoCloseable {
private final Lock lock;