diff --git a/jOOQ/src/main/java/org/jooq/Field.java b/jOOQ/src/main/java/org/jooq/Field.java index c2c4c37305..37c8185606 100644 --- a/jOOQ/src/main/java/org/jooq/Field.java +++ b/jOOQ/src/main/java/org/jooq/Field.java @@ -1196,7 +1196,7 @@ extends Field bitOr(Field arg2); /** - * The BIT_X_NOR operator. + * The BIT_XNOR operator. * * @param arg2 is wrapped as {@link #val(Object)}. */ @@ -1205,7 +1205,7 @@ extends Field bitXNor(T arg2); /** - * The BIT_X_NOR operator. + * The BIT_XNOR operator. */ @NotNull @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) diff --git a/jOOQ/src/main/java/org/jooq/impl/BitXNor.java b/jOOQ/src/main/java/org/jooq/impl/BitXNor.java index 90a346c466..19fece9f02 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BitXNor.java +++ b/jOOQ/src/main/java/org/jooq/impl/BitXNor.java @@ -80,7 +80,7 @@ implements Field arg2 ) { super( - N_BIT_X_NOR, + N_BIT_XNOR, allNotNull((DataType) dataType(INTEGER, arg1, false), arg1, arg2) ); diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 70ad3b16df..370b262ecb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -16398,7 +16398,7 @@ public class DSL { } /** - * The BIT_X_NOR function. + * The BIT_XNOR function. * * @param arg1 is wrapped as {@link #val(Object)}. * @param arg2 is wrapped as {@link #val(Object)}. @@ -16410,7 +16410,7 @@ public class DSL { } /** - * The BIT_X_NOR function. + * The BIT_XNOR function. * * @param arg1 is wrapped as {@link #val(Object)}. */ @@ -16421,7 +16421,7 @@ public class DSL { } /** - * The BIT_X_NOR function. + * The BIT_XNOR function. * * @param arg2 is wrapped as {@link #val(Object)}. */ @@ -16432,7 +16432,7 @@ public class DSL { } /** - * The BIT_X_NOR function. + * The BIT_XNOR function. */ @NotNull @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) @@ -20319,6 +20319,39 @@ public class DSL { return new BitXorAgg<>(value); } + /** + * The BIT_NAND_AGG function. + *

+ * Calculate the bitwise NAND aggregate value. + */ + @NotNull + @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) + public static AggregateFunction bitNandAgg(Field value) { + return new BitNandAgg<>(value); + } + + /** + * The BIT_NOR_AGG function. + *

+ * Calculate the bitwise NOR aggregate value. + */ + @NotNull + @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) + public static AggregateFunction bitNorAgg(Field value) { + return new BitNorAgg<>(value); + } + + /** + * The BIT_XNOR_AGG function. + *

+ * Calculate the bitwise XNOR aggregate value. + */ + @NotNull + @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) + public static AggregateFunction bitXNorAgg(Field value) { + return new BitXNorAgg<>(value); + } + /** * The BOOL_AND function. */ diff --git a/jOOQ/src/main/java/org/jooq/impl/Names.java b/jOOQ/src/main/java/org/jooq/impl/Names.java index 5f3909243e..e09ca914c4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Names.java +++ b/jOOQ/src/main/java/org/jooq/impl/Names.java @@ -94,7 +94,7 @@ final class Names { static final Name N_BIT_NOT = systemName("bit_not"); static final Name N_BIT_OR = systemName("bit_or"); static final Name N_BIT_XOR = systemName("bit_xor"); - static final Name N_BIT_X_NOR = systemName("bit_xnor"); + static final Name N_BIT_XNOR = systemName("bit_xnor"); static final Name N_BOOLAND_AGG = systemName("booland_agg"); static final Name N_BOOLOR_AGG = systemName("boolor_agg"); static final Name N_BYTEA = systemName("bytea"); @@ -351,7 +351,10 @@ final class Names { static final Name N_BIT_AND_AGG = systemName("bit_and_agg"); static final Name N_BIT_COUNT = systemName("bit_count"); static final Name N_BIT_LENGTH = systemName("bit_length"); + static final Name N_BIT_NAND_AGG = systemName("bit_nand_agg"); + static final Name N_BIT_NOR_AGG = systemName("bit_nor_agg"); static final Name N_BIT_OR_AGG = systemName("bit_or_agg"); + static final Name N_BIT_XNOR_AGG = systemName("bit_xnor_agg"); static final Name N_BIT_XOR_AGG = systemName("bit_xor_agg"); static final Name N_BOOL_AND = systemName("bool_and"); static final Name N_BOOL_OR = systemName("bool_or"); @@ -434,7 +437,7 @@ final class Names { static final Name N_RPAD = systemName("rpad"); static final Name N_RTRIM = systemName("rtrim"); static final Name N_SIGN = systemName("sign"); - static final Name N_SIGNAL_SQL_STATE = systemName("signal_sql_state"); + static final Name N_SIGNAL_SQLSTATE = systemName("signal_sqlstate"); static final Name N_SIN = systemName("sin"); static final Name N_SINH = systemName("sinh"); static final Name N_SPACE = systemName("space"); diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 4c090b4164..2e04da0953 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -94,11 +94,14 @@ import static org.jooq.impl.DSL.bitAndAgg; import static org.jooq.impl.DSL.bitCount; import static org.jooq.impl.DSL.bitLength; import static org.jooq.impl.DSL.bitNand; +import static org.jooq.impl.DSL.bitNandAgg; import static org.jooq.impl.DSL.bitNor; +import static org.jooq.impl.DSL.bitNorAgg; import static org.jooq.impl.DSL.bitNot; import static org.jooq.impl.DSL.bitOr; import static org.jooq.impl.DSL.bitOrAgg; import static org.jooq.impl.DSL.bitXNor; +import static org.jooq.impl.DSL.bitXNorAgg; import static org.jooq.impl.DSL.bitXor; import static org.jooq.impl.DSL.bitXorAgg; import static org.jooq.impl.DSL.boolOr; @@ -8985,9 +8988,18 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { return bitAnd((Field) x, (Field) y); } - else if (parseKeywordIf("BIT_NAND") || parseKeywordIf("BITNAND") || parseKeywordIf("BIN_NAND")) { + else if (parseKeywordIf("BIT_NAND") || + parseKeywordIf("BITNAND") || + parseKeywordIf("BIN_NAND") || + (agg = parseKeywordIf("BIT_NAND_AGG")) || + (agg = parseKeywordIf("BITNAND_AGG")) || + (agg = parseKeywordIf("BIN_NAND_AGG"))) { parse('('); Field x = toField(parseNumericOp()); + + if (agg && parse(')') || parseIf(')')) + return parseAggregateFunctionIf(false, bitNandAgg((Field) x)); + parse(','); Field y = toField(parseNumericOp()); parse(')'); @@ -9012,9 +9024,18 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { return bitOr((Field) x, (Field) y); } - else if (parseKeywordIf("BIT_NOR") || parseKeywordIf("BITNOR") || parseKeywordIf("BIN_NOR")) { + else if (parseKeywordIf("BIT_NOR") || + parseKeywordIf("BITNOR") || + parseKeywordIf("BIN_NOR") || + (agg = parseKeywordIf("BIT_NOR_AGG")) || + (agg = parseKeywordIf("BITNOR_AGG")) || + (agg = parseKeywordIf("BIN_NOR_AGG"))) { parse('('); Field x = toField(parseNumericOp()); + + if (agg && parse(')') || parseIf(')')) + return parseAggregateFunctionIf(false, bitNorAgg((Field) x)); + parse(','); Field y = toField(parseNumericOp()); parse(')'); @@ -9039,9 +9060,18 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { return bitXor((Field) x, (Field) y); } - else if (parseKeywordIf("BIT_XNOR") || parseKeywordIf("BITXNOR") || parseKeywordIf("BIN_XNOR")) { + else if (parseKeywordIf("BIT_XNOR") || + parseKeywordIf("BITXNOR") || + parseKeywordIf("BIN_XNOR") || + (agg = parseKeywordIf("BIT_XNOR_AGG")) || + (agg = parseKeywordIf("BITXNOR_AGG")) || + (agg = parseKeywordIf("BIN_XNOR_AGG"))) { parse('('); Field x = toField(parseNumericOp()); + + if (agg && parse(')') || parseIf(')')) + return parseAggregateFunctionIf(false, bitXNorAgg((Field) x)); + parse(','); Field y = toField(parseNumericOp()); parse(')'); diff --git a/jOOQ/src/main/java/org/jooq/impl/QOM.java b/jOOQ/src/main/java/org/jooq/impl/QOM.java index 4bd7b77b24..f928db432a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QOM.java +++ b/jOOQ/src/main/java/org/jooq/impl/QOM.java @@ -4663,6 +4663,51 @@ public final class QOM { @NotNull BitXorAgg $value(Field value); } + /** + * The BIT NAND AGG function. + *

+ * Calculate the bitwise NAND aggregate value. + */ + public /*sealed*/ interface BitNandAgg + extends + org.jooq.AggregateFunction + //permits + // BitNandAgg + { + @NotNull Field $value(); + @NotNull BitNandAgg $value(Field value); + } + + /** + * The BIT NOR AGG function. + *

+ * Calculate the bitwise NOR aggregate value. + */ + public /*sealed*/ interface BitNorAgg + extends + org.jooq.AggregateFunction + //permits + // BitNorAgg + { + @NotNull Field $value(); + @NotNull BitNorAgg $value(Field value); + } + + /** + * The BIT X NOR AGG function. + *

+ * Calculate the bitwise XNOR aggregate value. + */ + public /*sealed*/ interface BitXNorAgg + extends + org.jooq.AggregateFunction + //permits + // BitXNorAgg + { + @NotNull Field $value(); + @NotNull BitXNorAgg $value(Field value); + } + /** * The BOOL AND function. */