From b118ea6fcb09a855983ccf280a19e338fd376de3 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 27 Jan 2014 11:52:31 +0100 Subject: [PATCH] [#2982] Variable binding doesn't work in vendor-specific UPDATE t1 JOIN t2 queries, when joined tables are subqueries with bind values --- .../src/org/jooq/test/_/testcases/InsertUpdateTests.java | 2 +- jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/jOOQ-test/src/org/jooq/test/_/testcases/InsertUpdateTests.java b/jOOQ-test/src/org/jooq/test/_/testcases/InsertUpdateTests.java index 1cfff8f6b4..aa90dd0125 100644 --- a/jOOQ-test/src/org/jooq/test/_/testcases/InsertUpdateTests.java +++ b/jOOQ-test/src/org/jooq/test/_/testcases/InsertUpdateTests.java @@ -1328,7 +1328,7 @@ extends BaseTest subquery = select(TAuthor_ID()).from(TAuthor()).where(TAuthor_LAST_NAME().eq("Orwell")); + Select subquery = select(TAuthor_ID()).from(TAuthor()).where(TAuthor_ID().eq(1)); assertEquals(2, create().update(TBook() .join(subquery) diff --git a/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java index 996f685d93..535ea5dd8b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java @@ -526,7 +526,11 @@ class UpdateQueryImpl extends AbstractStoreQuery implements @Override public final void bind(BindContext context) { - context.visit(getInto()); + boolean declareTables = context.declareTables(); + + context.declareTables(true) + .visit(getInto()) + .declareTables(declareTables); // A multi-row update was specified if (multiRow != null) {