Repository: nifi Updated Branches: refs/heads/master e97ae921f -> 9742dd2fa
NIFI-5471: Push table aliasing to DatabaseAdapter impls Signed-off-by: Pierre Villard <pierre.villard...@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 <mattyb...@apache.org> Authored: Mon Jul 30 23:11:40 2018 -0400 Committer: Pierre Villard <pierre.villard...@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; + } }