[#2530] Further predicate support
This commit is contained in:
parent
dd340e74be
commit
4e95b3fab1
@ -102,8 +102,12 @@ final class CompareCondition extends AbstractCondition implements LikeEscapeStep
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
if (isEmbeddable(field1) && isEmbeddable(field2))
|
||||
boolean field1Embeddable = isEmbeddable(field1);
|
||||
|
||||
if (field1Embeddable && isEmbeddable(field2))
|
||||
ctx.visit(row(embeddedFields(field1)).compare(comparator, embeddedFields(field2)));
|
||||
else if (field1Embeddable && field2 instanceof ScalarSubquery)
|
||||
ctx.visit(row(embeddedFields(field1)).compare(comparator, ((ScalarSubquery<?>) field2).query));
|
||||
else
|
||||
accept0(ctx);
|
||||
}
|
||||
|
||||
@ -41,6 +41,9 @@ package org.jooq.impl;
|
||||
|
||||
import static org.jooq.Clause.CONDITION;
|
||||
import static org.jooq.Clause.CONDITION_BETWEEN;
|
||||
import static org.jooq.impl.DSL.row;
|
||||
import static org.jooq.impl.Tools.embeddedFields;
|
||||
import static org.jooq.impl.Tools.isEmbeddable;
|
||||
|
||||
import org.jooq.Clause;
|
||||
import org.jooq.Comparator;
|
||||
@ -68,6 +71,13 @@ final class QuantifiedComparisonCondition extends AbstractCondition {
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
if (isEmbeddable(field))
|
||||
ctx.visit(row(embeddedFields(field)).compare(comparator, query));
|
||||
else
|
||||
accept0(ctx);
|
||||
}
|
||||
|
||||
private final void accept0(Context<?> ctx) {
|
||||
ctx.visit(field)
|
||||
.sql(' ')
|
||||
.visit(comparator.toKeyword())
|
||||
|
||||
Loading…
Reference in New Issue
Block a user