Mikhail Pinevskiy created NIFI-13116: ----------------------------------------
Summary: PutDatabaseRecord (INSERT_IGNORE) uses Update keys while not specified Key: NIFI-13116 URL: https://issues.apache.org/jira/browse/NIFI-13116 Project: Apache NiFi Issue Type: Bug Affects Versions: 2.0.0-M2, 1.25.0 Reporter: Mikhail Pinevskiy Fix For: 1.26.0 PutDatabaseRecord hides field "Update Keys" while using INSERT_IGNORE ("A comma-separated list of column names that uniquely identifies a row in the database for UPDATE statements. If the Statement Type is UPDATE and this property is not set, the table's Primary Keys are used. In this case, if no Primary Key exists, the conversion to SQL will fail if Unmatched Column Behaviour is set to FAIL. This property is ignored if the Statement Type is INSERT"). Despite this field not being set and not being used, classes like PostgreSQLDatabaseAdapter use it in methods for INSERT_IGNORE and UPSERT, which triggers an exception if list of Update Keys is empty or null. MySQLDatabaseAdapter methods have same checks for Update Keys, but do not use them. With that for PostgreSQL we have "instert ... on conflict (Update Keys) ignore", and for MySQL any constraint will trigger "on conflict" on any constraint, not specified. It means different and unclear behaviour, so i suggest removing use of Update Keys in said classes. -- This message was sent by Atlassian Jira (v8.20.10#820010)