[jOOQ/jOOQ#10370] General exception error has occurred in the optimizer in Informix code generation, when generating only one schema and <includeSystemIndexes/> is turned on

This commit is contained in:
Lukas Eder 2020-07-08 15:35:13 +02:00
parent bc98ddb7f7
commit af835dbd25
2 changed files with 9 additions and 2 deletions

View File

@ -94,11 +94,17 @@ final class RowCondition extends AbstractCondition {
private final Row left;
private final Row right;
private final Comparator comparator;
private final boolean forceEmulation;
RowCondition(Row left, Row right, Comparator comparator) {
this(left, right, comparator, false);
}
RowCondition(Row left, Row right, Comparator comparator, boolean forceEmulation) {
this.left = left;
this.right = right;
this.comparator = comparator;
this.forceEmulation = forceEmulation;
}
@Override
@ -114,7 +120,7 @@ final class RowCondition extends AbstractCondition {
private final QueryPartInternal delegate(Configuration configuration) {
// Regular comparison predicate emulation
if ((comparator == EQUALS || comparator == NOT_EQUALS) &&
EMULATE_EQ_AND_NE.contains(configuration.dialect())) {
(forceEmulation || EMULATE_EQ_AND_NE.contains(configuration.dialect()))) {
Field<?>[] leftFields = left.fields();
Field<?>[] rightFields = right.fields();
@ -133,7 +139,7 @@ final class RowCondition extends AbstractCondition {
// Ordering comparison predicate emulation
else if ((comparator == GREATER || comparator == GREATER_OR_EQUAL || comparator == LESS || comparator == LESS_OR_EQUAL) &&
EMULATE_RANGES.contains(configuration.dialect())) {
(forceEmulation || EMULATE_RANGES.contains(configuration.dialect()))) {
// The order component of the comparator (stripping the equal component)
Comparator order

View File

@ -48,6 +48,7 @@ import static org.jooq.Comparator.NOT_IN;
// ...
import static org.jooq.SQLDialect.H2;
import static org.jooq.SQLDialect.HSQLDB;
// ...
import static org.jooq.SQLDialect.MARIADB;
import static org.jooq.SQLDialect.MYSQL;
// ...