[#4151] Fix behaviour for H2 and HSQLDB
This commit is contained in:
parent
0a52ca4bc1
commit
36b3acec61
@ -469,10 +469,20 @@ class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> implement
|
||||
.keyword("for update");
|
||||
|
||||
if (!forUpdateOf.isEmpty()) {
|
||||
|
||||
// [#4151] Some databases don't allow for qualifying column
|
||||
// names here. Copy also to TableList
|
||||
boolean unqualified = asList(H2, HSQLDB).contains(context.family());
|
||||
boolean qualify = context.qualify();
|
||||
|
||||
if (unqualified)
|
||||
context.qualify(false);
|
||||
|
||||
context.sql(' ').keyword("of")
|
||||
.sql(' ').visit(forUpdateOf);
|
||||
|
||||
// Utils.fieldNames(context, forUpdateOf);
|
||||
if (unqualified)
|
||||
context.qualify(qualify);
|
||||
}
|
||||
else if (!forUpdateOfTables.isEmpty()) {
|
||||
context.sql(' ').keyword("of").sql(' ');
|
||||
|
||||
@ -41,6 +41,10 @@
|
||||
|
||||
package org.jooq.impl;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
import static org.jooq.SQLDialect.H2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.jooq.Context;
|
||||
@ -79,6 +83,14 @@ class TableList extends QueryPartList<Table<?>> {
|
||||
final void toSQLFields(Context<?> ctx) {
|
||||
String separator = "";
|
||||
|
||||
// [#4151] Some databases don't allow for qualifying column
|
||||
// names here. Copy also to SelectQueryImpl
|
||||
boolean unqualified = asList(H2, HSQLDB).contains(ctx.family());
|
||||
boolean qualify = ctx.qualify();
|
||||
|
||||
if (unqualified)
|
||||
ctx.qualify(false);
|
||||
|
||||
for (Table<?> table : this) {
|
||||
for (Field<?> field : table.fieldsRow().fields()) {
|
||||
ctx.sql(separator);
|
||||
@ -87,5 +99,8 @@ class TableList extends QueryPartList<Table<?>> {
|
||||
separator = ", ";
|
||||
}
|
||||
}
|
||||
|
||||
if (unqualified)
|
||||
ctx.qualify(qualify);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user