[
https://issues.apache.org/jira/browse/CAMEL-25557?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-25557:
-----------------------------------
Assignee: Claus Ibsen
> camel-jbang - sql: an insert-or-update in the dialect of another database
> than the datasource, and :#excluded.column as a named parameter
> -----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-25557
> URL: https://issues.apache.org/jira/browse/CAMEL-25557
> Project: Camel
> Issue Type: Improvement
> Components: camel-jbang
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 4.24.0
>
>
> In the local-model benchmark the connect-service-sql step that registers
> customers (insert, or add one to the order count of a customer already there)
> is the least stable step: it failed in 7 of 13 runs. The datasource of the
> example is PostgreSQL (spring.datasource.url=jdbc:postgresql:... in
> application.properties), and the model wrote:
> * INSERT ... ON DUPLICATE KEY UPDATE orders = orders + 1 (MySQL): a syntax
> error for every file, 80-90 runtime errors, the model then tries other
> dialects until it runs out of tool calls;
> * ON CONFLICT (id) DO UPDATE SET country = :#excluded.country: EXCLUDED is
> PostgreSQL's row being inserted, as a camel-sql named parameter it is a key
> looked up in the body and the headers.
> Improvement (camel_write_file / camel_validate_source with the directory):
> * When application.properties points to one PostgreSQL datasource, an INSERT
> ... ON DUPLICATE KEY UPDATE says so and gives the statement to write: INSERT
> INTO customers (...) VALUES (...) ON CONFLICT (id) DO UPDATE SET orders =
> customers.orders + 1 (the key from a CREATE TABLE ... PRIMARY KEY in the same
> file when there is one; VALUES(col) as EXCLUDED.col). The other way round for
> a MySQL or MariaDB datasource and ON CONFLICT ... DO UPDATE.
> * :#excluded.column in a sql: statement says EXCLUDED.column is written
> without :#.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)