[jOOQ/jOOQ#14581] Add support for BIT_SET or BIT_GET functions

This commit is contained in:
Lukas Eder 2023-02-07 10:37:02 +01:00
parent c04506e89d
commit 99ade22a1f
3 changed files with 132 additions and 0 deletions

View File

@ -16471,6 +16471,49 @@ public class DSL {
return new BitCount(value);
}
/**
* The <code>BIT_GET</code> function.
*
* @param value is wrapped as {@link #val(Object)}.
* @param bit is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
public static <T extends Number> Field<T> bitGet(T value, int bit) {
return new BitGet<>(Tools.field(value), Tools.field(bit));
}
/**
* The <code>BIT_GET</code> function.
*
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
public static <T extends Number> Field<T> bitGet(T value, Field<? extends Number> bit) {
return new BitGet<>(Tools.field(value), bit);
}
/**
* The <code>BIT_GET</code> function.
*
* @param bit is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
public static <T extends Number> Field<T> bitGet(Field<T> value, int bit) {
return new BitGet<>(value, Tools.field(bit));
}
/**
* The <code>BIT_GET</code> function.
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
public static <T extends Number> Field<T> bitGet(Field<T> value, Field<? extends Number> bit) {
return new BitGet<>(value, bit);
}
/**
* The <code>BIT_NAND</code> function.
*
@ -16620,6 +16663,49 @@ public class DSL {
return new BitOr<>(arg1, arg2);
}
/**
* The <code>BIT_SET</code> function.
*
* @param value is wrapped as {@link #val(Object)}.
* @param bit is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
public static <T extends Number> Field<T> bitSet(T value, int bit) {
return new BitSet<>(Tools.field(value), Tools.field(bit));
}
/**
* The <code>BIT_SET</code> function.
*
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
public static <T extends Number> Field<T> bitSet(T value, Field<? extends Number> bit) {
return new BitSet<>(Tools.field(value), bit);
}
/**
* The <code>BIT_SET</code> function.
*
* @param bit is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
public static <T extends Number> Field<T> bitSet(Field<T> value, int bit) {
return new BitSet<>(value, Tools.field(bit));
}
/**
* The <code>BIT_SET</code> function.
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
public static <T extends Number> Field<T> bitSet(Field<T> value, Field<? extends Number> bit) {
return new BitSet<>(value, bit);
}
/**
* The <code>BIT_XNOR</code> function.
*

View File

@ -327,6 +327,7 @@ final class Names {
static final Name N_BIN_SHR = systemName("bin_shr");
static final Name N_BIN_XOR = systemName("bin_xor");
static final Name N_BITAND = systemName("bitand");
static final Name N_BITGET = systemName("bitget");
static final Name N_BITNOT = systemName("bitnot");
static final Name N_BITOR = systemName("bitor");
static final Name N_BITSHIFTLEFT = systemName("bitshiftleft");
@ -334,7 +335,9 @@ final class Names {
static final Name N_BITXOR = systemName("bitxor");
static final Name N_BIT_AND = systemName("bit_and");
static final Name N_BIT_AND_AGG = systemName("bit_and_agg");
static final Name N_BIT_CHECK = systemName("bit_check");
static final Name N_BIT_COUNT = systemName("bit_count");
static final Name N_BIT_GET = systemName("bit_get");
static final Name N_BIT_LENGTH = systemName("bit_length");
static final Name N_BIT_LSHIFT = systemName("bit_lshift");
static final Name N_BIT_NAND_AGG = systemName("bit_nand_agg");
@ -343,6 +346,7 @@ final class Names {
static final Name N_BIT_OR = systemName("bit_or");
static final Name N_BIT_OR_AGG = systemName("bit_or_agg");
static final Name N_BIT_RSHIFT = systemName("bit_rshift");
static final Name N_BIT_SET = systemName("bit_set");
static final Name N_BIT_XNOR_AGG = systemName("bit_xnor_agg");
static final Name N_BIT_XOR = systemName("bit_xor");
static final Name N_BIT_XOR_AGG = systemName("bit_xor_agg");
@ -384,6 +388,8 @@ final class Names {
static final Name N_GENERATE_UUID = systemName("generate_uuid");
static final Name N_GENGUID = systemName("genguid");
static final Name N_GEN_RANDOM_UUID = systemName("gen_random_uuid");
static final Name N_GETBIT = systemName("getbit");
static final Name N_GET_BIT = systemName("get_bit");
static final Name N_GOTO = systemName("goto");
static final Name N_HEX = systemName("hex");
static final Name N_IFNULL = systemName("ifnull");
@ -464,6 +470,8 @@ final class Names {
static final Name N_RPAD = systemName("rpad");
static final Name N_RSHIFT = systemName("rshift");
static final Name N_RTRIM = systemName("rtrim");
static final Name N_SETBIT = systemName("setbit");
static final Name N_SET_BIT = systemName("set_bit");
static final Name N_SGN = systemName("sgn");
static final Name N_SHIFTLEFT = systemName("shiftleft");
static final Name N_SHIFTRIGHT = systemName("shiftright");

View File

@ -3795,6 +3795,25 @@ public final class QOM {
@NotNull default BitCount $value(Field<? extends Number> newValue) { return $arg1(newValue); }
}
/**
* The <code>BIT GET</code> function.
*/
public /*sealed*/ interface BitGet<T extends Number>
extends
UReturnsNullOnNullInput,
UOperator2<Field<T>, Field<? extends Number>, BitGet<T>>,
org.jooq.Field<T>
//permits
// BitGet
{
@NotNull default Field<T> $value() { return $arg1(); }
@CheckReturnValue
@NotNull default BitGet<T> $value(Field<T> newValue) { return $arg1(newValue); }
@NotNull default Field<? extends Number> $bit() { return $arg2(); }
@CheckReturnValue
@NotNull default BitGet<T> $bit(Field<? extends Number> newBit) { return $arg2(newBit); }
}
/**
* The <code>BIT NAND</code> operator.
*/
@ -3843,6 +3862,25 @@ public final class QOM {
// BitOr
{}
/**
* The <code>BIT SET</code> function.
*/
public /*sealed*/ interface BitSet<T extends Number>
extends
UReturnsNullOnNullInput,
UOperator2<Field<T>, Field<? extends Number>, BitSet<T>>,
org.jooq.Field<T>
//permits
// BitSet
{
@NotNull default Field<T> $value() { return $arg1(); }
@CheckReturnValue
@NotNull default BitSet<T> $value(Field<T> newValue) { return $arg1(newValue); }
@NotNull default Field<? extends Number> $bit() { return $arg2(); }
@CheckReturnValue
@NotNull default BitSet<T> $bit(Field<? extends Number> newBit) { return $arg2(newBit); }
}
/**
* The <code>BIT X NOR</code> operator.
*/