Repository: nifi
Updated Branches:
  refs/heads/master 98cdb50cc -> 68a49cfad


NIFI-5845: Add support for OTHER and SQLXML JDBC types to SQL/Hive processors

NIFI-5845: Incorporated review comments

This closes #3184.

Signed-off-by: Koji Kawamura <ijokaruma...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/68a49cfa
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/68a49cfa
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/68a49cfa

Branch: refs/heads/master
Commit: 68a49cfad04df2f467f9529c0fc1b6daf1781192
Parents: 98cdb50
Author: Matthew Burgess <mattyb...@apache.org>
Authored: Tue Nov 27 18:35:29 2018 -0500
Committer: Koji Kawamura <ijokaruma...@apache.org>
Committed: Thu Nov 29 09:50:21 2018 +0900

----------------------------------------------------------------------
 .../org/apache/nifi/util/hive/HiveJdbcCommon.java     | 13 +++++++++++++
 .../org/apache/nifi/util/hive/HiveJdbcCommon.java     | 14 ++++++++++++++
 .../nifi/processors/standard/util/JdbcCommon.java     |  7 +++++++
 3 files changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/68a49cfa/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/util/hive/HiveJdbcCommon.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/util/hive/HiveJdbcCommon.java
 
b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/util/hive/HiveJdbcCommon.java
index 6e28f94..9f07b18 100644
--- 
a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/util/hive/HiveJdbcCommon.java
+++ 
b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/util/hive/HiveJdbcCommon.java
@@ -40,6 +40,7 @@ import java.nio.charset.StandardCharsets;
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
+import java.sql.SQLXML;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -64,9 +65,11 @@ import static java.sql.Types.LONGVARCHAR;
 import static java.sql.Types.NCHAR;
 import static java.sql.Types.NUMERIC;
 import static java.sql.Types.NVARCHAR;
+import static java.sql.Types.OTHER;
 import static java.sql.Types.REAL;
 import static java.sql.Types.ROWID;
 import static java.sql.Types.SMALLINT;
+import static java.sql.Types.SQLXML;
 import static java.sql.Types.STRUCT;
 import static java.sql.Types.TIME;
 import static java.sql.Types.TIMESTAMP;
@@ -165,6 +168,8 @@ public class HiveJdbcCommon {
 
                     } else if (value instanceof Boolean) {
                         rec.put(i - 1, value);
+                    } else if (value instanceof java.sql.SQLXML) {
+                        rec.put(i - 1, ((java.sql.SQLXML) value).getString());
                     } else {
                         // The different types that we support are numbers 
(int, long, double, float),
                         // as well as boolean values and Strings. Since Avro 
doesn't provide
@@ -241,6 +246,8 @@ public class HiveJdbcCommon {
                 case ARRAY:
                 case STRUCT:
                 case JAVA_OBJECT:
+                case OTHER:
+                case SQLXML:
                     
builder.name(columnName).type().unionOf().nullBuilder().endNull().and().stringType().endUnion().noDefault();
                     break;
 
@@ -402,6 +409,12 @@ public class HiveJdbcCommon {
                             rowValues.add("");
                         }
                         break;
+                    case SQLXML:
+                        if (value != null) {
+                            
rowValues.add(StringEscapeUtils.escapeCsv(((java.sql.SQLXML) 
value).getString()));
+                        } else {
+                            rowValues.add("");
+                        }
                     default:
                         if (value != null) {
                             rowValues.add(value.toString());

http://git-wip-us.apache.org/repos/asf/nifi/blob/68a49cfa/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/main/java/org/apache/nifi/util/hive/HiveJdbcCommon.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/main/java/org/apache/nifi/util/hive/HiveJdbcCommon.java
 
b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/main/java/org/apache/nifi/util/hive/HiveJdbcCommon.java
index 6e28f94..09eecce 100644
--- 
a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/main/java/org/apache/nifi/util/hive/HiveJdbcCommon.java
+++ 
b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/main/java/org/apache/nifi/util/hive/HiveJdbcCommon.java
@@ -40,6 +40,7 @@ import java.nio.charset.StandardCharsets;
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
+import java.sql.SQLXML;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -64,9 +65,11 @@ import static java.sql.Types.LONGVARCHAR;
 import static java.sql.Types.NCHAR;
 import static java.sql.Types.NUMERIC;
 import static java.sql.Types.NVARCHAR;
+import static java.sql.Types.OTHER;
 import static java.sql.Types.REAL;
 import static java.sql.Types.ROWID;
 import static java.sql.Types.SMALLINT;
+import static java.sql.Types.SQLXML;
 import static java.sql.Types.STRUCT;
 import static java.sql.Types.TIME;
 import static java.sql.Types.TIMESTAMP;
@@ -165,6 +168,8 @@ public class HiveJdbcCommon {
 
                     } else if (value instanceof Boolean) {
                         rec.put(i - 1, value);
+                    } else if (value instanceof java.sql.SQLXML) {
+                        rec.put(i - 1, ((java.sql.SQLXML) value).getString());
                     } else {
                         // The different types that we support are numbers 
(int, long, double, float),
                         // as well as boolean values and Strings. Since Avro 
doesn't provide
@@ -241,6 +246,8 @@ public class HiveJdbcCommon {
                 case ARRAY:
                 case STRUCT:
                 case JAVA_OBJECT:
+                case OTHER:
+                case SQLXML:
                     
builder.name(columnName).type().unionOf().nullBuilder().endNull().and().stringType().endUnion().noDefault();
                     break;
 
@@ -402,6 +409,13 @@ public class HiveJdbcCommon {
                             rowValues.add("");
                         }
                         break;
+                    case SQLXML:
+                        if (value != null) {
+                            
rowValues.add(StringEscapeUtils.escapeCsv(((java.sql.SQLXML) 
value).getString()));
+                        } else {
+                            rowValues.add("");
+                        }
+                        break;
                     default:
                         if (value != null) {
                             rowValues.add(value.toString());

http://git-wip-us.apache.org/repos/asf/nifi/blob/68a49cfa/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JdbcCommon.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JdbcCommon.java
 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JdbcCommon.java
index 9681e2f..3de86c7 100644
--- 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JdbcCommon.java
+++ 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JdbcCommon.java
@@ -36,9 +36,11 @@ import static java.sql.Types.NCHAR;
 import static java.sql.Types.NCLOB;
 import static java.sql.Types.NUMERIC;
 import static java.sql.Types.NVARCHAR;
+import static java.sql.Types.OTHER;
 import static java.sql.Types.REAL;
 import static java.sql.Types.ROWID;
 import static java.sql.Types.SMALLINT;
+import static java.sql.Types.SQLXML;
 import static java.sql.Types.TIME;
 import static java.sql.Types.TIMESTAMP;
 import static java.sql.Types.TIMESTAMP_WITH_TIMEZONE;
@@ -65,6 +67,7 @@ import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLDataException;
 import java.sql.SQLException;
+import java.sql.SQLXML;
 import java.sql.Time;
 import java.sql.Timestamp;
 import java.sql.Types;
@@ -467,6 +470,8 @@ public class JdbcCommon {
                             rec.put(i - 1, value.toString());
                         }
 
+                    } else if (value instanceof java.sql.SQLXML) {
+                        rec.put(i - 1, ((SQLXML) value).getString());
                     } else {
                         // The different types that we support are numbers 
(int, long, double, float),
                         // as well as boolean values and Strings. Since Avro 
doesn't provide
@@ -564,6 +569,8 @@ public class JdbcCommon {
                 case VARCHAR:
                 case CLOB:
                 case NCLOB:
+                case OTHER:
+                case SQLXML:
                     
builder.name(columnName).type().unionOf().nullBuilder().endNull().and().stringType().endUnion().noDefault();
                     break;
 

Reply via email to