Bitwise Functions

bitwise_and(x, y) [same as input]

Returns the bitwise AND of x and y in 2’s complement representation. Corresponds to Spark’s operator &. Supported types are: TINYINT, SMALLINT, INTEGER and BIGINT.

bitwise_not(x) [same as input]

Returns the bitwise NOT of x in 2’s complement representation. Corresponds to Spark’s operator ~. Supported types are: TINYINT, SMALLINT, INTEGER and BIGINT.

bitwise_or(x, y) [same as input]

Returns the bitwise OR of x and y in 2’s complement representation. Corresponds to Spark’s operator |. Supported types are: TINYINT, SMALLINT, INTEGER and BIGINT.

bitwise_xor(x, y) [same as input]

Returns the bitwise exclusive OR of x and y in 2’s complement representation. Corresponds to Spark’s operator ^. Supported types are: TINYINT, SMALLINT, INTEGER and BIGINT.

bit_count(x) integer

Returns the number of bits that are set in the argument x as an unsigned 64-bit integer, or NULL if the argument is NULL. Supported types are: BOOLEAN, TINYINT, SMALLINT, INTEGER and BIGINT.

bit_get(x, pos) tinyint

Returns the value of the bit (0 or 1) at the specified position. Supported types of x are: TINYINT, SMALLINT, INTEGER and BIGINT. Supported types of pos are: INTEGER. The positions are numbered from right to left, starting at zero. The value of ‘pos’ argument must be between 0 and number of bits in ‘x’ - 1. Invalid ‘pos’ values result in an error.

shiftleft(x, n) [same as x]

Returns x bitwise left shifted by n bits. Supported types for ‘x’ are INTEGER and BIGINT.

shiftright(x, n) [same as x]

Returns x bitwise right shifted by n bits. Supported types for ‘x’ are INTEGER and BIGINT.