[jOOQ/jOOQ#5695] Allow for expressions to be put in LIMIT / OFFSET
This commit is contained in:
parent
94c2dab4b8
commit
f3935558eb
@ -85,5 +85,5 @@ public interface DeleteLimitStep<R extends Record> extends DeleteReturningStep<R
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support
|
||||
DeleteReturningStep<R> limit(Param<? extends Number> numberOfRows);
|
||||
DeleteReturningStep<R> limit(Field<? extends Number> numberOfRows);
|
||||
}
|
||||
@ -150,7 +150,7 @@ public interface DeleteQuery<R extends Record> extends ConditionProvider, Delete
|
||||
* @param numberOfRows The number of rows to return
|
||||
*/
|
||||
@Support
|
||||
void addLimit(Param<? extends Number> numberOfRows);
|
||||
void addLimit(Field<? extends Number> numberOfRows);
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: Methods for the DELETE .. RETURNING syntax
|
||||
|
||||
@ -167,6 +167,6 @@ public interface SelectLimitAfterOffsetStep<R extends Record> extends SelectForU
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support
|
||||
SelectLimitPercentAfterOffsetStep<R> limit(Param<? extends Number> numberOfRows);
|
||||
SelectLimitPercentAfterOffsetStep<R> limit(Field<? extends Number> numberOfRows);
|
||||
|
||||
}
|
||||
|
||||
@ -177,7 +177,7 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support
|
||||
SelectLimitPercentStep<R> limit(Param<? extends Number> numberOfRows);
|
||||
SelectLimitPercentStep<R> limit(Field<? extends Number> numberOfRows);
|
||||
|
||||
/**
|
||||
* Add a <code>LIMIT</code> clause to the query
|
||||
@ -223,7 +223,7 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support
|
||||
SelectLimitPercentAfterOffsetStep<R> limit(int offset, Param<Integer> numberOfRows);
|
||||
SelectLimitPercentAfterOffsetStep<R> limit(int offset, Field<Integer> numberOfRows);
|
||||
|
||||
/**
|
||||
* Add a <code>LIMIT</code> clause to the query using named parameters
|
||||
@ -239,7 +239,7 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support
|
||||
SelectLimitPercentAfterOffsetStep<R> limit(Number offset, Param<? extends Number> numberOfRows);
|
||||
SelectLimitPercentAfterOffsetStep<R> limit(Number offset, Field<? extends Number> numberOfRows);
|
||||
|
||||
/**
|
||||
* Add a <code>LIMIT</code> clause to the query using named parameters
|
||||
@ -255,7 +255,7 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support
|
||||
SelectLimitPercentAfterOffsetStep<R> limit(Param<Integer> offset, int numberOfRows);
|
||||
SelectLimitPercentAfterOffsetStep<R> limit(Field<Integer> offset, int numberOfRows);
|
||||
|
||||
/**
|
||||
* Add a <code>LIMIT</code> clause to the query using named parameters
|
||||
@ -271,7 +271,7 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support
|
||||
SelectLimitPercentAfterOffsetStep<R> limit(Param<? extends Number> offset, Number numberOfRows);
|
||||
SelectLimitPercentAfterOffsetStep<R> limit(Field<? extends Number> offset, Number numberOfRows);
|
||||
|
||||
/**
|
||||
* Add a <code>LIMIT</code> clause to the query using named parameters
|
||||
@ -287,7 +287,7 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support
|
||||
SelectLimitPercentAfterOffsetStep<R> limit(Param<? extends Number> offset, Param<? extends Number> numberOfRows);
|
||||
SelectLimitPercentAfterOffsetStep<R> limit(Field<? extends Number> offset, Field<? extends Number> numberOfRows);
|
||||
|
||||
/**
|
||||
* Add a 0-based <code>OFFSET</code> clause to the query.
|
||||
@ -330,5 +330,5 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support
|
||||
SelectLimitAfterOffsetStep<R> offset(Param<? extends Number> offset);
|
||||
SelectLimitAfterOffsetStep<R> offset(Field<? extends Number> offset);
|
||||
}
|
||||
|
||||
@ -173,5 +173,5 @@ public interface SelectOffsetStep<R extends Record> extends SelectForUpdateStep<
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support
|
||||
SelectForUpdateStep<R> offset(Param<? extends Number> offset);
|
||||
SelectForUpdateStep<R> offset(Field<? extends Number> offset);
|
||||
}
|
||||
|
||||
@ -732,7 +732,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
|
||||
* <code>SELECT</code> statements.
|
||||
*/
|
||||
@Support
|
||||
void addOffset(Param<? extends Number> offset);
|
||||
void addOffset(Field<? extends Number> offset);
|
||||
|
||||
/**
|
||||
* Limit the results of this select.
|
||||
@ -771,7 +771,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
|
||||
* @param numberOfRows The number of rows to return
|
||||
*/
|
||||
@Support
|
||||
void addLimit(Param<? extends Number> numberOfRows);
|
||||
void addLimit(Field<? extends Number> numberOfRows);
|
||||
|
||||
/**
|
||||
* Limit the results of this select.
|
||||
@ -823,7 +823,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
|
||||
* @param numberOfRows The number of rows to return
|
||||
*/
|
||||
@Support
|
||||
void addLimit(Param<Integer> offset, int numberOfRows);
|
||||
void addLimit(Field<Integer> offset, int numberOfRows);
|
||||
|
||||
/**
|
||||
* Limit the results of this select.
|
||||
@ -841,7 +841,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
|
||||
* @param numberOfRows The number of rows to return
|
||||
*/
|
||||
@Support
|
||||
void addLimit(Param<? extends Number> offset, Number numberOfRows);
|
||||
void addLimit(Field<? extends Number> offset, Number numberOfRows);
|
||||
|
||||
/**
|
||||
* Limit the results of this select using named parameters.
|
||||
@ -859,7 +859,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
|
||||
* @param numberOfRows The number of rows to return
|
||||
*/
|
||||
@Support
|
||||
void addLimit(int offset, Param<Integer> numberOfRows);
|
||||
void addLimit(int offset, Field<Integer> numberOfRows);
|
||||
|
||||
/**
|
||||
* Limit the results of this select using named parameters.
|
||||
@ -877,7 +877,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
|
||||
* @param numberOfRows The number of rows to return
|
||||
*/
|
||||
@Support
|
||||
void addLimit(Number offset, Param<? extends Number> numberOfRows);
|
||||
void addLimit(Number offset, Field<? extends Number> numberOfRows);
|
||||
|
||||
/**
|
||||
* Limit the results of this select using named parameters.
|
||||
@ -895,7 +895,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
|
||||
* @param numberOfRows The number of rows to return
|
||||
*/
|
||||
@Support
|
||||
void addLimit(Param<? extends Number> offset, Param<? extends Number> numberOfRows);
|
||||
void addLimit(Field<? extends Number> offset, Field<? extends Number> numberOfRows);
|
||||
|
||||
/**
|
||||
* Add the <code>PERCENT</code> clause to a <code>LIMIT</code> clause.
|
||||
|
||||
@ -160,6 +160,6 @@ public interface SelectSeekLimitStep<R extends Record> extends SelectForUpdateSt
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support
|
||||
SelectForUpdateStep<R> limit(Param<? extends Number> numberOfRows);
|
||||
SelectForUpdateStep<R> limit(Field<? extends Number> numberOfRows);
|
||||
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ public interface UpdateLimitStep<R extends Record> extends UpdateReturningStep<R
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support
|
||||
UpdateReturningStep<R> limit(Param<? extends Number> numberOfRows);
|
||||
UpdateReturningStep<R> limit(Field<? extends Number> numberOfRows);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -438,7 +438,7 @@ public interface UpdateQuery<R extends Record> extends StoreQuery<R>, ConditionP
|
||||
* @param numberOfRows The number of rows to return
|
||||
*/
|
||||
@Support
|
||||
void addLimit(Param<? extends Number> numberOfRows);
|
||||
void addLimit(Field<? extends Number> numberOfRows);
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: Methods for the UPDATE .. RETURNING syntax
|
||||
|
||||
@ -325,7 +325,7 @@ final class DeleteImpl<R extends Record>
|
||||
}
|
||||
|
||||
@Override
|
||||
public final DeleteImpl<R> limit(Param<? extends Number> numberOfRows) {
|
||||
public final DeleteImpl<R> limit(Field<? extends Number> numberOfRows) {
|
||||
getDelegate().addLimit(numberOfRows);
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -135,7 +135,7 @@ final class DeleteQueryImpl<R extends Record> extends AbstractDMLQuery<R> implem
|
||||
private final TableList using;
|
||||
private final ConditionProviderImpl condition;
|
||||
private final SortFieldList orderBy;
|
||||
private Param<? extends Number> limit;
|
||||
private Field<? extends Number> limit;
|
||||
|
||||
DeleteQueryImpl(Configuration configuration, WithImpl with, Table<R> table) {
|
||||
super(configuration, with, table);
|
||||
@ -220,7 +220,7 @@ final class DeleteQueryImpl<R extends Record> extends AbstractDMLQuery<R> implem
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addLimit(Param<? extends Number> numberOfRows) {
|
||||
public final void addLimit(Field<? extends Number> numberOfRows) {
|
||||
limit = numberOfRows;
|
||||
}
|
||||
|
||||
|
||||
@ -72,6 +72,8 @@ 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
|
||||
*/
|
||||
@ -81,11 +83,11 @@ final class Limit extends AbstractQueryPart implements UTransient {
|
||||
private static final Param<Integer> ONE = one();
|
||||
private static final Param<Integer> MAX = DSL.inline(Integer.MAX_VALUE);
|
||||
|
||||
Param<?> limit;
|
||||
private Param<?> limitOrMax = MAX;
|
||||
Param<?> offset;
|
||||
private Param<?> offsetOrZero = ZERO;
|
||||
private Param<?> offsetPlusOne = ONE;
|
||||
Field<? extends Number> limit;
|
||||
private Field<? extends Number> limitOrMax = MAX;
|
||||
Field<? extends Number> offset;
|
||||
private Field<? extends Number> offsetOrZero = ZERO;
|
||||
private Field<? extends Number> offsetPlusOne = ONE;
|
||||
boolean withTies;
|
||||
boolean percent;
|
||||
|
||||
@ -404,7 +406,7 @@ final class Limit extends AbstractQueryPart implements UTransient {
|
||||
return !limitZero()
|
||||
&& !withTies()
|
||||
&& !percent()
|
||||
&& Long.valueOf(1L).equals(limit.getValue());
|
||||
&& Long.valueOf(1L).equals(getLimit());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -442,23 +444,28 @@ final class Limit extends AbstractQueryPart implements UTransient {
|
||||
this.offsetPlusOne = val(offset.longValue() + 1L, BIGINT);
|
||||
}
|
||||
|
||||
final void setOffset(Param<?> offset) {
|
||||
final void setOffset(Field<? extends Number> offset) {
|
||||
this.offset = offset;
|
||||
this.offsetOrZero = offset;
|
||||
}
|
||||
|
||||
final void setLimit(Number numberOfRows) {
|
||||
this.limit = val(numberOfRows.longValue(), SQLDataType.BIGINT);
|
||||
final void setLimit(Number l) {
|
||||
this.limit = val(l.longValue(), SQLDataType.BIGINT);
|
||||
this.limitOrMax = this.limit;
|
||||
}
|
||||
|
||||
final void setLimit(Param<?> numberOfRows) {
|
||||
this.limit = numberOfRows;
|
||||
this.limitOrMax = numberOfRows;
|
||||
final void setLimit(Field<? extends Number> l) {
|
||||
this.limit = l;
|
||||
this.limitOrMax = l;
|
||||
}
|
||||
|
||||
final Long getLimit() {
|
||||
return Convert.convert((limit != null ? limit : limitOrMax).getValue(), long.class);
|
||||
Field<?> l = limit != null ? limit : limitOrMax;
|
||||
|
||||
if (l instanceof Param)
|
||||
return Convert.convert(((Param<?>) l).getValue(), long.class);
|
||||
else
|
||||
return Convert.convert(MAX.getValue(), long.class);
|
||||
}
|
||||
|
||||
final void setPercent(boolean percent) {
|
||||
@ -477,21 +484,22 @@ final class Limit extends AbstractQueryPart implements UTransient {
|
||||
return withTies;
|
||||
}
|
||||
|
||||
final Limit from(Limit limit) {
|
||||
final Limit from(Limit other) {
|
||||
|
||||
// [#9017] Take the lower number of two LIMIT clauses, maintaining
|
||||
// inline flags and parameter names
|
||||
if (limit.limit != null)
|
||||
if (limit == null)
|
||||
this.setLimit(limit.limit);
|
||||
// [#5695] TODO: What to do if LIMIT is an expression?
|
||||
if (other.limit != null)
|
||||
if (this.limit == null)
|
||||
this.setLimit(other.limit);
|
||||
else
|
||||
this.setLimit(((Val<?>) limit.limit).copy(Math.min(getLimit(), limit.getLimit())));
|
||||
this.setLimit(((Val<? extends Number>) other.limit).copy(Math.min(getLimit(), other.getLimit())));
|
||||
|
||||
if (limit.offset != null)
|
||||
this.setOffset(limit.offset);
|
||||
if (other.offset != null)
|
||||
this.setOffset(other.offset);
|
||||
|
||||
this.setPercent(limit.percent);
|
||||
this.setWithTies(limit.withTies);
|
||||
this.setPercent(other.percent);
|
||||
this.setWithTies(other.withTies);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -230,9 +230,9 @@ implements
|
||||
* The limit that has been added in a limit(Number).offset(Number) construct
|
||||
*/
|
||||
private transient Number limit;
|
||||
private transient Param<? extends Number> limitParam;
|
||||
private transient Field<? extends Number> limitParam;
|
||||
private transient Number offset;
|
||||
private transient Param<? extends Number> offsetParam;
|
||||
private transient Field<? extends Number> offsetParam;
|
||||
|
||||
|
||||
|
||||
@ -1644,7 +1644,7 @@ implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public final SelectImpl limit(Param<? extends Number> l) {
|
||||
public final SelectImpl limit(Field<? extends Number> l) {
|
||||
limit = null;
|
||||
limitParam = l;
|
||||
return limitOffset();
|
||||
@ -1665,12 +1665,12 @@ implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public final SelectImpl limit(int o, Param<Integer> l) {
|
||||
public final SelectImpl limit(int o, Field<Integer> l) {
|
||||
return limit((Number) o, l);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final SelectImpl limit(Number o, Param<? extends Number> l) {
|
||||
public final SelectImpl limit(Number o, Field<? extends Number> l) {
|
||||
offset = o;
|
||||
offsetParam = null;
|
||||
limit = null;
|
||||
@ -1679,12 +1679,12 @@ implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public final SelectImpl limit(Param<Integer> o, int l) {
|
||||
public final SelectImpl limit(Field<Integer> o, int l) {
|
||||
return limit(o, (Number) l);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final SelectImpl limit(Param<? extends Number> o, Number l) {
|
||||
public final SelectImpl limit(Field<? extends Number> o, Number l) {
|
||||
offset = null;
|
||||
offsetParam = o;
|
||||
limit = l;
|
||||
@ -1693,7 +1693,7 @@ implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public final SelectImpl limit(Param<? extends Number> o, Param<? extends Number> l) {
|
||||
public final SelectImpl limit(Field<? extends Number> o, Field<? extends Number> l) {
|
||||
offset = null;
|
||||
offsetParam = o;
|
||||
limit = null;
|
||||
@ -1714,7 +1714,7 @@ implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public final SelectImpl offset(Param<? extends Number> o) {
|
||||
public final SelectImpl offset(Field<? extends Number> o) {
|
||||
offset = null;
|
||||
offsetParam = o;
|
||||
return limitOffset();
|
||||
|
||||
@ -250,7 +250,6 @@ import org.jooq.JoinType;
|
||||
import org.jooq.Name;
|
||||
import org.jooq.Operator;
|
||||
import org.jooq.OrderField;
|
||||
import org.jooq.Param;
|
||||
// ...
|
||||
import org.jooq.QualifiedAsterisk;
|
||||
import org.jooq.QueryPart;
|
||||
@ -291,9 +290,6 @@ import org.jooq.impl.Tools.DataKey;
|
||||
import org.jooq.tools.JooqLogger;
|
||||
import org.jooq.tools.StringUtils;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
||||
/**
|
||||
* A sub-select is a <code>SELECT</code> statement that can be combined with
|
||||
@ -1245,14 +1241,14 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
|
||||
.where(rn.eq(one()))
|
||||
.orderBy(map(orderBy, o -> unqualified(o)));
|
||||
|
||||
if (limit.numberOfRows != null) {
|
||||
SelectLimitPercentStep<?> s2 = s1.limit((Param) limit.numberOfRows);
|
||||
if (limit.limit != null) {
|
||||
SelectLimitPercentStep<?> s2 = s1.limit(limit.limit);
|
||||
SelectWithTiesStep<?> s3 = limit.percent ? s2.percent() : s2;
|
||||
SelectOffsetStep<?> s4 = limit.withTies ? s3.withTies() : s3;
|
||||
return limit.offset != null ? s4.offset((Param) limit.offset) : s4;
|
||||
return limit.offset != null ? s4.offset(limit.offset) : s4;
|
||||
}
|
||||
else
|
||||
return limit.offset != null ? s1.offset((Param) limit.offset) : s1;
|
||||
return limit.offset != null ? s1.offset(limit.offset) : s1;
|
||||
}
|
||||
|
||||
|
||||
@ -3296,23 +3292,23 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addOffset(Param<? extends Number> offset) {
|
||||
public final void addOffset(Field<? extends Number> offset) {
|
||||
getLimit().setOffset(offset);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addLimit(int numberOfRows) {
|
||||
addLimit((Number) numberOfRows);
|
||||
public final void addLimit(int l) {
|
||||
addLimit((Number) l);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addLimit(Number numberOfRows) {
|
||||
getLimit().setNumberOfRows(numberOfRows);
|
||||
public final void addLimit(Number l) {
|
||||
getLimit().setLimit(l);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addLimit(Param<? extends Number> numberOfRows) {
|
||||
getLimit().setNumberOfRows(numberOfRows);
|
||||
public final void addLimit(Field<? extends Number> l) {
|
||||
getLimit().setLimit(l);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -3321,37 +3317,37 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addLimit(Number offset, Number numberOfRows) {
|
||||
public final void addLimit(Number offset, Number l) {
|
||||
getLimit().setOffset(offset);
|
||||
getLimit().setNumberOfRows(numberOfRows);
|
||||
getLimit().setLimit(l);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addLimit(int offset, Param<Integer> numberOfRows) {
|
||||
addLimit((Number) offset, numberOfRows);
|
||||
public final void addLimit(int offset, Field<Integer> l) {
|
||||
addLimit((Number) offset, l);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addLimit(Number offset, Param<? extends Number> numberOfRows) {
|
||||
public final void addLimit(Number offset, Field<? extends Number> l) {
|
||||
getLimit().setOffset(offset);
|
||||
getLimit().setNumberOfRows(numberOfRows);
|
||||
getLimit().setLimit(l);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addLimit(Param<Integer> offset, int numberOfRows) {
|
||||
addLimit(offset, (Number) numberOfRows);
|
||||
public final void addLimit(Field<Integer> offset, int l) {
|
||||
addLimit(offset, (Number) l);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addLimit(Param<? extends Number> offset, Number numberOfRows) {
|
||||
public final void addLimit(Field<? extends Number> offset, Number l) {
|
||||
getLimit().setOffset(offset);
|
||||
getLimit().setNumberOfRows(numberOfRows);
|
||||
getLimit().setLimit(l);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addLimit(Param<? extends Number> offset, Param<? extends Number> numberOfRows) {
|
||||
public final void addLimit(Field<? extends Number> offset, Field<? extends Number> l) {
|
||||
getLimit().setOffset(offset);
|
||||
getLimit().setNumberOfRows(numberOfRows);
|
||||
getLimit().setLimit(l);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -4590,17 +4586,15 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
|
||||
|
||||
@Override
|
||||
public final Field<? extends Number> $limit() {
|
||||
return (Field<? extends Number>) getLimit().numberOfRows;
|
||||
return getLimit().limit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Select<R> $limit(Field<? extends Number> newLimit) {
|
||||
if ($limit() == newLimit)
|
||||
return this;
|
||||
|
||||
// [#5695] TODO: Support all types of Field!
|
||||
else
|
||||
return copy(s -> s.getLimit().setNumberOfRows((Param<?>) newLimit));
|
||||
return copy(s -> s.getLimit().setLimit(newLimit));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -4631,7 +4625,7 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
|
||||
|
||||
@Override
|
||||
public final Field<? extends Number> $offset() {
|
||||
return (Field<? extends Number>) getLimit().offset;
|
||||
return getLimit().offset;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -4641,7 +4635,7 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
|
||||
|
||||
// [#5695] TODO: Support all types of Field!
|
||||
else
|
||||
return copy(s -> s.getLimit().setOffset((Param<?>) newOffset));
|
||||
return copy(s -> s.getLimit().setOffset(newOffset));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -52,7 +52,6 @@ import org.jooq.Field;
|
||||
import org.jooq.Name;
|
||||
import org.jooq.Operator;
|
||||
import org.jooq.OrderField;
|
||||
import org.jooq.Param;
|
||||
import org.jooq.QueryPart;
|
||||
import org.jooq.Record;
|
||||
import org.jooq.Record1;
|
||||
@ -666,14 +665,14 @@ final class UpdateImpl<R extends Record>
|
||||
}
|
||||
|
||||
@Override
|
||||
public final UpdateImpl<R> limit(Number numberOfRows) {
|
||||
getDelegate().addLimit(numberOfRows);
|
||||
public final UpdateImpl<R> limit(Number limit) {
|
||||
getDelegate().addLimit(limit);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final UpdateImpl<R> limit(Param<? extends Number> numberOfRows) {
|
||||
getDelegate().addLimit(numberOfRows);
|
||||
public final UpdateImpl<R> limit(Field<? extends Number> limit) {
|
||||
getDelegate().addLimit(limit);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@ -108,7 +108,6 @@ import org.jooq.Context;
|
||||
import org.jooq.Field;
|
||||
import org.jooq.Operator;
|
||||
import org.jooq.OrderField;
|
||||
import org.jooq.Param;
|
||||
// ...
|
||||
import org.jooq.Record;
|
||||
import org.jooq.Record1;
|
||||
@ -197,7 +196,7 @@ final class UpdateQueryImpl<R extends Record> extends AbstractStoreQuery<R> impl
|
||||
private Row multiValue;
|
||||
private Select<?> multiSelect;
|
||||
private final SortFieldList orderBy;
|
||||
private Param<? extends Number> limit;
|
||||
private Field<? extends Number> limit;
|
||||
|
||||
UpdateQueryImpl(Configuration configuration, WithImpl with, Table<R> table) {
|
||||
super(configuration, with, table);
|
||||
@ -519,13 +518,13 @@ final class UpdateQueryImpl<R extends Record> extends AbstractStoreQuery<R> impl
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addLimit(Number numberOfRows) {
|
||||
addLimit(DSL.val(numberOfRows));
|
||||
public final void addLimit(Number l) {
|
||||
addLimit(DSL.val(l));
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addLimit(Param<? extends Number> numberOfRows) {
|
||||
limit = numberOfRows;
|
||||
public final void addLimit(Field<? extends Number> l) {
|
||||
limit = l;
|
||||
}
|
||||
|
||||
final Condition getWhere() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user