[jOOQ/jOOQ#14665] Non-boolean field emulation should be NOT NULL aware
This commit is contained in:
parent
a31028f9ee
commit
cb4e8ff49b
@ -64,15 +64,6 @@ abstract class AbstractCondition extends AbstractField<Boolean> implements Condi
|
||||
super(DSL.name("condition"), SQLDataType.BOOLEAN);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#10179] Subclasses may override this method to indicate that the
|
||||
* condition may produce <code>TRUE</code>, <code>FALSE</code>, or
|
||||
* <code>NULL</code>.
|
||||
*/
|
||||
boolean isNullable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Clause[] clauses(Context<?> ctx) {
|
||||
return CLAUSES;
|
||||
|
||||
@ -121,6 +121,15 @@ implements
|
||||
// XXX: API (not implemented)
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* [#10179] [#14665] Subclasses may override this method to indicate that
|
||||
* the condition may produce <code>TRUE</code>, <code>FALSE</code>, or
|
||||
* <code>NULL</code>.
|
||||
*/
|
||||
boolean isNullable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void accept(Context<?> ctx);
|
||||
|
||||
|
||||
@ -85,15 +85,15 @@ implements
|
||||
// XXX: QueryPart API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
private static final Clause[] CLAUSES_EXISTS = { Clause.CONDITION, Clause.CONDITION_EXISTS };
|
||||
|
||||
@Override
|
||||
final boolean isNullable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static final Clause[] CLAUSES_EXISTS = { Clause.CONDITION, Clause.CONDITION_EXISTS };
|
||||
|
||||
@Override
|
||||
final boolean parenthesised(Context<?> ctx) {
|
||||
return true;
|
||||
|
||||
@ -88,6 +88,11 @@ implements
|
||||
// XXX: QueryPart API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
final boolean isNullable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static final Set<SQLDialect> EMULATE_DISTINCT_PREDICATE = SQLDialect.supportedUntil(CUBRID, DERBY);
|
||||
@ -97,11 +102,6 @@ implements
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
final boolean isNullable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
|
||||
|
||||
@ -88,13 +88,13 @@ implements
|
||||
// XXX: QueryPart API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
final boolean isNullable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
|
||||
|
||||
@ -85,15 +85,15 @@ implements
|
||||
// XXX: QueryPart API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
private static final Clause[] CLAUSES = { Clause.CONDITION, Clause.CONDITION_IS_NOT_NULL };
|
||||
|
||||
@Override
|
||||
final boolean isNullable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static final Clause[] CLAUSES = { Clause.CONDITION, Clause.CONDITION_IS_NOT_NULL };
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
|
||||
|
||||
@ -85,15 +85,15 @@ implements
|
||||
// XXX: QueryPart API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
private static final Clause[] CLAUSES = { Clause.CONDITION, Clause.CONDITION_IS_NULL };
|
||||
|
||||
@Override
|
||||
final boolean isNullable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static final Clause[] CLAUSES = { Clause.CONDITION, Clause.CONDITION_IS_NULL };
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
|
||||
|
||||
@ -134,6 +134,11 @@ implements
|
||||
// XXX: QueryPart API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
final boolean isNullable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
|
||||
@ -309,6 +309,8 @@ final class JSONEntryImpl<T> extends AbstractQueryPart implements JSONEntry<T>,
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private static Field<String> booleanCase(Field<?> field) {
|
||||
return case_((Field<Boolean>) field).when(inline(true), inline("true")).when(inline(false), inline("false"));
|
||||
|
||||
@ -134,6 +134,11 @@ implements
|
||||
// XXX: QueryPart API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
final boolean isNullable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
|
||||
@ -183,6 +183,11 @@ implements
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -71,11 +71,6 @@ implements
|
||||
static final NullCondition INSTANCE = new NullCondition();
|
||||
static final Set<SQLDialect> NO_SUPPORT_UNTYPED_NULL = SQLDialect.supportedBy(DERBY, HSQLDB);
|
||||
|
||||
@Override
|
||||
final boolean isNullable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
final boolean parenthesised(Context<?> ctx) {
|
||||
return !NO_SUPPORT_UNTYPED_NULL.contains(ctx.dialect())
|
||||
|
||||
Loading…
Reference in New Issue
Block a user