diff --git a/jOOQ/src/main/java/org/jooq/Field.java b/jOOQ/src/main/java/org/jooq/Field.java index 5d697597a8..28b107da2b 100644 --- a/jOOQ/src/main/java/org/jooq/Field.java +++ b/jOOQ/src/main/java/org/jooq/Field.java @@ -740,6 +740,10 @@ extends @Support Condition isNotDistinctFrom(Field arg2); + // ------------------------------------------------------------------------- + // Numeric functions + // ------------------------------------------------------------------------- + /** * The BIT_AND operator. * diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java index 2214026b72..211080f08a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java @@ -375,6 +375,10 @@ abstract class AbstractField extends AbstractTypedNamed implements Field bitAnd(T arg2) { diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 376a60ecb9..1bba2f9a48 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -14525,28 +14525,6 @@ public class DSL { return CombinedCondition.of(operator, conditions); } - /** - * Create an exists condition. - *

- * EXISTS ([query]) - */ - @NotNull - @Support - public static Condition exists(Select query) { - return new ExistsCondition(query); - } - - /** - * Create a not exists condition. - *

- * NOT EXISTS ([query]) - */ - @NotNull - @Support - public static Condition notExists(Select query) { - return not(exists(query)); - } - /** * Invert a boolean value. *

@@ -15656,6 +15634,28 @@ public class DSL { + // ------------------------------------------------------------------------- + // Boolean functions + // ------------------------------------------------------------------------- + + /** + * The EXISTS function. + */ + @NotNull + @Support + public static Condition exists(Select query) { + return new Exists(query); + } + + /** + * The NOT EXISTS function. + */ + @NotNull + @Support + public static Condition notExists(Select query) { + return not(exists(query)); + } + /** * The NOT function. */ diff --git a/jOOQ/src/main/java/org/jooq/impl/ExistsCondition.java b/jOOQ/src/main/java/org/jooq/impl/Exists.java similarity index 51% rename from jOOQ/src/main/java/org/jooq/impl/ExistsCondition.java rename to jOOQ/src/main/java/org/jooq/impl/Exists.java index f54e351cd2..981f31b6c9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ExistsCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/Exists.java @@ -35,31 +35,54 @@ * * */ - package org.jooq.impl; -import static org.jooq.Clause.CONDITION; -import static org.jooq.Clause.CONDITION_EXISTS; -import static org.jooq.impl.Keywords.K_EXISTS; -import static org.jooq.impl.Tools.visitSubquery; +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 org.jooq.Clause; -import org.jooq.Context; -import org.jooq.Select; /** - * @author Lukas Eder + * The EXISTS statement. */ -final class ExistsCondition extends AbstractCondition { +@SuppressWarnings({ "rawtypes", "unused" }) +final class Exists +extends + AbstractCondition +{ - private static final Clause[] CLAUSES_EXISTS = { CONDITION, CONDITION_EXISTS }; + private final Select query; - private final Select query; + Exists( + Select query + ) { - ExistsCondition(Select query) { this.query = query; } + // ------------------------------------------------------------------------- + // XXX: QueryPart API + // ------------------------------------------------------------------------- + + + + private static final Clause[] CLAUSES_EXISTS = { CONDITION, CONDITION_EXISTS }; + @Override final boolean isNullable() { return false; @@ -82,8 +105,20 @@ final class ExistsCondition extends AbstractCondition { } } + + + // ------------------------------------------------------------------------- + // The Object API + // ------------------------------------------------------------------------- + @Override - public final Clause[] clauses(Context ctx) { - return CLAUSES_EXISTS; + public boolean equals(Object that) { + if (that instanceof Exists) { + return + StringUtils.equals(query, ((Exists) that).query) + ; + } + else + return super.equals(that); } }