From 7c6618833c862b3fd3f0cc339e6b19a8121b8fa7 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 4 May 2022 15:36:10 +0200 Subject: [PATCH] [jOOQ/jOOQ#13509] MariaDB is also affected --- jOOQ/src/main/java/org/jooq/impl/Multiset.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Multiset.java b/jOOQ/src/main/java/org/jooq/impl/Multiset.java index 2f58b8961e..8e045f5a60 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Multiset.java +++ b/jOOQ/src/main/java/org/jooq/impl/Multiset.java @@ -41,7 +41,7 @@ import static java.lang.Boolean.TRUE; // ... // ... import static org.jooq.SQLDialect.MYSQL; -// ... +import static org.jooq.SQLDialect.*; import static org.jooq.SQLDialect.POSTGRES; import static org.jooq.SQLDialect.YUGABYTEDB; import static org.jooq.impl.DSL.function; @@ -114,9 +114,10 @@ import org.jooq.XMLAggOrderByStep; */ final class Multiset extends AbstractField> implements QOM.Multiset { - static final Set NO_SUPPORT_JSON_COMPARE = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB); - static final Set NO_SUPPORT_JSONB_COMPARE = SQLDialect.supportedBy(); - static final Set NO_SUPPORT_XML_COMPARE = SQLDialect.supportedBy(POSTGRES); + static final Set NO_SUPPORT_JSON_COMPARE = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB); + static final Set NO_SUPPORT_JSONB_COMPARE = SQLDialect.supportedBy(); + static final Set NO_SUPPORT_XML_COMPARE = SQLDialect.supportedBy(POSTGRES); + static final Set FORCE_LIMIT_IN_DERIVED_TABLE = SQLDialect.supportedBy(MARIADB, MYSQL); final Select select; @@ -153,7 +154,7 @@ final class Multiset extends AbstractField> implemen private final void accept0(Context ctx, boolean multisetCondition) { switch (emulateMultiset(ctx.configuration())) { case JSON: { - Table t = new AliasedSelect<>(select, true, false, ctx.family() == MYSQL, fieldNames(select.getSelect().size())).as(DSL.name("t"), (Name[]) null); + Table t = new AliasedSelect<>(select, true, false, FORCE_LIMIT_IN_DERIVED_TABLE.contains(ctx.dialect()), fieldNames(select.getSelect().size())).as(DSL.name("t"), (Name[]) null); switch (ctx.family()) { @@ -206,7 +207,7 @@ final class Multiset extends AbstractField> implemen } case JSONB: { - Table t = new AliasedSelect<>(select, true, false, ctx.family() == MYSQL, fieldNames(select.getSelect().size())).as(DSL.name("t"), (Name[]) null); + Table t = new AliasedSelect<>(select, true, false, FORCE_LIMIT_IN_DERIVED_TABLE.contains(ctx.dialect()), fieldNames(select.getSelect().size())).as(DSL.name("t"), (Name[]) null); switch (ctx.family()) { @@ -261,7 +262,7 @@ final class Multiset extends AbstractField> implemen case XML: { List> fields = select.getSelect(); - Table t = new AliasedSelect<>(select, true, false, ctx.family() == MYSQL, fieldNames(fields.size())).as(DSL.name("t"), (Name[]) null); + Table t = new AliasedSelect<>(select, true, false, FORCE_LIMIT_IN_DERIVED_TABLE.contains(ctx.dialect()), fieldNames(fields.size())).as(DSL.name("t"), (Name[]) null); switch (ctx.family()) {