[#3577] Don't render "empty" OFFSET 0 clauses

This commit is contained in:
Lukas Eder 2014-08-22 10:20:00 +02:00
parent e7b80c4672
commit 042bf4fcef
3 changed files with 34 additions and 19 deletions

View File

@ -568,6 +568,7 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, UU, I, IPK, T7
// Nested expressions
switch (dialect().family()) {
case H2:
/* [pro] xx
xxxx xxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxx xxxxxxxx xxxxxx xxxxxxxxxx xxxx xxxxxxxxxxx xxxxx xxxxxxx xx xxxxx xxxxx

View File

@ -65,8 +65,8 @@ class Limit extends AbstractQueryPart {
private Field<Integer> numberOfRows;
private Field<Integer> offset;
private Field<Integer> offsetOrZero = val(0);
private Field<Integer> offsetPlusOne = val(1);
private Field<Integer> offsetOrZero = inline(0);
private Field<Integer> offsetPlusOne = inline(1);
private boolean rendersParams;
@Override
@ -87,10 +87,13 @@ class Limit extends AbstractQueryPart {
context.castMode(NEVER)
.formatSeparator()
.keyword("limit")
.sql(" ").visit(numberOfRows)
.sql(" ").keyword("offset")
.sql(" ").visit(offsetOrZero)
.castMode(castMode);
.sql(" ").visit(numberOfRows);
if (!offsetZero())
context.sql(" ").keyword("offset")
.sql(" ").visit(offsetOrZero);
context.castMode(castMode);
break;
}
@ -161,10 +164,14 @@ class Limit extends AbstractQueryPart {
xx xxxx xxxx xx xxxxx xxxxxxx
xx xxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxx xxxxxxxxx x
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx
xxxxxx xxxxxxxxxxxxxxxxxxxxxx
xxxxxx xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xx xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxx xxxxxxxxxxxxxxxxxxxxxx
xxxxxx xxx
xxxxxxxxxxxxxxxxxxxxxxxx
xxxxxx xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
@ -176,10 +183,13 @@ class Limit extends AbstractQueryPart {
xxxx xxxxxxx x
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
xxxxxx xxxxxxxxxxxxxxxxxxxxxx
xxxxxx xxxxxxxxxxxxxxxxx xxxx
xxxxxx xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xx xxxxxxxxxxxxxxx
xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxx
xxxxxx xxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxx
x
@ -228,10 +238,14 @@ class Limit extends AbstractQueryPart {
context.castMode(NEVER)
.formatSeparator()
.keyword("limit")
.sql(" ").visit(numberOfRows)
.sql(" ").keyword("offset")
.sql(" ").visit(offsetOrZero)
.castMode(castMode);
.sql(" ").visit(numberOfRows);
if (!offsetZero())
context.sql(" ").keyword("offset")
.sql(" ").visit(offsetOrZero);
context.castMode(castMode);
break;
}

View File

@ -981,12 +981,12 @@ class SelectQueryImpl<R extends Record> extends AbstractSelect<R> implements Sel
@Override
public final void addLimit(int numberOfRows) {
addLimit(0, numberOfRows);
limit.setNumberOfRows(numberOfRows);
}
@Override
public final void addLimit(Param<Integer> numberOfRows) {
addLimit(0, numberOfRows);
limit.setNumberOfRows(numberOfRows);
}
@Override