Teradata Package for Python Function Reference - 17.00 - bitxor - Teradata Package for Python

Teradata® Package for Python Function Reference

Product
Teradata Package for Python
Release Number
17.00
Release Date
April 2021
Content Type
Programming Reference
Publication ID
B700-4008-070K
Language
English (United States)
 
 
bitxor

 
Functions
       
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
    >>>