You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by pv...@apache.org on 2018/07/31 08:14:37 UTC

nifi git commit: NIFI-5471: Push table aliasing to DatabaseAdapter impls

Repository: nifi
Updated Branches:
  refs/heads/master e97ae921f -> 9742dd2fa


NIFI-5471: Push table aliasing to DatabaseAdapter impls

Signed-off-by: Pierre Villard <pi...@gmail.com>

This closes #2926.


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

Branch: refs/heads/master
Commit: 9742dd2fac42d4afb8b1e009535ed50c02373493
Parents: e97ae92
Author: Matthew Burgess <ma...@apache.org>
Authored: Mon Jul 30 23:11:40 2018 -0400
Committer: Pierre Villard <pi...@gmail.com>
Committed: Tue Jul 31 10:14:27 2018 +0200

----------------------------------------------------------------------
 .../processors/standard/AbstractDatabaseFetchProcessor.java    | 6 +++---
 .../apache/nifi/processors/standard/QueryDatabaseTable.java    | 2 +-
 .../apache/nifi/processors/standard/db/DatabaseAdapter.java    | 4 ++++
 .../processors/standard/db/impl/Oracle12DatabaseAdapter.java   | 5 +++++
 .../processors/standard/db/impl/OracleDatabaseAdapter.java     | 5 +++++
 5 files changed, 18 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/9742dd2f/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java
index e13f9de..3da8a73 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java
@@ -260,7 +260,7 @@ public abstract class AbstractDatabaseFetchProcessor extends AbstractSessionFact
                 if (StringUtils.isEmpty(sqlQuery)) {
                     query = dbAdapter.getSelectStatement(tableName, maxValueColumnNames, "1 = 0", null, null, null);
                 } else {
-                    StringBuilder sbQuery = getWrappedQuery(sqlQuery, tableName);
+                    StringBuilder sbQuery = getWrappedQuery(dbAdapter, sqlQuery, tableName);
                     sbQuery.append(" WHERE 1=0");
 
                     query = sbQuery.toString();
@@ -312,8 +312,8 @@ public abstract class AbstractDatabaseFetchProcessor extends AbstractSessionFact
         }
     }
 
-    protected static StringBuilder getWrappedQuery(String sqlQuery, String tableName){
-       return new StringBuilder("SELECT * FROM (" + sqlQuery + ") AS " + tableName);
+    protected static StringBuilder getWrappedQuery(DatabaseAdapter dbAdaper, String sqlQuery, String tableName) {
+       return new StringBuilder("SELECT * FROM (" + sqlQuery + ") " + dbAdaper.getTableAliasClause(tableName));
     }
 
     protected static String getMaxValueFromRow(ResultSet resultSet,

http://git-wip-us.apache.org/repos/asf/nifi/blob/9742dd2f/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/QueryDatabaseTable.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/QueryDatabaseTable.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/QueryDatabaseTable.java
index f0efbb0..1923e2c 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/QueryDatabaseTable.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/QueryDatabaseTable.java
@@ -461,7 +461,7 @@ public class QueryDatabaseTable extends AbstractDatabaseFetchProcessor {
         if (StringUtils.isEmpty(sqlQuery)) {
             query = new StringBuilder(dbAdapter.getSelectStatement(tableName, columnNames, null, null, null, null));
         } else {
-            query = getWrappedQuery(sqlQuery, tableName);
+            query = getWrappedQuery(dbAdapter, sqlQuery, tableName);
         }
 
         List<String> whereClauses = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/nifi/blob/9742dd2f/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/DatabaseAdapter.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/DatabaseAdapter.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/DatabaseAdapter.java
index 211d4c8..e1251c4 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/DatabaseAdapter.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/DatabaseAdapter.java
@@ -67,4 +67,8 @@ public interface DatabaseAdapter {
     default String unwrapIdentifier(String identifier) {
         return identifier == null ? null : identifier.replaceAll("\"", "");
     }
+
+    default String getTableAliasClause(String tableName) {
+        return "AS " + tableName;
+    }
 }

http://git-wip-us.apache.org/repos/asf/nifi/blob/9742dd2f/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/Oracle12DatabaseAdapter.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/Oracle12DatabaseAdapter.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/Oracle12DatabaseAdapter.java
index c128ed1..18f3ceb 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/Oracle12DatabaseAdapter.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/Oracle12DatabaseAdapter.java
@@ -88,4 +88,9 @@ public class Oracle12DatabaseAdapter implements DatabaseAdapter {
 
         return query.toString();
     }
+
+    @Override
+    public String getTableAliasClause(String tableName) {
+        return tableName;
+    }
 }

http://git-wip-us.apache.org/repos/asf/nifi/blob/9742dd2f/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/OracleDatabaseAdapter.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/OracleDatabaseAdapter.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/OracleDatabaseAdapter.java
index 5a1f099..bfaac8b 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/OracleDatabaseAdapter.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/OracleDatabaseAdapter.java
@@ -102,4 +102,9 @@ public class OracleDatabaseAdapter implements DatabaseAdapter {
 
         return query.toString();
     }
+
+    @Override
+    public String getTableAliasClause(String tableName) {
+        return tableName;
+    }
 }