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 <[email protected]>
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 <[email protected]>
---
.../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
+}