[ https://issues.apache.org/jira/browse/NIFI-7711?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Lorych updated NIFI-7711: -------------------------------- Summary: GenerateTableFetch generates fetch on empty table (was: GenerateTableFetch where clause with 1=1 leads t ) > GenerateTableFetch generates fetch on empty table > ------------------------------------------------- > > Key: NIFI-7711 > URL: https://issues.apache.org/jira/browse/NIFI-7711 > Project: Apache NiFi > Issue Type: Bug > Components: Extensions > Affects Versions: 1.11.4 > Reporter: Daniel Lorych > Priority: Major > > h6. Description > GenerateTableFetch generates "select all" where clause (1=1) for an empty > table, which leads to inconsistent state (and duplicate flowfiles). > Generated SQL statement (1=1) can return values, which were created after > collecting max values during statement generation. On a subsequent run, with > existing data, the statement will contain a where clause with maxValue > limited. > h6. Environment: > * Table is empty > * 'Maximum-value Columns' property is set to PK > * 'Partition Size' property set to 0 > > h6. Expected behaviour: > Fetch statement should not be generated. > h6. Root Cause: > `numberOfFetches` is calculated incorrectly for `partitionSize == 0`. > Calculation should take into account returned `rowCount`. > [GenerateTableFetch.java#L462|https://github.com/apache/nifi/blob/4d940bb151eb8d250b0319318b96d23c4a9819ae/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateTableFetch.java#L462] > h6. Possible fix: > {code:java} > numberOfFetches = (partitionSize == 0) ? (rowCount == 0 ? 0 : 1) : (rowCount > / partitionSize) + (rowCount % partitionSize == 0 ? 0 : 1); > {code} > -- This message was sent by Atlassian Jira (v8.3.4#803005)