[jOOQ/jOOQ#9085] SQLDialect.DEFAULT should render * EXCEPT syntax
This commit is contained in:
parent
c34fd07c47
commit
a256f6db53
@ -37,19 +37,40 @@
|
||||
*/
|
||||
package org.jooq.impl;
|
||||
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.CLICKHOUSE;
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.DERBY;
|
||||
import static org.jooq.SQLDialect.DUCKDB;
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.FIREBIRD;
|
||||
import static org.jooq.SQLDialect.H2;
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.IGNITE;
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.MARIADB;
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.MYSQL;
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.POSTGRES;
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.SQLITE;
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.TRINO;
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.YUGABYTEDB;
|
||||
import static org.jooq.impl.Keywords.K_EXCEPT;
|
||||
import static org.jooq.impl.Keywords.K_EXCLUDE;
|
||||
|
||||
@ -74,7 +95,7 @@ import org.jooq.impl.QOM.UnmodifiableList;
|
||||
*/
|
||||
final class AsteriskImpl extends AbstractQueryPart implements Asterisk {
|
||||
static final Lazy<AsteriskImpl> INSTANCE = Lazy.of(() -> new AsteriskImpl(new QueryPartList<>()));
|
||||
static final Set<SQLDialect> SUPPORT_NATIVE_EXCEPT = SQLDialect.supportedBy(H2);
|
||||
static final Set<SQLDialect> NO_SUPPORT_NATIVE_EXCEPT = SQLDialect.supportedBy(CLICKHOUSE, CUBRID, DERBY, DUCKDB, FIREBIRD, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB);
|
||||
static final Set<SQLDialect> NO_SUPPORT_UNQUALIFIED_COMBINED = SQLDialect.supportedBy(CLICKHOUSE, DERBY, FIREBIRD, HSQLDB, MARIADB, MYSQL);
|
||||
|
||||
|
||||
|
||||
@ -124,8 +124,8 @@ import static org.jooq.SortOrder.DESC;
|
||||
// ...
|
||||
import static org.jooq.conf.ParamType.INLINED;
|
||||
import static org.jooq.conf.SettingsTools.getRenderTable;
|
||||
import static org.jooq.impl.AsteriskImpl.NO_SUPPORT_NATIVE_EXCEPT;
|
||||
import static org.jooq.impl.AsteriskImpl.NO_SUPPORT_UNQUALIFIED_COMBINED;
|
||||
import static org.jooq.impl.AsteriskImpl.SUPPORT_NATIVE_EXCEPT;
|
||||
import static org.jooq.impl.CombineOperator.EXCEPT;
|
||||
import static org.jooq.impl.CombineOperator.EXCEPT_ALL;
|
||||
import static org.jooq.impl.CombineOperator.INTERSECT;
|
||||
@ -202,7 +202,6 @@ import static org.jooq.impl.Tools.aliased;
|
||||
import static org.jooq.impl.Tools.aliasedFields;
|
||||
import static org.jooq.impl.Tools.allMatch;
|
||||
import static org.jooq.impl.Tools.anyMatch;
|
||||
import static org.jooq.impl.Tools.apply;
|
||||
import static org.jooq.impl.Tools.autoAlias;
|
||||
import static org.jooq.impl.Tools.camelCase;
|
||||
import static org.jooq.impl.Tools.concat;
|
||||
@ -308,11 +307,7 @@ import org.jooq.Select;
|
||||
import org.jooq.SelectField;
|
||||
import org.jooq.SelectFieldOrAsterisk;
|
||||
import org.jooq.SelectGroupByStep;
|
||||
import org.jooq.SelectLimitPercentStep;
|
||||
import org.jooq.SelectLimitStep;
|
||||
import org.jooq.SelectOffsetStep;
|
||||
import org.jooq.SelectQuery;
|
||||
import org.jooq.SelectWithTiesStep;
|
||||
import org.jooq.SortField;
|
||||
import org.jooq.Table;
|
||||
import org.jooq.TableField;
|
||||
@ -4278,7 +4273,7 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
|
||||
boolean knownTableSource = knownTableSource();
|
||||
|
||||
// [#7921] Only H2 supports the * EXCEPT (..) syntax
|
||||
boolean resolveExcept = resolveSupported || knownTableSource && !SUPPORT_NATIVE_EXCEPT.contains(ctx.dialect());
|
||||
boolean resolveExcept = resolveSupported || knownTableSource && NO_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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user