From 57a652f4f4426633817251cc692ac3d7b0159546 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 5 Apr 2022 09:03:20 +0200 Subject: [PATCH] [jOOQ/jOOQ#11575] Stop using versioned dialect switch in Limit --- jOOQ/src/main/java/org/jooq/impl/Limit.java | 91 ++++++++------------- 1 file changed, 36 insertions(+), 55 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Limit.java b/jOOQ/src/main/java/org/jooq/impl/Limit.java index 897ccaba8b..c543f4da50 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Limit.java +++ b/jOOQ/src/main/java/org/jooq/impl/Limit.java @@ -39,7 +39,13 @@ package org.jooq.impl; import static java.lang.Boolean.TRUE; import static org.jooq.RenderContext.CastMode.NEVER; +// ... +import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; +import static org.jooq.SQLDialect.MARIADB; +// ... +import static org.jooq.SQLDialect.POSTGRES; +// ... // ... import static org.jooq.conf.ParamType.INLINED; import static org.jooq.impl.DSL.one; @@ -67,12 +73,12 @@ import org.jooq.Field; import org.jooq.Param; // ... import org.jooq.RenderContext.CastMode; +import org.jooq.SQLDialect; import org.jooq.conf.ParamType; import org.jooq.exception.DataAccessException; import org.jooq.impl.QOM.UTransient; import org.jooq.impl.Tools.BooleanDataKey; -import org.jetbrains.annotations.Nullable; /** * @author Lukas Eder @@ -96,7 +102,7 @@ final class Limit extends AbstractQueryPart implements UTransient { ParamType paramType = ctx.paramType(); CastMode castMode = ctx.castMode(); - switch (ctx.dialect()) { + switch (ctx.family()) { // True LIMIT / OFFSET support provided by the following dialects // ----------------------------------------------------------------- @@ -111,6 +117,15 @@ final class Limit extends AbstractQueryPart implements UTransient { + + + + + + + + + @@ -131,8 +146,7 @@ final class Limit extends AbstractQueryPart implements UTransient { break; } - // ROWS .. TO .. - // ------------- + case FIREBIRD: { @@ -144,39 +158,11 @@ final class Limit extends AbstractQueryPart implements UTransient { + acceptStandard(ctx, castMode); + break; + } - - - - - - - - - - - - - - - - - - - - - - - - - - - - case DERBY: - case FIREBIRD: - case H2: - case MARIADB: - case POSTGRES: { + case H2: { // [#8415] For backwards compatibility reasons, we generate standard // OFFSET .. FETCH syntax on H2 only when strictly needed @@ -188,13 +174,21 @@ final class Limit extends AbstractQueryPart implements UTransient { break; } + case POSTGRES: { + acceptStandard(ctx, castMode); + break; + } + case DERBY: { + acceptStandard(ctx, castMode); + break; + } @@ -265,27 +259,16 @@ final class Limit extends AbstractQueryPart implements UTransient { + case MARIADB: { - - - - - - - - - - - - - - // [#4785] OFFSET cannot be without LIMIT - + acceptStandard(ctx, castMode); + break; + } @@ -293,6 +276,8 @@ final class Limit extends AbstractQueryPart implements UTransient { case MYSQL: case SQLITE: { + + // [#4785] OFFSET cannot be without LIMIT acceptDefaultLimitMandatory(ctx, castMode); break; } @@ -310,10 +295,6 @@ final class Limit extends AbstractQueryPart implements UTransient { - - - - default: { acceptDefault(ctx, castMode); break;