[#5380] MySQL STRAIGHT_JOIN is not implemented correctly
This commit is contained in:
parent
6951508814
commit
7726050587
@ -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,
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user