This is an automated email from the ASF dual-hosted git repository. joewitt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push: new 9bc63920aa NIFI-10289 This closes #6256. Change getConflictColumnsClause NIFI-10289 Test upsert to catch this issue 9bc63920aa is described below commit 9bc63920aad21bd1bba2c1f4c6b5f050081459b1 Author: Eduardo Fontes <eduardo.fon...@gmail.com> AuthorDate: Thu Jul 28 15:01:09 2022 -0300 NIFI-10289 This closes #6256. Change getConflictColumnsClause NIFI-10289 Test upsert to catch this issue Signed-off-by: Joe Witt <joew...@apache.org> --- .../standard/db/impl/Oracle12DatabaseAdapter.java | 3 ++- .../standard/db/impl/TestOracle12DatabaseAdapter.java | 15 ++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) 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 63e7379e83..990831f6b6 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 @@ -150,7 +150,8 @@ public class Oracle12DatabaseAdapter implements DatabaseAdapter { uniqueKey -> column.equalsIgnoreCase(getColumnAssignment(table, uniqueKey, newTableAlias)))) .collect(Collectors.toList()); - if (conflictColumnsClause.isEmpty()) { + // Compare list sizes instead of emptyness + if (conflictColumnsClause.size() != uniqueKeyColumnNames.size()) { // Try it with normalized columns conflictColumnsClause = conflictColumns.stream() diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/db/impl/TestOracle12DatabaseAdapter.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/db/impl/TestOracle12DatabaseAdapter.java index dcc17254ec..f52d2978fb 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/db/impl/TestOracle12DatabaseAdapter.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/db/impl/TestOracle12DatabaseAdapter.java @@ -136,13 +136,14 @@ public class TestOracle12DatabaseAdapter { public void testGetUpsertStatement() { // GIVEN String tableName = "table"; - List<String> columnNames = Arrays.asList("column1","column2", "column3", "column4"); - Collection<String> uniqueKeyColumnNames = Arrays.asList("column2","column4"); + List<String> columnNames = Arrays.asList("column1","column2", "column3", "column_4"); + // uniqueKeyColumnNames can be normalized, so "column_4" become "column4" here. + Collection<String> uniqueKeyColumnNames = Arrays.asList("column1","column4"); - String expected = "MERGE INTO table USING (SELECT ? column1, ? column2, ? column3, ? column4 FROM DUAL) n" + - " ON (table.column2 = n.column2 AND table.column4 = n.column4) WHEN NOT MATCHED THEN" + - " INSERT (column1, column2, column3, column4) VALUES (n.column1, n.column2, n.column3, n.column4)" + - " WHEN MATCHED THEN UPDATE SET table.column1 = n.column1, table.column3 = n.column3"; + String expected = "MERGE INTO table USING (SELECT ? column1, ? column2, ? column3, ? column_4 FROM DUAL) n" + + " ON (table.column1 = n.column1 AND table.column_4 = n.column_4) WHEN NOT MATCHED THEN" + + " INSERT (column1, column2, column3, column_4) VALUES (n.column1, n.column2, n.column3, n.column_4)" + + " WHEN MATCHED THEN UPDATE SET table.column2 = n.column2, table.column3 = n.column3"; // WHEN // THEN @@ -164,4 +165,4 @@ public class TestOracle12DatabaseAdapter { assertEquals(expected, actual); } -} \ No newline at end of file +}