| |
- bitxor(target_arg, bit_mask_arg)
- DESCRIPTION:
Function performs a bitwise XOR operation on the binary representation of the
two input arguments.
Function takes two bit patterns of equal length and performs the exclusive OR
operation on each pair of corresponding bits as follows:
* The result in each position is 1 if the two bits are different.
* The result in each position is 0 if the two bits are same.
If the target_arg and bit_mask_arg arguments differ in length, the arguments
are processed as follows:
* The target_arg and bit_mask_arg arguments are aligned on their least
significant byte/bit.
* The smaller argument is padded with zeros to the left until it becomes
the same size as the larger argument.
PARAMETERS:
target_arg:
Required Argument.
Specifies a ColumnExpression of an integer or byte column or a numeric or byte
literal value.
If the argument is NULL, the function returns NULL.
Format of a ColumnExpression of a column: '<dataframe>.<dataframe_column>.expression'.
Supported SQL column types: BYTEINT, SMALLINT, INTEGER, BIGINT, and VARBYTE(n)
bit_mask_arg:
Required Argument.
Specifies a ColumnExpression of an integer or byte column or a numeric or byte
literal value.
If the argument is NULL, the function returns NULL.
Format of a ColumnExpression of a column: '<dataframe>.<dataframe_column>.expression'.
Argument Type Rules and Support:
The data type of the bit_mask_arg parameter varies depending upon the data type
of the target_arg parameter. The following table shows the supported column/literal
value types for target_arg and bit_mask_arg parameters and their permitted
combinations:
===============================================
| target_arg type | bit_mask_arg type |
===============================================
| BYTEINT | BYTE(1) or BYTEINT |
| SMALLINT | BYTE(2) or SMALLINT |
| INTEGER | BYTE(4) or INTEGER |
| BIGINT | BYTE(8) or BIGINT |
| VARBYTE(n) | VARBYTE(n) |
===============================================
NOTE:
Function accepts positional arguments only.
EXAMPLES:
# Load the data to run the example.
>>> load_example_data("dataframe", "bytes_table")
>>>
# Create a DataFrame on 'bytes_table' table.
>>> bytes_table = DataFrame("bytes_table")
>>> bytes_table
byte_col varbyte_col blob_col
id_col
2 b'61' b'616263643132' b'6162636431323233'
1 b'62' b'62717765' b'3331363136323633'
0 b'63' b'627A7863' b'3330363136323633'
>>>
# Example performs bitxor operation on "id" and "byte_col" columns.
# Import func from sqlalchemy to execute bitxor function.
>>> from sqlalchemy import func
# Create a sqlalchemy Function object.
# Note: Function name case does not matter. We can use the function name in
# lower case, upper case or mixed case.
>>> bit_byte_func_ = func.BITXOR(bytes_table.id_col.expression, bytes_table.byte_col.expression)
>>>
# Pass the Function object as input to DataFrame.assign().
>>> df = bytes_table.assign(bitxor_int_byte_= bit_byte_func_)
>>> print(df)
byte_col varbyte_col blob_col bitxor_int_byte_
id_col
2 b'61' b'616263643132' b'6162636431323233' 1627389954
1 b'62' b'62717765' b'3331363136323633' 1644167169
0 b'63' b'627A7863' b'3330363136323633' 1660944384
>>>
|