| |
- shiftright(target_arg, num_bits_arg)
- DESCRIPTION:
Function returns the expression target_arg shifted by the specified
number of bits (num_bits_arg) to the right. The bits in the least significant
positions are lost, and the bits in the most significant positions are
filled with zeros.
Following rules apply to the function:
* If num_bits_arg is equal to zero, then the function returns target_arg
unchanged.
* If num_bits_arg is negative, then the function shifts the bits to the left
instead of the right.
* If target_arg and/or num_bits_arg are NULL, then the function returns NULL.
* The scope of the shift operation is bounded by the size of the target_arg
expression. Specifying a shift that is outside the range of target_arg
results in an SQL error.
PARAMETERS:
target_arg:
Required Argument.
Specifies a ColumnExpression of an integer or byte column or a numeric or byte
literal value.
Format of a ColumnExpression of a column: '<dataframe>.<dataframe_column>.expression'.
Supported SQL column types: BYTEINT, SMALLINT, INTEGER, BIGINT, and VARBYTE(n)
Note:
When operating against an integer value (BYTEINT, SMALLINT, INTEGER, or
BIGINT), shifting a bit into the most significant position will result in
the integer becoming negative. This is because all integers in Vantage are
signed integers.
num_bits_arg:
Required Argument.
Specifies a ColumnExpression of an integer column or an integer literal
indicating the number of bit positions to shift.
Format of a ColumnExpression of a column: '<dataframe>.<dataframe_column>.expression'.
Supported SQL column types: INTEGER
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 shifts values in "varbyte_col" column to right by 3 bits.
# Import func from sqlalchemy to execute shiftright function.
>>> from sqlalchemy import func
# Note: Function name case does not matter. We can use the function name in
# lower case, upper case or mixed case.
>>> df = bytes_table.assign(shiftright_varbyte_= func.shiftright(bytes_table.varbyte_col.expression, 3))
>>> print(df)
byte_col varbyte_col blob_col shiftright_varbyte_
id_col
0 b'63' b'627A7863' b'3330363136323633' b'C4F4F0C'
2 b'61' b'616263643132' b'6162636431323233' b'C2C4C6C8626'
1 b'62' b'62717765' b'3331363136323633' b'C4E2EEC'
>>>
|