diff --git a/jOOQ/src/main/java/org/jooq/Field.java b/jOOQ/src/main/java/org/jooq/Field.java
index e8820cc595..5d697597a8 100644
--- a/jOOQ/src/main/java/org/jooq/Field.java
+++ b/jOOQ/src/main/java/org/jooq/Field.java
@@ -676,6 +676,70 @@ extends
+ // -------------------------------------------------------------------------
+ // Boolean functions
+ // -------------------------------------------------------------------------
+
+ /**
+ * The IS_DISTINCT_FROM operator.
+ *
+ * The DISTINCT predicate allows for creating NULL safe comparisons where the two operands
+ * are tested for non-equality
+ */
+ @NotNull
+ @Support
+ Condition isDistinctFrom(T arg2);
+
+ /**
+ * The IS_DISTINCT_FROM operator.
+ *
+ * The DISTINCT predicate allows for creating NULL safe comparisons where the two operands
+ * are tested for non-equality
+ */
+ @NotNull
+ @Support
+ Condition isDistinctFrom(Select extends Record1
+ * The DISTINCT predicate allows for creating NULL safe comparisons where the two operands
+ * are tested for non-equality
+ */
+ @NotNull
+ @Support
+ Condition isDistinctFrom(Field
+ * The NOT DISTINCT predicate allows for creating NULL safe comparisons where the two
+ * operands are tested for equality
+ */
+ @NotNull
+ @Support
+ Condition isNotDistinctFrom(T arg2);
+
+ /**
+ * The
+ * The NOT DISTINCT predicate allows for creating NULL safe comparisons where the two
+ * operands are tested for equality
+ */
+ @NotNull
+ @Support
+ Condition isNotDistinctFrom(Select extends Record1
+ * The NOT DISTINCT predicate allows for creating NULL safe comparisons where the two
+ * operands are tested for equality
+ */
+ @NotNull
+ @Support
+ Condition isNotDistinctFrom(Field
- * In {@link SQLDialect#MYSQL} and {@link SQLDialect#MARIADB}, this can be
- * emulated through
- * In {@link SQLDialect#SQLITE}, this can be emulated through
- *
- * In databases that support
- * If this is not supported by the underlying database, jOOQ will render
- * this instead:
- * In {@link SQLDialect#MYSQL} and {@link SQLDialect#MARIADB}, this can be
- * emulated through
- * In {@link SQLDialect#SQLITE}, this can be emulated through
- *
- * In databases that support
- * If this is not supported by the underlying database, jOOQ will render
- * this instead:
- * In {@link SQLDialect#MYSQL} and {@link SQLDialect#MARIADB}, this can be
- * emulated through
- * In {@link SQLDialect#SQLITE}, this can be emulated through
- *
- * In databases that support
- * If this is not supported by the underlying database, jOOQ will render
- * this instead:
- * In {@link SQLDialect#MYSQL} and {@link SQLDialect#MARIADB}, this can be
- * emulated through
- * In {@link SQLDialect#SQLITE}, this can be emulated through
- *
- * In databases that support
- * If this is not supported by the underlying database, jOOQ will render
- * this instead:
- * In {@link SQLDialect#MYSQL} and {@link SQLDialect#MARIADB}, this can be
- * emulated through
- * In {@link SQLDialect#SQLITE}, this can be emulated through
- *
- * In databases that support
- * If this is not supported by the underlying database, jOOQ will render
- * this instead:
- * In {@link SQLDialect#MYSQL} and {@link SQLDialect#MARIADB}, this can be
- * emulated through
- * In {@link SQLDialect#SQLITE}, this can be emulated through
- *
- * In databases that support
- * If this is not supported by the underlying database, jOOQ will render
- * this instead: IS_DISTINCT_FROM operator.
+ * IS_NOT_DISTINCT_FROM operator.
+ * IS_NOT_DISTINCT_FROM operator.
+ * IS_NOT_DISTINCT_FROM operator.
+ * BIT_AND operator.
*
@@ -1259,190 +1323,6 @@ extends
@Support
Condition isNotNull();
- // ------------------------------------------------------------------------
- // DISTINCT predicates
- // ------------------------------------------------------------------------
-
- /**
- * Create a condition to check if this field is DISTINCT from
- * another value.
- *
- * not([this] <=> [value])
- * [this] IS NOT [value]
INTERSECT (see
- * {@link Select#intersect(Select)}, this predicate can be emulated as
- * follows:
- *
- * NOT EXISTS (SELECT [this] INTERSECT SELECT [value])
- *
SQL:
- * CASE WHEN [this] IS NULL AND [value] IS NULL THEN FALSE
- * WHEN [this] IS NULL AND [value] IS NOT NULL THEN TRUE
- * WHEN [this] IS NOT NULL AND [value] IS NULL THEN TRUE
- * WHEN [this] = [value] THEN FALSE
- * ELSE TRUE
- * END
- *
this is distinct from value
- */
- @NotNull
- @Support
- Condition isDistinctFrom(T value);
-
- /**
- * Create a condition to check if this field is DISTINCT from
- * another field.
- *
- * not([this] <=> [value])
- * [this] IS NOT [value]
INTERSECT (see
- * {@link Select#intersect(Select)}, this predicate can be emulated as
- * follows:
- *
- * NOT EXISTS (SELECT [this] INTERSECT SELECT [value])
- *
SQL:
- * CASE WHEN [this] IS NULL AND [field] IS NULL THEN FALSE
- * WHEN [this] IS NULL AND [field] IS NOT NULL THEN TRUE
- * WHEN [this] IS NOT NULL AND [field] IS NULL THEN TRUE
- * WHEN [this] = [field] THEN FALSE
- * ELSE TRUE
- * END
- *
this is distinct from field
- */
- @NotNull
- @Support
- Condition isDistinctFrom(FieldDISTINCT from
- * another field.
- *
- * not([this] <=> [value])
- * [this] IS NOT [value]
INTERSECT (see
- * {@link Select#intersect(Select)}, this predicate can be emulated as
- * follows:
- *
- * NOT EXISTS (SELECT [this] INTERSECT SELECT [value])
- *
SQL:
- * CASE WHEN [this] IS NULL AND [field] IS NULL THEN FALSE
- * WHEN [this] IS NULL AND [field] IS NOT NULL THEN TRUE
- * WHEN [this] IS NOT NULL AND [field] IS NULL THEN TRUE
- * WHEN [this] = [field] THEN FALSE
- * ELSE TRUE
- * END
- *
this is distinct from field
- */
- @NotNull
- @Support
- Condition isDistinctFrom(Select extends Record1NOT DISTINCT
- * from another value.
- *
- * [this] <=> [value]
- * [this] IS [value]
INTERSECT (see
- * {@link Select#intersect(Select)}, this predicate can be emulated as
- * follows:
- *
- * EXISTS (SELECT [this] INTERSECT SELECT [value])
- *
SQL:
- * CASE WHEN [this] IS NULL AND [value] IS NULL THEN TRUE
- * WHEN [this] IS NULL AND [value] IS NOT NULL THEN FALSE
- * WHEN [this] IS NOT NULL AND [value] IS NULL THEN FALSE
- * WHEN [this] = [value] THEN TRUE
- * ELSE FALSE
- * END
- *
this is not distinct from value
- */
- @NotNull
- @Support
- Condition isNotDistinctFrom(T value);
-
- /**
- * Create a condition to check if this field is NOT DISTINCT
- * from another field.
- *
- * [this] <=> [value]
- * [this] IS [value]
INTERSECT (see
- * {@link Select#intersect(Select)}, this predicate can be emulated as
- * follows:
- *
- * EXISTS (SELECT [this] INTERSECT SELECT [value])
- *
SQL:
- * CASE WHEN [this] IS NULL AND [field] IS NULL THEN TRUE
- * WHEN [this] IS NULL AND [field] IS NOT NULL THEN FALSE
- * WHEN [this] IS NOT NULL AND [field] IS NULL THEN FALSE
- * WHEN [this] = [value] THEN TRUE
- * ELSE FALSE
- * END
- *
this is not distinct from field
- */
- @NotNull
- @Support
- Condition isNotDistinctFrom(FieldNOT DISTINCT
- * from another field.
- *
- * [this] <=> [value]
- * [this] IS [value]
INTERSECT (see
- * {@link Select#intersect(Select)}, this predicate can be emulated as
- * follows:
- *
- * EXISTS (SELECT [this] INTERSECT SELECT [value])
- *
SQL:
- * CASE WHEN [this] IS NULL AND [field] IS NULL THEN TRUE
- * WHEN [this] IS NULL AND [field] IS NOT NULL THEN FALSE
- * WHEN [this] IS NOT NULL AND [field] IS NULL THEN FALSE
- * WHEN [this] = [value] THEN TRUE
- * ELSE FALSE
- * END
- *
this is not distinct from field
- */
- @NotNull
- @Support
- Condition isNotDistinctFrom(Select extends Record1IS DISTINCT FROM statement.
*/
-final class IsDistinctFromIS NOT DISTINCT FROM statement.
+ */
+@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
+final class IsNotDistinctFrom