Repository: nifi Updated Branches: refs/heads/master 72662f0b2 -> 8a12307d1
NIFI-5855: Remove unnecessary ORDER BY clause in GenerateTableFetch when Partition Size is zero Signed-off-by: Pierre Villard <[email protected]> This closes #3191. Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/8a12307d Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/8a12307d Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/8a12307d Branch: refs/heads/master Commit: 8a12307d1a5269954cc64b6bab73590b15a67444 Parents: 72662f0 Author: Matthew Burgess <[email protected]> Authored: Thu Nov 29 17:46:24 2018 -0500 Committer: Pierre Villard <[email protected]> Committed: Fri Nov 30 10:54:23 2018 +0100 ---------------------------------------------------------------------- .../apache/nifi/processors/standard/GenerateTableFetch.java | 8 +++++--- .../nifi/processors/standard/TestGenerateTableFetch.java | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/8a12307d/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateTableFetch.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateTableFetch.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateTableFetch.java index b4ba9fe..4d6ccc8 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateTableFetch.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateTableFetch.java @@ -315,8 +315,8 @@ public class GenerateTableFetch extends AbstractDatabaseFetchProcessor { String columnsClause = null; List<String> maxValueSelectColumns = new ArrayList<>(numMaxValueColumns + 1); - // replace unnecessary row count with -1 stub value when paging is used - if (useColumnValsForPaging) { + // replace unnecessary row count with -1 stub value when column values for paging is used, or when partition size is zero. + if (useColumnValsForPaging || partitionSize == 0) { maxValueSelectColumns.add("-1"); } else { maxValueSelectColumns.add("COUNT(*)"); @@ -496,8 +496,10 @@ public class GenerateTableFetch extends AbstractDatabaseFetchProcessor { //Update WHERE list to include new right hand boundaries whereClause = maxValueClauses.isEmpty() ? "1=1" : StringUtils.join(maxValueClauses, " AND "); Long offset = partitionSize == 0 ? null : i * partitionSize + (useColumnValsForPaging ? minValueForPartitioning : 0); + // Don't use an ORDER BY clause if there's only one partition + final String orderByClause = partitionSize == 0 ? null : maxColumnNames; - final String query = dbAdapter.getSelectStatement(tableName, columnNames, whereClause, maxColumnNames, limit, offset, columnForPartitioning); + final String query = dbAdapter.getSelectStatement(tableName, columnNames, whereClause, orderByClause, limit, offset, columnForPartitioning); FlowFile sqlFlowFile = (fileToProcess == null) ? session.create() : session.create(fileToProcess); sqlFlowFile = session.write(sqlFlowFile, out -> out.write(query.getBytes())); Map<String,String> attributesToAdd = new HashMap<>(); http://git-wip-us.apache.org/repos/asf/nifi/blob/8a12307d/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGenerateTableFetch.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGenerateTableFetch.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGenerateTableFetch.java index 8ccca2c..25a5918 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGenerateTableFetch.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGenerateTableFetch.java @@ -541,7 +541,7 @@ public class TestGenerateTableFetch { runner.run(); runner.assertAllFlowFilesTransferred(GenerateTableFetch.REL_SUCCESS, 1); MockFlowFile flowFile = runner.getFlowFilesForRelationship(GenerateTableFetch.REL_SUCCESS).get(0); - flowFile.assertContentEquals("SELECT * FROM TEST_QUERY_DB_TABLE WHERE ID <= 2 ORDER BY ID"); + flowFile.assertContentEquals("SELECT * FROM TEST_QUERY_DB_TABLE WHERE ID <= 2"); flowFile.assertAttributeExists("generatetablefetch.limit"); flowFile.assertAttributeEquals("generatetablefetch.limit", null); runner.clearTransferState();
