diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 0fc603200a..4207db44af 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -14264,28 +14264,6 @@ public class DSL { return condition(Tools.field(value)); } - /** - * Create a condition from a boolean field. - *

- * Databases that support boolean data types can use boolean expressions - * as predicates or as columns interchangeably. This extends to any type - * of field, including functions. A Postgres example: - *

- *

-     * select 1 where texteq('a', 'a');
-     * 
- * - * @param field The boolean expression. - * @return A condition wrapping the boolean expression - */ - @NotNull - @Support - public static Condition condition(Field field) { - return field instanceof ConditionAsField - ? ((ConditionAsField) field).condition - : new FieldCondition(field); - } - /** * Create a condition from a map. *

@@ -19790,7 +19768,7 @@ public class DSL { /** * The FIELD function. *

- * Transform a condition into a boolean field. + * Wrap a condition in a boolean field. */ @NotNull @Support @@ -19798,6 +19776,25 @@ public class DSL { return condition instanceof FieldCondition ? ((FieldCondition) condition).field : new ConditionAsField(condition); } + /** + * The CONDITION function. + *

+ * Create a condition from a boolean field. + *

+ * Databases that support boolean data types can use boolean expressions + * as predicates or as columns interchangeably. This extends to any type + * of field, including functions. A Postgres example: + *

+ *

+     * select 1 where texteq('a', 'a');
+     * 
+ */ + @NotNull + @Support + public static Condition condition(Field field) { + return field instanceof ConditionAsField ? ((ConditionAsField) field).condition : new FieldCondition(field); + } + // ------------------------------------------------------------------------- // Aggregate functions // ------------------------------------------------------------------------- diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldCondition.java b/jOOQ/src/main/java/org/jooq/impl/FieldCondition.java index fd0fd6b3ce..59bd9217fb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FieldCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/FieldCondition.java @@ -37,24 +37,52 @@ */ package org.jooq.impl; -import static org.jooq.impl.DSL.inline; +import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; +import static org.jooq.impl.Keywords.*; +import static org.jooq.impl.Names.*; +import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; +import static org.jooq.impl.Tools.BooleanDataKey.*; +import static org.jooq.impl.Tools.DataExtendedKey.*; +import static org.jooq.impl.Tools.DataKey.*; +import static org.jooq.SQLDialect.*; + +import org.jooq.*; +import org.jooq.Record; +import org.jooq.conf.*; +import org.jooq.impl.*; +import org.jooq.tools.*; + +import java.util.*; +import java.util.function.*; +import java.util.stream.*; -import org.jooq.Clause; -import org.jooq.Context; -import org.jooq.Field; /** - * @author Lukas Eder + * The CONDITION statement. */ -final class FieldCondition extends AbstractCondition { - final Field field; +@SuppressWarnings({ "rawtypes", "unchecked", "unused" }) +final class FieldCondition +extends + AbstractCondition +{ - FieldCondition(Field field) { - this.field = field; + final Field field; + + FieldCondition( + Field field + ) { + + this.field = nullSafeNotNull(field, BOOLEAN); } + // ------------------------------------------------------------------------- + // XXX: QueryPart API + // ------------------------------------------------------------------------- + @Override - public void accept(Context ctx) { + public final void accept(Context ctx) { switch (ctx.family()) { @@ -62,7 +90,6 @@ final class FieldCondition extends AbstractCondition { - // [#2485] Some of these don't work nicely, yet @@ -83,9 +110,29 @@ final class FieldCondition extends AbstractCondition { } } - @Override // Avoid AbstractCondition implementation - public final Clause[] clauses(Context ctx) { - return null; - } + + + + + + + + + + + // ------------------------------------------------------------------------- + // The Object API + // ------------------------------------------------------------------------- + + @Override + public boolean equals(Object that) { + if (that instanceof FieldCondition) { + return + StringUtils.equals(field, ((FieldCondition) that).field) + ; + } + else + return super.equals(that); + } }