diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java index 1f403190a8..06054d7d3e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java @@ -113,11 +113,11 @@ implements // ------------------------------------------------------------------------ /** - * [#10179] [#14665] Subclasses may override this method to indicate that - * the condition may produce TRUE, FALSE, or - * NULL. + * [#10179] [#11757] [#14665] Subclasses may override this method to + * indicate that the condition may produce TRUE, + * FALSE, or NULL. */ - boolean isNullable() { + /* non-final */ boolean isNullable() { return true; } @@ -129,10 +129,6 @@ implements return CLAUSES; } - /* non-final */ boolean isPossiblyNullable() { - return true; - } - /* non-final */ int projectionSize() { return 1; } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java b/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java index d233652f9e..103b5754c3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java @@ -91,7 +91,7 @@ abstract class AbstractParam extends AbstractParamX implements SimpleQuery } @Override - final boolean isPossiblyNullable() { + final boolean isNullable() { return !inline || value == null; } diff --git a/jOOQ/src/main/java/org/jooq/impl/Array.java b/jOOQ/src/main/java/org/jooq/impl/Array.java index a5803d5b01..697d1ee008 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Array.java +++ b/jOOQ/src/main/java/org/jooq/impl/Array.java @@ -66,7 +66,12 @@ import org.jooq.impl.QOM.UnmodifiableList; /** * @author Lukas Eder */ -final class Array extends AbstractField implements QOM.Array { +final class Array +extends + AbstractField +implements + QOM.Array +{ static final Set REQUIRES_CAST = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB); static final Set NO_SUPPORT_SQUARE_BRACKETS = SQLDialect.supportedBy(CLICKHOUSE); @@ -79,6 +84,15 @@ final class Array extends AbstractField implements QOM.Array { this.fields = new FieldsImpl<>(fields); } + // ------------------------------------------------------------------------- + // XXX: QueryPart API + // ------------------------------------------------------------------------- + + @Override + final boolean isNullable() { + return false; + } + @SuppressWarnings({ "rawtypes", "unchecked" }) private static DataType type(Collection> fields) { if (fields == null || fields.isEmpty()) diff --git a/jOOQ/src/main/java/org/jooq/impl/Coerce.java b/jOOQ/src/main/java/org/jooq/impl/Coerce.java index 0c922db7b2..8693388d5e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Coerce.java +++ b/jOOQ/src/main/java/org/jooq/impl/Coerce.java @@ -86,8 +86,8 @@ implements } @Override - boolean isPossiblyNullable() { - return field.isPossiblyNullable(); + final boolean isNullable() { + return field.isNullable(); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/Patterns.java b/jOOQ/src/main/java/org/jooq/impl/Patterns.java index 751ff8f0ea..c2b8444378 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Patterns.java +++ b/jOOQ/src/main/java/org/jooq/impl/Patterns.java @@ -2696,6 +2696,14 @@ package org.jooq.impl; + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index 2389ac316f..ec49744d23 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -4069,8 +4069,8 @@ final class Tools { return part instanceof SeparatedQueryPart && ((SeparatedQueryPart) part).rendersSeparator(); } - static final boolean isPossiblyNullable(Field f) { - return f instanceof AbstractField && ((AbstractField) f).isPossiblyNullable(); + static final boolean isNullable(Field f) { + return f instanceof AbstractField && ((AbstractField) f).isNullable(); } static final Val extractVal(Field field) {