[jOOQ/jOOQ#9263] Revert change in ConditionAsField

This commit is contained in:
Knut Wannheden 2019-09-24 16:34:43 +02:00
parent 292605a12f
commit ced4f41703
2 changed files with 7 additions and 12 deletions

View File

@ -39,11 +39,9 @@ package org.jooq.impl;
import static org.jooq.impl.DSL.inline;
import static org.jooq.impl.DSL.not;
import static org.jooq.impl.SQLDataType.BOOLEAN;
import org.jooq.Condition;
import org.jooq.Context;
import org.jooq.DataType;
/**
* @author Lukas Eder
@ -57,11 +55,7 @@ final class ConditionAsField extends AbstractField<Boolean> {
final Condition condition;
ConditionAsField(Condition condition) {
this(condition, BOOLEAN);
}
ConditionAsField(Condition condition, DataType<Boolean> dataType) {
super(DSL.name(condition.toString()), dataType);
super(DSL.name(condition.toString()), SQLDataType.BOOLEAN);
this.condition = condition;
}
@ -86,9 +80,9 @@ final class ConditionAsField extends AbstractField<Boolean> {
case FIREBIRD:
// [#3206] Correct implementation of three-valued logic is important here
ctx.visit(DSL.when(condition, inline(true, getDataType()))
.when(not(condition), inline(false, getDataType()))
.otherwise(inline((Boolean) null, getDataType())));
ctx.visit(DSL.when(condition, inline(true))
.when(not(condition), inline(false))
.otherwise(inline((Boolean) null)));
break;
// These databases can inline predicates in column expression contexts

View File

@ -42,6 +42,7 @@ import static org.jooq.Clause.CONDITION_NOT;
import static org.jooq.impl.DSL.condition;
import static org.jooq.impl.DSL.not;
import static org.jooq.impl.Keywords.K_NOT;
import static org.jooq.impl.SQLDataType.BOOLEAN;
import org.jooq.Clause;
import org.jooq.Context;
@ -55,7 +56,7 @@ final class NotField extends AbstractField<Boolean> {
private final Field<Boolean> field;
NotField(Field<Boolean> field) {
super(DSL.name("not"), field.getDataType());
super(DSL.name("not"), BOOLEAN);
this.field = field;
}
@ -78,7 +79,7 @@ final class NotField extends AbstractField<Boolean> {
ctx.visit(new ConditionAsField(not(condition(field)), field.getDataType()));
ctx.visit(DSL.field(not(condition(field))));
break;