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
+}

Reply via email to