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

kaspersor pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/metamodel.git


The following commit(s) were added to refs/heads/master by this push:
     new eea52ad  As per #208: Fix PostgreSQL native type being null
eea52ad is described below

commit eea52adfc39c00984d1ca47613a0b52acf65e752
Author: lixiaobao <[email protected]>
AuthorDate: Tue Jan 29 13:37:29 2019 -0800

    As per #208: Fix PostgreSQL native type being null
---
 .../jdbc/dialects/PostgresqlQueryRewriter.java     | 44 ++++++++++++----------
 1 file changed, 24 insertions(+), 20 deletions(-)

diff --git 
a/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/PostgresqlQueryRewriter.java
 
b/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/PostgresqlQueryRewriter.java
index 7fe03cb..b582930 100644
--- 
a/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/PostgresqlQueryRewriter.java
+++ 
b/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/PostgresqlQueryRewriter.java
@@ -47,14 +47,16 @@ public class PostgresqlQueryRewriter extends 
LimitOffsetQueryRewriter {
 
     @Override
     public ColumnType getColumnType(int jdbcType, String nativeType, Integer 
columnSize) {
-        switch (nativeType) {
-        case "bool":
-            // override the normal behaviour of postgresql which maps "bool" to
-            // a BIT.
-            return ColumnType.BOOLEAN;
-        case "json":
-        case "jsonb":
-            return ColumnType.MAP;
+        if (nativeType != null) {
+            switch (nativeType) {
+            case "bool":
+                // override the normal behaviour of postgresql which maps 
"bool" to
+                // a BIT.
+                return ColumnType.BOOLEAN;
+            case "json":
+            case "jsonb":
+                return ColumnType.MAP;
+            }
         }
         return super.getColumnType(jdbcType, nativeType, columnSize);
     }
@@ -106,18 +108,20 @@ public class PostgresqlQueryRewriter extends 
LimitOffsetQueryRewriter {
 
     @Override
     public Object getResultSetValue(ResultSet resultSet, int columnIndex, 
Column column) throws SQLException {
-        switch (column.getNativeType()) {
-        case "json":
-        case "jsonb":
-            assert column.getType() == ColumnType.MAP;
-            final String stringValue = resultSet.getString(columnIndex);
-            if (stringValue == null) {
-                return null;
-            }
-            try {
-                return jsonObjectMapper.readValue(stringValue, Map.class);
-            } catch (Exception e) {
-                throw new IllegalArgumentException("Unable to read string as 
JSON: " + stringValue);
+        if (column.getNativeType() != null) {
+            switch (column.getNativeType()) {
+            case "json":
+            case "jsonb":
+                assert column.getType() == ColumnType.MAP;
+                final String stringValue = resultSet.getString(columnIndex);
+                if (stringValue == null) {
+                    return null;
+                }
+                try {
+                    return jsonObjectMapper.readValue(stringValue, Map.class);
+                } catch (Exception e) {
+                    throw new IllegalArgumentException("Unable to read string 
as JSON: " + stringValue);
+                }
             }
         }
         return super.getResultSetValue(resultSet, columnIndex, column);

Reply via email to