From 9f1b86a1a0367a32a31e69e549fbd00f2e407f2f Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 19 Sep 2023 16:38:30 +0200 Subject: [PATCH] [jOOQ/jOOQ#15582] MariaDB UPDATE .. RETURNING emulation should work on tables with unique constraints only --- jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java index f0556b09d6..2684a54bcb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java @@ -566,7 +566,13 @@ implements acceptFromAsMerge(ctx); return; } - else if (!returning.isEmpty() && EMULATE_RETURNING_WITH_UPSERT.contains(ctx.dialect())) { + else if (!returning.isEmpty() + && EMULATE_RETURNING_WITH_UPSERT.contains(ctx.dialect()) + && table instanceof TableImpl + + // [#15582] This implementation should be done only for plain SQL templates + // or generated code with at least one known unique key + && (((TableImpl) table).fields.fields.length == 0 || !table.getKeys().isEmpty())) { acceptReturningAsUpsert(ctx); return; }