diff --git a/jOOQ-test/src/test/java/org/jooq/test/OracleTest.java b/jOOQ-test/src/test/java/org/jooq/test/OracleTest.java index 92f91834d7..8cf23e2dd1 100644 --- a/jOOQ-test/src/test/java/org/jooq/test/OracleTest.java +++ b/jOOQ-test/src/test/java/org/jooq/test/OracleTest.java @@ -1723,7 +1723,7 @@ xxxxxx xxxxx xxxxxxxxxx xxxxxxx xxxxxxxxxxxxxxxxx xxxxx xxxxxx xxxx xxxxxxxxxxxxxxxxxxxxx x - xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxxx x xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxxxxxx xxxxx diff --git a/jOOQ/src/main/java/org/jooq/impl/Limit.java b/jOOQ/src/main/java/org/jooq/impl/Limit.java index 0e9f707577..ba65e43c7c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Limit.java +++ b/jOOQ/src/main/java/org/jooq/impl/Limit.java @@ -45,12 +45,10 @@ import static org.jooq.conf.ParamType.INLINED; import static org.jooq.impl.DSL.inline; import static org.jooq.impl.DSL.val; -import org.jooq.BindContext; import org.jooq.Clause; import org.jooq.Context; import org.jooq.Field; import org.jooq.Param; -import org.jooq.RenderContext; import org.jooq.RenderContext.CastMode; import org.jooq.conf.ParamType; import org.jooq.exception.DataAccessException; @@ -72,7 +70,7 @@ class Limit extends AbstractQueryPart { private boolean rendersParams; @Override - public final void toSQL(RenderContext context) { + public final void accept(Context context) { ParamType paramType = context.paramType(); CastMode castMode = context.castMode(); @@ -227,121 +225,6 @@ class Limit extends AbstractQueryPart { } } - @Override - public final void bind(BindContext context) { - switch (context.configuration().dialect()) { - - // OFFSET .. LIMIT support provided by the following dialects - // ---------------------------------------------------------- - /* [pro] xx - xxxx xxxxxxxxxx - xxxx xxxxxxxxxxxxxx - xx [/pro] */ - case DERBY: { - context.visit(offsetOrZero); - context.visit(numberOfRows); - break; - } - - // LIMIT .. OFFSET support provided by the following dialects - // ---------------------------------------------------------- - case MARIADB: - case MYSQL: - case HSQLDB: - case H2: - case POSTGRES: - case SQLITE: { - context.visit(numberOfRows); - context.visit(offsetOrZero); - break; - } - - // LIMIT [offset], [limit] supported by CUBRID - // ------------------------------------------- - case CUBRID: { - context.visit(offsetOrZero); - context.visit(numberOfRows); - break; - } - - // No bind variables in the FIRST .. SKIP clause - // --------------------------------------------- - case FIREBIRD: { - context.visit(getLowerRownum()); - context.visit(getUpperRownum()); - break; - } - - /* [pro] xx - xx xxxxx xxxxxxxx xxxxx xxxxxxx xxxx xxxxxxxxx xx xxx - xxxx xxxx - xxxx xxxxxxx x - xxxxxx - x - - xx xx xxxx xxxxxxxxx xx xxx xxx xx xxxxx xx xxxxxx - xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - xxxx xxxxxxx x - - xx xxx xx xxxxx xx xxxxxxx xxxxxxx xxxx xxxxxxxxx - xx xxxxxxxxxxxxxxxx x - x - - xx xxxx xxxxxxxxx xxxxxxxx xx xxxxxx xxxx xxxxxxx - xxxx x - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - x - - xxxxxx - x - - xx xxxxx xxxxxxxx xxxxx xxxxx xxxx xxxxxxxxx xx xxxxx xxx xxxxxxx - xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - xxxx xxxxxxx - xxxx xxxxxxxxxxx - xxxx xxxx - xxxx xxxxxx - xxxx xxxxxxx - xxxx xxxxxxxxxxxxxx x - - xx xxx xxxxxxx xxxxxxx xxxx xxxxxxxxx - xx xxxxxxx xx xxxx xx xxxxxxxxxxxxxxx x - x - - xx xxxx xxxxxxxxx xxxxxxxx xx xxxxxx xxxx xxxxxxx - xxxx x - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - x - - xxxxxx - x - - xx xxxxxx xxxxx xx xxxxx xx xxx xxxxxxx xxxxxx xxx xxxxxx xxxxx - xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - xxxx xxxxxxx - xxxx xxxxxxxxxx - xxxx xxxxxxxxxx - xxxx xxxxxxxxxx x - - xx xxxxxxx xxxx xxx xxxxxx xxxxxxxxx xxxxxxxxxxxx xxx xxxxx - xx xxxxx xx xxxxx xxxxxx xxx xxxxx xxxxx - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - xxxxxx - x - - xx [/pro] */ - // [#2057] Bind the same values as rendered in toSQL() by default - default: { - context.visit(numberOfRows); - context.visit(offsetOrZero); - break; - } - } - } - @Override public final Clause[] clauses(Context ctx) { return null; diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index 1747545bf4..214809953a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -69,6 +69,7 @@ import static org.jooq.SQLDialect.SQLITE; // ... // ... // ... +// ... import static org.jooq.SortOrder.ASC; import static org.jooq.impl.DSL.inline; import static org.jooq.impl.DSL.name; @@ -626,7 +627,7 @@ class SelectQueryImpl extends AbstractSelect implements Sel context.visit(getSelect1()); } - + context.declareFields(false) .end(SELECT_SELECT); @@ -793,7 +794,7 @@ class SelectQueryImpl extends AbstractSelect implements Sel /* [pro] xx xx xxxxxxx xxx xxxxxx xxxx xxxxxxxx xx xxxxx xx xxxxxxx xxxxx xxxx xx xxxxxx xx xxxxx - xxxx xx xxxxxxxxxxxxxxxxxxxxxxxxxx xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x + xxxx xx xxxxxxxxxxxxxxxxxxxxxxxxxx xx xxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxx xxxxxx xx diff --git a/jOOQ/src/main/java/org/jooq/impl/Val.java b/jOOQ/src/main/java/org/jooq/impl/Val.java index 2a0fb49361..0821af4305 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Val.java +++ b/jOOQ/src/main/java/org/jooq/impl/Val.java @@ -59,6 +59,7 @@ import static org.jooq.SQLDialect.POSTGRES; import static org.jooq.SQLDialect.SQLITE; // ... // ... +import static org.jooq.conf.ParamType.INLINED; import static org.jooq.conf.ParamType.NAMED; import static org.jooq.impl.DSL.name; import static org.jooq.impl.DSL.using; @@ -106,13 +107,12 @@ class Val extends AbstractParam { @Override public void accept(Context ctx) { if (ctx instanceof RenderContext) - toSQL((RenderContext) ctx); + toSQL0((RenderContext) ctx); else - bind((BindContext) ctx); + bind0((BindContext) ctx); } - @Override - public final void toSQL(RenderContext context) { + final void toSQL0(RenderContext context) { // Casting can be enforced or prevented switch (context.castMode()) { @@ -610,11 +610,10 @@ class Val extends AbstractParam { return val.toString().replace("'", "''"); } - @Override - public final void bind(BindContext context) { + final void bind0(BindContext context) { // [#1302] Bind value only if it was not explicitly forced to be inlined - if (!isInline()) { + if (!isInline() && context.paramType() != INLINED) { context.bindValue(value, this); } }