diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractCondition.java b/jOOQ/src/main/java/org/jooq/impl/AbstractCondition.java index aa4749234d..a40d3ce3a6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractCondition.java @@ -64,15 +64,6 @@ abstract class AbstractCondition extends AbstractField implements Condi super(DSL.name("condition"), SQLDataType.BOOLEAN); } - /** - * [#10179] Subclasses may override this method to indicate that the - * condition may produce TRUE, FALSE, or - * NULL. - */ - boolean isNullable() { - return true; - } - @Override public Clause[] clauses(Context ctx) { return CLAUSES; diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java index 53597bd8c4..52a56b6d52 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java @@ -121,6 +121,15 @@ implements // XXX: API (not implemented) // ------------------------------------------------------------------------ + /** + * [#10179] [#14665] Subclasses may override this method to indicate that + * the condition may produce TRUE, FALSE, or + * NULL. + */ + boolean isNullable() { + return true; + } + @Override public abstract void accept(Context ctx); diff --git a/jOOQ/src/main/java/org/jooq/impl/Exists.java b/jOOQ/src/main/java/org/jooq/impl/Exists.java index 831930af95..bac589c709 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Exists.java +++ b/jOOQ/src/main/java/org/jooq/impl/Exists.java @@ -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; diff --git a/jOOQ/src/main/java/org/jooq/impl/IsDistinctFrom.java b/jOOQ/src/main/java/org/jooq/impl/IsDistinctFrom.java index 65895d475c..12698edeb7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/IsDistinctFrom.java +++ b/jOOQ/src/main/java/org/jooq/impl/IsDistinctFrom.java @@ -88,6 +88,11 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- + @Override + final boolean isNullable() { + return false; + } + static final Set 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) { diff --git a/jOOQ/src/main/java/org/jooq/impl/IsNotDistinctFrom.java b/jOOQ/src/main/java/org/jooq/impl/IsNotDistinctFrom.java index 9f35351a72..e6f8e9b78b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/IsNotDistinctFrom.java +++ b/jOOQ/src/main/java/org/jooq/impl/IsNotDistinctFrom.java @@ -88,13 +88,13 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- - - @Override final boolean isNullable() { return false; } + + @Override public final void accept(Context ctx) { diff --git a/jOOQ/src/main/java/org/jooq/impl/IsNotNull.java b/jOOQ/src/main/java/org/jooq/impl/IsNotNull.java index 16c586b29f..3a86f6eef3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/IsNotNull.java +++ b/jOOQ/src/main/java/org/jooq/impl/IsNotNull.java @@ -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) { diff --git a/jOOQ/src/main/java/org/jooq/impl/IsNull.java b/jOOQ/src/main/java/org/jooq/impl/IsNull.java index ddb045e81a..38b2c451be 100644 --- a/jOOQ/src/main/java/org/jooq/impl/IsNull.java +++ b/jOOQ/src/main/java/org/jooq/impl/IsNull.java @@ -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) { diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONArray.java b/jOOQ/src/main/java/org/jooq/impl/JSONArray.java index 9c7c3a19c6..0a6a78330b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONArray.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONArray.java @@ -134,6 +134,11 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- + @Override + final boolean isNullable() { + return false; + } + @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java b/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java index 72264ce712..0ce20610fd 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java @@ -309,6 +309,8 @@ final class JSONEntryImpl extends AbstractQueryPart implements JSONEntry, + + @SuppressWarnings("unchecked") private static Field booleanCase(Field field) { return case_((Field) field).when(inline(true), inline("true")).when(inline(false), inline("false")); diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONObject.java b/jOOQ/src/main/java/org/jooq/impl/JSONObject.java index 99fc79276e..80d6f35466 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONObject.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONObject.java @@ -134,6 +134,11 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- + @Override + final boolean isNullable() { + return false; + } + @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONObjectAgg.java b/jOOQ/src/main/java/org/jooq/impl/JSONObjectAgg.java index 354f475029..b72a78b6b9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONObjectAgg.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONObjectAgg.java @@ -183,6 +183,11 @@ implements + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/NullCondition.java b/jOOQ/src/main/java/org/jooq/impl/NullCondition.java index 810ea02816..d412c4e4c5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/NullCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/NullCondition.java @@ -71,11 +71,6 @@ implements static final NullCondition INSTANCE = new NullCondition(); static final Set 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())