[#5380] MySQL STRAIGHT_JOIN is not implemented correctly

This commit is contained in:
lukaseder 2016-07-01 14:39:02 +02:00
parent 6951508814
commit 7726050587
3 changed files with 6 additions and 0 deletions

View File

@ -125,6 +125,7 @@ public enum Clause {
TABLE_JOIN_OUTER_APPLY,
TABLE_JOIN_SEMI_LEFT,
TABLE_JOIN_ANTI_LEFT,
TABLE_JOIN_STRAIGHT,
TABLE_JOIN_ON,
TABLE_JOIN_USING,
TABLE_JOIN_PARTITION_BY,

View File

@ -57,6 +57,7 @@ import static org.jooq.Clause.TABLE_JOIN_OUTER_LEFT;
import static org.jooq.Clause.TABLE_JOIN_OUTER_RIGHT;
import static org.jooq.Clause.TABLE_JOIN_PARTITION_BY;
import static org.jooq.Clause.TABLE_JOIN_SEMI_LEFT;
import static org.jooq.Clause.TABLE_JOIN_STRAIGHT;
import static org.jooq.Clause.TABLE_JOIN_USING;
import static org.jooq.JoinType.CROSS_APPLY;
import static org.jooq.JoinType.CROSS_JOIN;
@ -289,6 +290,7 @@ final class JoinTable extends AbstractTable<Record> implements TableOptionalOnSt
case OUTER_APPLY: return TABLE_JOIN_OUTER_APPLY;
case LEFT_SEMI_JOIN: return TABLE_JOIN_SEMI_LEFT;
case LEFT_ANTI_JOIN: return TABLE_JOIN_ANTI_LEFT;
case STRAIGHT_JOIN: return TABLE_JOIN_STRAIGHT;
default: throw new IllegalArgumentException("Bad join type: " + translatedType);
}
}

View File

@ -2069,6 +2069,7 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
switch (type) {
case JOIN:
case STRAIGHT_JOIN:
case LEFT_SEMI_JOIN:
case LEFT_ANTI_JOIN:
case FULL_OUTER_JOIN: {
@ -2099,6 +2100,8 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
joined = getFrom().get(index).join(table, type);
break;
default: throw new IllegalArgumentException("Bad join type: " + type);
}
getFrom().set(index, joined);