[
https://issues.apache.org/jira/browse/NIFI-8043?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17723057#comment-17723057
]
Yury Levin edited comment on NIFI-8043 at 5/16/23 9:07 AM:
-----------------------------------------------------------
Hello [~mattyb149]
I've faced same issue and wrote down steps as I reprodused it in reply to post
[~joaoaqrbarros] have linked:
[https://community.cloudera.com/t5/Support-Questions/Upsert-on-conflict-not-quoting-keys/td-p/355723]
was (Author: JIRAUSER300439):
Hello [~mattyb149]
I've faced same issue and wrote down steps as I reprodused it in reply to
[~joaoaqrbarros]'s post:
[https://community.cloudera.com/t5/Support-Questions/Upsert-on-conflict-not-quoting-keys/td-p/355723]
> PutDatabaseRecord Postgres Upsert On Conflict keys not quoted
> -------------------------------------------------------------
>
> Key: NIFI-8043
> URL: https://issues.apache.org/jira/browse/NIFI-8043
> Project: Apache NiFi
> Issue Type: Bug
> Components: Extensions
> Reporter: Daniel Cheung
> Assignee: Matt Burgess
> Priority: Major
> Fix For: 1.13.0
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> h2. First attempt with camel case (fails when translate field name is true or
> false)
> Given that "Quote Column Identifiers" is enabled, one would expect the column
> names inside the conflict clause be quoted as well. However, they didn't seem
> to have been quoted, because my table's column names contain upper and
> lowercases and the flowfile is routed to the failure relationship of the
> PutDatabaseRecord processor with the DB error: {{ERROR: column "camelcase"
> does not exist}}.
> Whether setting "Update Keys" or not did not affect the outcome. If I
> understand, "Update Keys" would also affect the conflict clause, but it's
> also not quoted, and does not accept a string with manually quoted column
> names.
> SQL in question found in the DB error in the log, simplified from what I saw.
> {{INSERT INTO "public"."my_table"("camelCase", "txt")}}
> {{VALUES ("test", "test")}}
> {{ON CONFLICT (CAMELCASE)}}
> {{DO UPDATE SET ("camelCase", "txt") = (}}
> {{ EXCLUDED."camelCase",}}
> {{ EXCLUDED."txt"}}
> {{)}}
> h2. Second attempt with snake case (fails when translate field name is true)
> I changed my column names to {{_snake_case, txt}} and try upserting again and
> it still failed with this SQL in nifi-app.log:
> {{INSERT INTO "public"."my_table"("_snake_case", "txt")}}
> {{VALUES ("test", "test")}}
> {{ON CONFLICT (SNAKECASE)}}
> {{DO UPDATE SET ("}}{{_snake_case}}{{", "txt") = (}}
> {{ EXCLUDED."}}{{_snake_case}}{{",}}
> {{ EXCLUDED."txt"}}
> {{)}}
>
> h2. Current workaround
> I currently need to *disable translate field name* and set my table to *use
> snake case names as column names* to be able to use upsert
--
This message was sent by Atlassian Jira
(v8.20.10#820010)