This is an automated email from the ASF dual-hosted git repository.

jhyde pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite-avatica.git


The following commit(s) were added to refs/heads/master by this push:
     new ab45dc0  [CALCITE-4757] Allow columns of type Null in ResultSet 
(NobiGo)
ab45dc0 is described below

commit ab45dc0946cdeb2f485252eb2aa1bec4eb644956
Author: NobiGo <[email protected]>
AuthorDate: Sat Aug 28 19:19:09 2021 +0800

    [CALCITE-4757] Allow columns of type Null in ResultSet (NobiGo)
    
    Close apache/calcite-avatica#152
---
 core/src/main/java/org/apache/calcite/avatica/AvaticaSite.java   | 1 +
 .../java/org/apache/calcite/avatica/util/AbstractCursor.java     | 1 +
 .../apache/calcite/avatica/AvaticaResultSetConversionsTest.java  | 9 +++++++--
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/core/src/main/java/org/apache/calcite/avatica/AvaticaSite.java 
b/core/src/main/java/org/apache/calcite/avatica/AvaticaSite.java
index b7f46a0..e70aa87 100644
--- a/core/src/main/java/org/apache/calcite/avatica/AvaticaSite.java
+++ b/core/src/main/java/org/apache/calcite/avatica/AvaticaSite.java
@@ -343,6 +343,7 @@ public class AvaticaSite {
       }
       return anInt;
     case Types.JAVA_OBJECT:
+    case Types.NULL:
     case Types.OTHER:
       return accessor.getObject();
     case Types.LONGNVARCHAR:
diff --git 
a/core/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java 
b/core/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java
index f23a372..fa357d5 100644
--- a/core/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java
+++ b/core/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java
@@ -211,6 +211,7 @@ public abstract class AbstractCursor implements Cursor {
         throw new AssertionError("bad " + columnMetaData.type.rep);
       }
     case Types.JAVA_OBJECT:
+    case Types.NULL:
     case Types.OTHER: // e.g. map
       if (columnMetaData.type.getName().startsWith("INTERVAL_")) {
         int end = columnMetaData.type.getName().indexOf("(");
diff --git 
a/core/src/test/java/org/apache/calcite/avatica/AvaticaResultSetConversionsTest.java
 
b/core/src/test/java/org/apache/calcite/avatica/AvaticaResultSetConversionsTest.java
index 694c7f6..c49e047 100644
--- 
a/core/src/test/java/org/apache/calcite/avatica/AvaticaResultSetConversionsTest.java
+++ 
b/core/src/test/java/org/apache/calcite/avatica/AvaticaResultSetConversionsTest.java
@@ -176,7 +176,11 @@ public class AvaticaResultSetConversionsTest {
           columnMetaData("bit", 13,
               ColumnMetaData.scalar(Types.BIT, "BIT",
                   ColumnMetaData.Rep.PRIMITIVE_BOOLEAN),
-              DatabaseMetaData.columnNoNulls));
+              DatabaseMetaData.columnNoNulls),
+          columnMetaData("null", 14,
+              ColumnMetaData.scalar(Types.NULL, "NULL",
+                  ColumnMetaData.Rep.OBJECT),
+              DatabaseMetaData.columnNullable));
 
       List<Object> row = Collections.<Object>singletonList(
           new Object[] {
@@ -185,7 +189,8 @@ public class AvaticaResultSetConversionsTest {
               new Timestamp(1476130718123L),
               Arrays.asList(1, 2, 3),
               new StructImpl(Arrays.asList(42, false)),
-              false
+              false,
+              null,
           });
 
       CursorFactory factory = CursorFactory.deduce(columns, null);

Reply via email to