Skip to content

Commit

Permalink
[#6019] Wrong SQL generated on Query.toString() on SELECT .. OFFSET (…
Browse files Browse the repository at this point in the history
…no LIMIT)
  • Loading branch information
lukaseder committed Mar 29, 2017
1 parent 80b2c6a commit 4e290a8
Showing 1 changed file with 35 additions and 48 deletions.
83 changes: 35 additions & 48 deletions jOOQ/src/main/java/org/jooq/impl/Limit.java
Expand Up @@ -103,49 +103,6 @@ public final void accept(Context<?> context) {




// [#4785] OFFSET cannot be without LIMIT
case H2:
case MARIADB:
case MYSQL:
case SQLITE: {
context.castMode(NEVER)
.formatSeparator()
.keyword("limit")
.sql(' ').visit(numberOfRowsOrMax);

if (!offsetZero())
context.formatSeparator()
.keyword("offset")
.sql(' ').visit(offsetOrZero);

context.castMode(castMode);

break;
}

// [#4785] OFFSET can be without LIMIT
case HSQLDB:
case POSTGRES:
case POSTGRES_9_3:
case POSTGRES_9_4:
case POSTGRES_9_5: {
context.castMode(NEVER);

if (!limitZero())
context.formatSeparator()
.keyword("limit")
.sql(' ').visit(numberOfRows);

if (!offsetZero())
context.formatSeparator()
.keyword("offset")
.sql(' ').visit(offsetOrZero);

context.castMode(castMode);

break;
}

// LIMIT [offset], [limit] supported by CUBRID
// -------------------------------------------
Expand Down Expand Up @@ -291,22 +248,52 @@ public final void accept(Context<?> context) {



// A default implementation is necessary for hashCode() and toString()
default: {

// [#4785] OFFSET cannot be without LIMIT
case H2:
case MARIADB:
case MYSQL:
case SQLITE: {
context.castMode(NEVER)
.formatSeparator()
.keyword("limit")
.sql(' ').visit(numberOfRows);

.sql(' ').visit(numberOfRowsOrMax);

if (!offsetZero())
context.sql(' ').keyword("offset")
context.formatSeparator()
.keyword("offset")
.sql(' ').visit(offsetOrZero);

context.castMode(castMode);

break;
}

// [#4785] OFFSET can be without LIMIT
case HSQLDB:
case POSTGRES:
case POSTGRES_9_3:
case POSTGRES_9_4:
case POSTGRES_9_5:
// No break

// A default implementation is necessary for hashCode() and toString()
default: {
context.castMode(NEVER);

if (!limitZero())
context.formatSeparator()
.keyword("limit")
.sql(' ').visit(numberOfRows);

if (!offsetZero())
context.formatSeparator()
.keyword("offset")
.sql(' ').visit(offsetOrZero);

context.castMode(castMode);
break;
}
}
}

Expand Down

0 comments on commit 4e290a8

Please sign in to comment.