From edb209c5abeca21327c8dbdffa10104cec8495d7 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 20 Dec 2023 17:02:25 +0100 Subject: [PATCH] [jOOQ/jOOQ#15975] Wrong statement generated for MySQL when leading unqualified asterisk is used with plain SQL template table --- jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index 20e31766aa..499e948562 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -4091,9 +4091,11 @@ final class SelectQueryImpl extends AbstractResultQuery imp private final SelectFieldList getSelectResolveSomeAsterisks0(Scope ctx, boolean resolveSupported) { SelectFieldList result = new SelectFieldList<>(); + boolean knownTableSource = knownTableSource(); + // [#7921] Only H2 supports the * EXCEPT (..) syntax - boolean resolveExcept = resolveSupported || !SUPPORT_NATIVE_EXCEPT.contains(ctx.dialect()); - boolean resolveUnqualifiedCombined = resolveSupported || NO_SUPPORT_UNQUALIFIED_COMBINED.contains(ctx.dialect()); + boolean resolveExcept = resolveSupported || knownTableSource && !SUPPORT_NATIVE_EXCEPT.contains(ctx.dialect()); + boolean resolveUnqualifiedCombined = resolveSupported || knownTableSource && NO_SUPPORT_UNQUALIFIED_COMBINED.contains(ctx.dialect()); // [#7921] TODO Find a better, more efficient way to resolve asterisks SelectFieldList list = getSelectResolveImplicitAsterisks();