From 62efa74ebb3b3cbdc1c7762e73be91d93b3139b7 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 3 Jun 2024 13:45:59 +0200 Subject: [PATCH] Revert "[jOOQ/jOOQ#16733] DML ORDER BY .. LIMIT emulation shouldn't repeat WHERE predicate" --- jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java index 5b5ab1a8fc..037ae985c2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java @@ -777,8 +777,7 @@ implements acceptFrom(ctx, where0, f); - boolean limitEmulation = limitEmulation(ctx); - if (limitEmulation) { + if (limitEmulation(ctx)) { // [#16632] Push down USING table list here TableList t1 = new TableList(); @@ -794,7 +793,8 @@ implements where0.addConditions(row(keyFields).in(select(keyFields).from(t1).where(getWhere()).orderBy(orderBy).limit(limit))); } - if (hasWhere() && !limitEmulation) + // [#16733] Repeat the WHERE clause in case we have a non-empty FROM clause + if (hasWhere() && (from.isEmpty() || supportFromOrUpdateJoin(ctx))) where0.addConditions(getWhere()); else if (!where0.hasWhere() && REQUIRES_WHERE.contains(ctx.dialect())) where0.addConditions(trueCondition());