HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/site-packages/mysqlx/__pycache__/result.cpython-311.pyc
�

�nc�x���dZddlZddlZddlZddlmZmZddlmZddlm	Z	ddl
mZmZd�Z
d	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�ZGd�d��ZGd�d��ZGd�d��ZGd�d��ZGd�de��ZGd�de��ZGd�d e��ZGd!�d"e��ZGd#�d$e��Z Gd%�d&e��Z!Gd'�d(e��Z"Gd)�d*��Z#Gd+�d,��Z$Gd-�d.��Z%Gd/�d0e%��Z&Gd1�d2e%��Z'Gd3�d4e'��Z(Gd5�d6e(��Z)Gd7�d8e'��Z*dS)9z%Implementation of the Result classes.�N)�datetime�	timedelta�)�MYSQL_CHARACTER_SETS)�DbDoc)�decode_from_bytes�
deprecatedc���t|��dkrdS|���tjkrt	|dd���S	tj|���|��S#t$r^}tj
�|���tj
�|�d�����Yd}~dSd}~wwxYw)Nr����hex)
�len�get_type�
ColumnType�STRINGr�ColumnProtoType�
converter_map�get_proto_type�KeyError�sys�stderr�write�encode)�column�payload�errs   �/D:\Python311\Lib\site-packages\mysqlx/result.py�
from_protobufr+s���
�7�|�|�q����t�
�����J�-�-�/� ���"���.�.�.���,�V�-B�-B�-D�-D�E�g�N�N�N�������
���C��"�"�"��
���G�N�N�5�1�1�3�4�4�4��t�t�t�t�t��������s�+A<�<
C$�AC�C$c��|dd�S)Nr��rs r�bytes_from_protobufr!:s���3�B�3�<��c�b�t|��dksJ�tjd|��dS)N�z<fr�r
�struct�unpackr s r�float_from_protobufr(?�0���w�<�<�1������=��w�'�'��*�*r"c�b�t|��dksJ�tjd|��dS)N�z<drr%r s r�double_from_protobufr,Dr)r"c�0�t|��dkrtd���d}d}d}|D]]}t|t��r|nt	|��}|dzdk}|dz}||z}||z}|r|||dzd�fcS|dz
}|dz
}�^td���)NrzPayload is empty��r�zPayload too short)r
�
ValueError�
isinstance�int�ord�EOFError)r�cur�i�shift�item�char�eos�cur_bitss        r�varint_from_protobuf_streamr=Is���
�7�|�|�q��-��+�,�,�,�
�C�	�A�
�E��	�	��!�$��,�,�;�t�t�#�d�)�)���d�{�q� ���$�;���U���	�X�
���	)��g�c�A�g�i�i�(�(�(�(�(��q���
��
���
�&�
'�
'�'r"c�n�t|��\}}t|��dkrtd���|S)Nr�Payload too long�r=r
r1�rr7s  r�varint_from_protobufrB_s:��,�W�5�5�J�A�w�
�7�|�|�q��-��+�,�,�,��Hr"c��t|��\}}t|��dkrtd���|dzr|}|dz	}|dz}n|dz	}|S)Nrr?rlr@rAs  r�varsint_from_protobufrDgsl��,�W�5�5�J�A�w�
�7�|�|�q��-��+�,�,�,�	�3�w��
�B��
��F��	�W����
��F���Hr"c�l�g}		t|��\}}t|��|kr=t|��dkr|dkrt|��dkrgStd���|�|d|���||d�}t|��dkrnn#t$rYnwxYw��|S)NTrrzInvalid Set encoding)r=r
r1�append)r�set_pb�	field_lens   r�set_from_protobufrIws���
�F��	�!<�W�!E�!E��I�w��7�|�|�i�'�
9��w�<�<�1�$���a���C��K�K�1�<L���I� �!7�8�8�8��M�M�'�*�9�*�-�.�.�.��i�j�j�)�G��7�|�|�q� �
��
���	�	�	��E�	����� �Ms�AB#�A	B#�#
B0�/B0c�L�g}d}t|dt��r|dnt|d��}|dd�}|D]�}t|t��r|nt|��}|dzdz	}|dz}|dkrT|�|��|dkr|�|���l|dkrd}nO|dkrd}nEt	d	���|dkrd}|dksJ�n$|dkrd}|dksJ�nt	d
|�����tj|||f��S)Nrr��r$��
��
zInvalid BCDz
Invalid BCD: )r2r3r4rFr1�decimal�Decimal)r�digits�sign�scaler9r:�high_bcd�low_bcds        r�decimal_from_protobufrW�s~��
�F��D�$�W�Q�Z��5�5�J�G�A�J�J�3�w�q�z�?�?�E��a�b�b�k�G��9�9��!�$��,�,�;�t�t�#�d�)�)���4�K�A�%����+���d�?�	9��M�M�(�#�#�#���~�	
0��
�
�g�&�&�&�&��D��
0������D��
0����� ��/�/�/�
��
�		9��D��d�?�"�"�"��E�
��
�	9��D��d�?�"�"�"��E��7�X�7�7�8�8�8��?�D�&�5�&�1�2�2�2r"c	�\�d}d}d}d}t|��\}}t|��\}}t|��\}}	t|��\}}t|��\}}t|��\}}t|��\}}n#t$rYnwxYwt|||||||��S)Nr)r=r1r)r�hour�minutes�seconds�useconds�year�month�days        r�datetime_from_protobufr`�s����D��G��G��H�/��8�8�M�D�'�0��9�9�N�E�7�.�w�7�7�L�C��
�3�G�<�<�
��g�6�w�?�?����6�w�?�?����7��@�@���'�'���
�
�
���
�����D�%��d�G�W�h�G�G�Gs�AB	�	
B�Bc�Z�d}d}d}d}|ddk}|dd�}	t|��\}}t|��\}}t|��\}}t|��\}}n#t$rYnwxYw|r|r|dz}n|r|dz}n|r|dz}n|r|dz}t||||���S)Nrrr)�hoursrZr[�microseconds)r=r1r)rrYrZr[r\�negates      r�time_from_protobufre�s���D��G��G��H�
�Q�Z�1�_�F��a�b�b�k�G�
�3�G�<�<�
��g�6�w�?�?����6�w�?�?����7��@�@���'�'���
�
�
���
�����	��	��B�J�D�D�
�	��r�M�G�G�
�	��r�M�G�G�
�	���N�H���G�W�8����s�AA)�)
A6�5A6c��eZdZdZdS)�
Collations�!N)�__name__�
__module__�__qualname__�UTF8_GENERAL_CIrr"rrgrg�s�������O�O�Or"rgc�J�eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%e&d$���Z'e&d%���Z(e&d&���Z)e&d'���Z*e&d(���Z+e&d)���Z,e&d*���Z-e&d+���Z.d,S)-rr��r$��r0r+�	rM�rNrO�rL����������������� rh�"�#c�h�t|�����D]\}}||kr|cS�dS�N)�vars�items)�cls�needle�key�values    r�	to_stringzColumnType.to_stringsD���s�)�)�/�/�+�+�	�	�J�C�����
��
�
�
�
��tr"c�H�t||���d��Sr�)�getattr�upper)r�r�s  r�from_stringzColumnType.from_strings���s�C�I�I�K�K��.�.�.r"c�"�||j|jfvSr�)�CHAR�VARCHAR�r��col_types  r�is_charzColumnType.is_chars����H��K�
�
�	
r"c�"�||j|jfvSr�)�BINARY�	VARBINARYr�s  r�	is_binaryzColumnType.is_binary!s����J��M�
�
�	
r"c�:�||j|j|j|jfvSr�)�TEXT�TINYTEXT�
MEDIUMTEXT�LONGTEXTr�s  r�is_textzColumnType.is_text(s(����H��L��N��L�	
�
�	
r"c�F�||j|j|j|j|jfvSr�)�REAL�DOUBLE�FLOAT�DECIMAL�NUMERICr�s  r�is_decimalszColumnType.is_decimals1s-����H��J��I��K��K�
�
�	
r"c�R�||j|j|j|j|j|jfvSr�)�BIT�TINYINT�SMALLINT�	MEDIUMINT�INT�BIGINTr�s  r�
is_numericzColumnType.is_numeric;s2����G��K��L��M��G��J�

�
�	
r"c�"�||j|jfvSr�)�SET�ENUMr�s  r�
is_finite_setzColumnType.is_finite_setFs����G��H�
�
�	
r"N)/rirjrkr�r�r�r�r�r�r�r�r�r�r��JSONr�BYTES�TIME�DATE�DATETIME�	TIMESTAMPr�r��GEOMETRY�XML�YEARr�r�r�r��TINYBLOB�BLOB�
MEDIUMBLOB�LONGBLOBr�r�r�r��classmethodr�r�r�r�r�r�r�r�rr"rrr�s�������
�C��G��H��I�
�C�
�F��D�
�E��G��G�
�F�
�D�
�F��E�
�D�
�D��H��I�
�C�
�D��H�
�C�
�D�
�D��G�
�F��I��H�
�D��J��H��H�
�D��J��H�����[���/�/��[�/��
�
��[�
��
�
��[�
��
�
��[�
��
�
��[�
��
�
��[�
��
�
��[�
�
�
r"rc�j�eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
eeeeeee	eeeeeeeeee
eeee
eiZdS)
rrrnrprqr0rMrNrLrurvrwN)rirjrk�SINT�UINTr�r�r�r�r�r�r�r�r�rDrBr!r`rer(r,rIrWrrr"rrrNs��������D��D�
�F�
�E�
�E�
�D��H�
�C�
�D�
�C��G�	
�#��"�
�"��(�� �
�"��$��
!��
��!��&��M�M�Mr"rc�P�eZdZd�Zd�Zed���Zejd���ZdS)�Flagsc��i|_i|_|jj���D]D\}}|�d��r�t
|t��r||j|<||j|<�E||_dS)N�__)	�_allowed_flags�_flag_names�	__class__�__dict__r��
startswithr2r3�_value)�selfr�r��vals    r�__init__zFlags.__init__ks��� ��������/�5�5�7�7�	,�	,�H�C���~�~�d�#�#�
���#�s�#�#�
,�+.��#�C�(�(+�� ��%������r"c��d}g}|j}tdd��D]�}|dz}||z}|r�	|�|j|���0#t$rRt
j�|j���t
j�|jj	���Y��wxYw��d�
|��S)Nrr�?�,)r��rangerFr�rrrrr�r��join)r��mask�
flag_namesr��_�flags      r�__str__z
Flags.__str__vs������
�����q�"���		C�		C�A��Q�J�D��4�<�D��
C�C��%�%�d�&6�t�&<�=�=�=�=���C�C�C��J�$�$��(8�%:�;�;�;��J�$�$���(?�%A�B�B�B�B�B�C����	
C��x�x�
�#�#�#s� A�AB(�'B(c��|jSr��r��r�s rr�zFlags.value�s
���{�r"c��||_dSr�r�)r�r�s  rr�zFlags.value�s
������r"N)rirjrkr�r��propertyr��setterrr"rr�r�jsj������	�	�	�$�$�$�$����X���\����\���r"r�c�"�eZdZdZdZdZdZdZdS)�ColumnFlagsrur��@r.�N)rirjrk�NOT_NULL�PRIMARY_KEY�
UNIQUE_KEY�MULTIPLE_KEY�AUTO_INCREMENTrr"rr�r��s'�������H��K��J��L��N�N�Nr"r�c��eZdZdZdS)�DatetimeColumnFlagsrN)rirjrkr�rr"rr�r����������I�I�Ir"r�c��eZdZdZdS)�UIntColumnFlagsrN)rirjrk�ZEROFILLrr"rr�r����������H�H�Hr"r�c��eZdZdZdS)�DoubleColumnFlagsrN�rirjrk�UNSIGNEDrr"rr�r��r�r"r�c��eZdZdZdS)�FloatColumnFlagsrNr�rr"rr�r��r�r"r�c��eZdZdZdS)�BytesColumnFlagsrN)rirjrk�	RIGHT_PADrr"rr�r��r�r"r�c��eZdZdZdZdZdS)�BytesContentTyperrnroN)rirjrkr�r�r�rr"rrr�s�������H��D�
�C�C�Cr"rc��eZdZdZ											d"d�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
ed
���Zed���Z
ed���Zed
���Zed���Zed���Zed���Zed���Zed���Zed���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#dS)#�Columna_Represents meta data for a table column.

    Args:
        col_type (int): The column type.
        catalog (str): The catalog.
        schema (str): The schema name.
        table (str): The table name.
        original_table (str): The original table name.
        name (str): The column name.
        original_name (str): The original table name.
        length (int): The column length,
        collation (str): The collation name.
        fractional_digits (int): The fractional digits.
        flags (int): The flags.
        content_type (int): The content type.

    .. versionchanged:: 8.0.12
    Nc
�V�t|��|_t|��|_t|��|_t|��|_t|��|_||_d|_||_||_	|	|_
|
|_||_||_
d|_d|_d|_d|_d|_d|_d|_|j
dkrw|j
t+t,��krt/d|j
�����t,|j
}
|
d|_|
d|_d|jvpd|jv|_|���|jt2jt2jt2jt2jt2jfv|_dS)NFrzNo mapping found for collation r�binary�_bin)r�_schema�_name�_original_name�_table�_original_table�_proto_type�	_col_type�_catalog�_length�
_collation�_fractional_digits�_flags�
_content_type�_number_signed�
_is_padded�
_is_binary�	_is_bytes�_collation_name�_character_set_name�
_zero_fillr
rr1�	_map_typerr�r�r�r�r)r�r��catalog�schema�table�original_table�name�
original_name�length�	collation�fractional_digits�flags�content_type�infos              rr�zColumn.__init__�s���)��0�0���&�t�,�,��
�/�
�>�>���'��.�.���0��@�@���#��������
����#���"3������)���#������������#���#'�� �����?�Q��	���#�&:�";�";�;�
V� �!T�4�?�!T�!T�U�U�U�'���8�D�'+�A�w�D�$�#'��7�D� ��D�0�0�R�F�d�>R�4R�
�O�	
�����������O��N�����,
�
����r"c�l�t|j|j|jt|j��d���S)N)r�rrr$)�strrrr	rr�s rr�zColumn.__str__s:��� �N��,����T�[�)�)�	
�
�
�
�	
r"c�b�|jtjkrtj|_nx|jtjkrtj|_nQ|jtjkrtj|_n*|jrtj|_ntj	|_|j
dz|_dS)z
Map bytes.rN)rrr�rrr�r�rr�rrrr�s r�
_map_byteszColumn._map_bytes
s�����!1�!:�:�		/�'�0�D�N�N�
�
�#3�#8�
8�	/�'�_�D�N�N�
�
�#3�#7�
7�	/�'�^�D�N�N�
�_�	/�'�-�D�N�N�'�.�D�N��+��/����r"c���|jdkrtj|_dS|jt
jzdkrtj|_dS|jdkrtj|_dStd���)z
Map datetime.rMrrxz#Datetime mapping scenario unhandledN)	rrr�rrr�r�r�r1r�s r�
_map_datetimezColumn._map_datetimess���<�2��	D�'�_�D�N�N�N�
�[�.�8�
8�1�
<�	D�'�1�D�N�N�N�
�\�R�
�	D�'�0�D�N�N�N��B�C�C�Cr"c��|jdkrtj|_nh|jdkrtj|_nK|jdkrtj|_n.|jdkrtj|_ntj|_d|_dS)z
Map int type.r$rqrrrsTN)	rrr�rr�r�r�r�rr�s r�
_map_int_typezColumn._map_int_type#s����<�1��		/�'�/�D�N�N�
�\�Q�
�	/�'�0�D�N�N�
�\�Q�
�	/�'�1�D�N�N�
�\�R�
�	/�'�^�D�N�N�'�.�D�N�"����r"c�.�|jdkrtj|_nh|jdkrtj|_nK|jdkrtj|_n.|jdkrtj|_ntj|_|jdz|_	dS)zMap uint type.rorpr+rMrN)
rrr�rr�r�r�r�rrr�s r�_map_uint_typezColumn._map_uint_type1s����<�1��		/�'�/�D�N�N�
�\�Q�
�	/�'�0�D�N�N�
�\�Q�
�	/�'�1�D�N�N�
�\�R�
�	/�'�^�D�N�N�'�.�D�N��+��/����r"c�f�|jtjkr|���dS|jtjkr|���dS|jtjkr0tj|_|j	tjzdk|_dS|jtj
kr0tj
|_|j	tjzdk|_dS|jtjkr0tj|_|j	tjzdk|_dS|jtjkr|���dS|jtjkrtj|_dS|jtjkr|���dS|jtjkrtj|_dS|jtjkrtj|_dS|jtjkrtj|_dSt/d|j�����)z	Map type.rzUnknown column type N)rrr�r.r�r0r�rrrr�r��_is_number_signedr�r�r�r*r�r�r,r�r�r�r1r�s rrzColumn._map_type?s�����3�3�	H���� � � � � �
�
��!5�
5�	H����!�!�!�!�!�
�
��!6�
6�	H�'�-�D�N�&*�k�4D�4M�&M�RS�%S�D�"�"�"�
�
��!8�
8�	H�'�/�D�N�&*�k�4D�4M�&M�RS�%S�D�"�"�"�
�
��!7�
7�	H�'�.�D�N�&*�k�4D�4M�&M�RS�%S�D�"�"�"�
�
��!6�
6�
	H��O�O������
�
��!5�
5�	H�'�_�D�N�N�N�
�
��!9�
9�		H���� � � � � �
�
��!4�
4�	H�'�^�D�N�N�N�
�
��!5�
5�	H�'�_�D�N�N�N�
�
��!4�
4�	H�'�^�D�N�N�N��F�D�4D�F�F�G�G�Gr"c��|jS)z@str: The schema name.

        .. versionadded:: 8.0.12
        �rr�s r�schema_namezColumn.schema_name]����|�r"c��|jp|jS)z?str: The table name.

        .. versionadded:: 8.0.12
        �r
r	r�s r�
table_namezColumn.table_namee����#�2�t�{�2r"c��|jp|jS)z@str: The table label.

        .. versionadded:: 8.0.12
        �r	r
r�s r�table_labelzColumn.table_labelm����{�2�d�2�2r"c��|jp|jS)z@str: The column name.

        .. versionadded:: 8.0.12
        �rrr�s r�column_namezColumn.column_nameu����"�0�d�j�0r"c��|jp|jS)zAstr: The column label.

        .. versionadded:: 8.0.12
        �rrr�s r�column_labelzColumn.column_label}����z�0�T�0�0r"c��|jS)z@int: The column type.

        .. versionadded:: 8.0.12
        �rr�s r�typezColumn.type�����~�r"c��|jS)zBint. The column length.

        .. versionadded:: 8.0.12
        �rr�s rr!z
Column.length�r6r"c��|jS)zMint: The column fractional digits.

        .. versionadded:: 8.0.12
        �rr�s rr#zColumn.fractional_digits��
���&�&r"c��|jS)zCstr: The collation name.

        .. versionadded:: 8.0.12
        �rr�s r�collation_namezColumn.collation_name��
���#�#r"c��|jS)zGstr: The character set name.

        .. versionadded:: 8.0.12
        �rr�s r�character_set_namezColumn.character_set_name��
���'�'r"c��|jS)zUReturns the schema name.

        Returns:
            str: The schema name.
        r4r�s r�get_schema_namezColumn.get_schema_name�r6r"c��|jp|jS)zSReturns the table name.

        Returns:
            str: The table name.
        r8r�s r�get_table_namezColumn.get_table_name�r:r"c��|jp|jS)zUReturns the table label.

        Returns:
            str: The table label.
        r<r�s r�get_table_labelzColumn.get_table_label�r>r"c��|jp|jS)zUReturns the column name.

        Returns:
            str: The column name.
        r@r�s r�get_column_namezColumn.get_column_name�rBr"c��|jp|jS)zWReturns the column label.

        Returns:
            str: The column label.
        rDr�s r�get_column_labelzColumn.get_column_label�rFr"c��|jS)zaReturns the column proto type.

        Returns:
            int: The column proto type.
        )rr�s rrzColumn.get_proto_type�s
����r"c��|jS)zUReturns the column type.

        Returns:
            int: The column type.
        rHr�s rrzColumn.get_type�rJr"c��|jS)zYReturns the column length.

        Returns:
            int: The column length.
        rLr�s r�
get_lengthzColumn.get_length�r6r"c��|jS)zoReturns the column fractional digits.

        Returns:
            int: The column fractional digits.
        rNr�s r�get_fractional_digitszColumn.get_fractional_digits�rOr"c��|jS)z[Returns the collation name.

        Returns:
            str: The collation name.
        rQr�s r�get_collation_namezColumn.get_collation_name�rSr"c��|jS)zcReturns the character set name.

        Returns:
            str: The character set name.
        rUr�s r�get_character_set_namezColumn.get_character_set_name�rWr"c��|jS)zxReturns `True` if is a number signed.

        Returns:
            bool: Returns `True` if is a number signed.
        )rr�s r�is_number_signedzColumn.is_number_signed�
���"�"r"c��|jS)zfReturns `True` if is padded.

        Returns:
            bool: Returns `True` if is padded.
        )rr�s r�	is_paddedzColumn.is_padded
s����r"c��|jS)zdReturns `True` if is bytes.

        Returns:
            bool: Returns `True` if is bytes.
        )rr�s r�is_byteszColumn.is_bytesrJr")NNNNNNNNNNN)$rirjrk�__doc__r�r�r*r,r.r0rr�r5r9r=rArErIr!r#rRrVrYr[r]r_rarrrergrirkrmrprrrr"rrr�s���������,����
�������4
�4
�4
�4
�l
�
�
�*�*�*�	D�	D�	D�#�#�#�*�*�*�H�H�H�<����X���3�3��X�3��3�3��X�3��1�1��X�1��1�1��X�1�����X������X���'�'��X�'��$�$��X�$��(�(��X�(����3�3�3�3�3�3�1�1�1�1�1�1� � � �������'�'�'�$�$�$�(�(�(�#�#�#��������r"rc�L�eZdZdZd�Zd�Zd�Zed��d���ZdS)�Rowz�Represents a row element returned from a SELECT query.

    Args:
        resultset (mysqlx.SqlResult or mysqlx.RowResult): The result set.
        fields (`list`): The list of fields.
    c�"�||_||_dSr�)�_fields�
_resultset)r��	resultset�fieldss   rr�zRow.__init__&s�����#����r"c�*�t|j��Sr�)�reprrwr�s r�__repr__zRow.__repr__*s���D�L�!�!�!r"c�4�t|t��r|j�|��n|}|dkr(t|t��rt	d|�d����|t|j��ks|dkrtd���|j|S)z\Returns the value of a column by name or index.

        .. versionchanged:: 8.0.12
        r�
Column name '�' not foundrzIndex out of range)r2r(rx�index_ofr1r
rw�
IndexError)r��index�	int_indexs   r�__getitem__zRow.__getitem__-s���
8B�%��7M�7M�X�D�O�,�,�U�3�3�3�SX�	���?�	A�z�%��5�5�	A��?�U�?�?�?�@�@�@���D�L�)�)�)�	3�Y��]�	3��1�2�2�2��|�I�&�&r"�8.0.12c���|j�|��}|t|j��krt	d���|dkrtd|�d����t
|j|��S)z�Returns the value using the column name.

        Args:
            str_index (str): The column name.

        .. deprecated:: 8.0.12
        zArgument out of rangerrr�)rxr�r
rwr�r1r()r��	str_indexr�s   r�
get_stringzRow.get_string9s{���O�,�,�Y�7�7�	���D�L�)�)�)�	6��4�5�5�5���?�	E��C�Y�C�C�C�D�D�D��4�<�	�*�+�+�+r"N)	rirjrkrsr�r}r�r	r�rr"rrurusq��������$�$�$�"�"�"�
'�
'�
'��Z����
,�
,���
,�
,�
,r"ruc�H�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�
BaseResultz�Provides base functionality for result objects.

    Args:
        connection (mysqlx.connection.Connection): The Connection object.
    c��||_d|_d|_d|_g|_g|_|�	d|_dS|j|_|���dS�NFrr)	�_connection�_closed�_rows_affected�
_generated_id�_generated_ids�	_warnings�	_protocol�protocol�fetch_active_result)r��
connections  rr�zBaseResult.__init__Qse��%������������ �������	-�!�D�N�N�N�'�0�D�N��*�*�,�,�,�,�,r"c��|jS)z�Returns the number of affected items for the last operation.

        Returns:
            int: The number of affected items.
        �r�r�s r�get_affected_items_countz#BaseResult.get_affected_items_count_rnr"c��|jS)zZReturns the warnings.

        Returns:
            `list`: The list of warnings.
        )r�r�s r�get_warningszBaseResult.get_warningsgrJr"c�*�t|j��S)zcReturns the number of warnings.

        Returns:
            int: The number of warnings.
        )r
r�r�s r�get_warnings_countzBaseResult.get_warnings_countos���4�>�"�"�"r"c��||_dS)z Sets if resultset fetch is done.N)r��r�r�s  r�
set_closedzBaseResult.set_closedws
������r"c�B�|j�|||d���dS)z�Append a warning.

        Args:
            level (int): The warning level.
            code (int): The warning code.
            msg (str): The warning message.
        )�level�code�msgN)r�rF)r�r�r�r�s    r�append_warningzBaseResult.append_warning{s*��	
�����t�C�H�H�I�I�I�I�Ir"c��||_dS)zSets the generated ids.N�r�)r��
generated_idss  r�set_generated_idszBaseResult.set_generated_ids�s��+����r"c��||_dS)zSets the generated insert id.N�r�)r��generated_ids  r�set_generated_insert_idz"BaseResult.set_generated_insert_id�s��)����r"c��||_dS)z!Sets the number of rows affected.Nr�)r��totals  r�set_rows_affectedzBaseResult.set_rows_affected�s��#����r"N)
rirjrkrsr�r�r�r�r�r�r�r�r�rr"rr�r�Js���������-�-�-�#�#�#����#�#�#����J�J�J�,�,�,�*�*�*�$�$�$�$�$r"r�c���eZdZdZd	�fd�	Zd�Zed��d���Zed��d���Zd�Z	�xZ
S)
�ResultaAllows retrieving information about non query operations performed on
    the database.

    Args:
        connection (mysqlx.connection.Connection): The Connection object.
                                                   ids (`list`): A list of IDs.
    Nc���t���|��||_|�|j�|��dSdSr�)�superr��_idsr��close_result)r�r��idsr�s   �rr�zResult.__init__�sQ���
������$�$�$���	��	0���)�)�$�/�/�/�/�/�	0�	0r"c��|jS)zjReturns the last insert id auto generated.

        Returns:
            int: The last insert id.
        r�r�s r�get_autoincrement_valuezResult.get_autoincrement_value��
���!�!r"r�c�^�|j�t|j��dkrdS|jdS)zdReturns ID of the last document inserted into a collection.

        .. deprecated:: 8.0.12
        Nr)r�r
r�s r�get_document_idzResult.get_document_id�s3���9�	��D�I���!� 3�	��4��y��|�r"c��|jS)zIReturns the generated insert id.

        .. deprecated:: 8.0.12
        r�r�s r�get_generated_insert_idzResult.get_generated_insert_id�r�r"c��|jS)zReturns the generated ids.r�r�s r�get_generated_idszResult.get_generated_ids�s���"�"r")NN)rirjrkrsr�r�r	r�r�r��
__classcell__�r�s@rr�r��s����������0�0�0�0�0�0�"�"�"��Z����������Z����"�"���"�#�#�#�#�#�#�#r"r�c�n��eZdZdZ�fd�Zd�Zed���Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Z�xZS)
�BufferingResultz�Provides base functionality for buffering result objects.

    Args:
        connection (mysqlx.connection.Connection): The Connection object.
                                                   ids (`list`): A list of IDs.
    c����t���|��g|_d|_d|_g|_d|_d|_|���dSr�)	r�r��_columns�	_has_data�_has_more_results�_items�
_page_size�	_position�_init_result)r�r�r�s  �rr�zBufferingResult.__init__�s^���
������$�$�$���
����!&�������������������r"c��|j|Sr�)r�)r�r�s  rr�zBufferingResult.__getitem__�s���{�5�!�!r"c�*�t|j��S)zint: The total of items.)r
r�r�s r�countzBufferingResult.count�s���4�;���r"c���|j�|��|_t|j��dk|_g|_d|_d|_|j�|jr|nd��dS)zInitialize the result.rryrN)	r��get_column_metadatar�r
�_has_more_datar�r�r��set_active_resultr�s rr�zBufferingResult._init_result�so���(�<�<�T�B�B��
�!�$�-�0�0�1�4��������������*�*�4�3F�+P�4�4�D�Q�Q�Q�Q�Qr"c�6�|j�|��}|�dSdgt|d��z}|sQtt|d����D].}|j|}t||d|��||<�/t
||��S)z�Read item.

        Args:
            dumping (bool): `True` for dumping.

        Returns:
            :class:`mysqlx.Row`: A `Row` object.
        N�field)r��read_rowr
r�r�rru)r��dumping�rowr9r�rs      r�
_read_itemzBufferingResult._read_item�s�����'�'��-�-���	��4��v��C��L�)�)�)���	E��S��W��.�.�/�/�
E�
E����s�+��)�&�#�g�,�s�2C�D�D��S�	�	��4����r"c��|jrdSd}t|j��D]:}|�d��}|�n |j�|��|dz
}�;|S)zSReads the page items.

        Returns:
            int: Total items read.
        FrNr)r�r�r�r�r�rF)r�r�r�r9s    r�_page_in_itemszBufferingResult._page_in_items�su���<�	��5����t��'�'�	�	�A��?�?�5�)�)�D��
����K���t�$�$�$��Q�J�E�E��r"c�`�d}|jD]#}|���|kr|cS|dz
}�$dS)zeReturns the index of the column.

        Returns:
            int: The index of the column.
        rrr)r�ra)r��col_namer��cols    rr�zBufferingResult.index_of	sL�����=�	�	�C��#�#�%�%��1�
������Q�J�E�E��rr"c�>�|jrdS|�d��S)zuFetch one item.

        Returns:
            :class:`mysqlx.Row` or :class:`mysqlx.DbDoc`: one result item.
        NF)r�r�r�s r�	fetch_onezBufferingResult.fetch_ones%���<�	��4����u�%�%�%r"c�>�	|���sn�|jS)z�Fetch all items.

        Returns:
            `list`: The list of items of :class:`mysqlx.DbDoc` or
                    :class:`mysqlx.Row`.
        )r�r�r�s r�	fetch_allzBufferingResult.fetch_all!s-��	��&�&�(�(�
��	��{�r"c��||_dS)zdSets if result has data.

        Args:
            flag (bool): `True` if result has data.
        N�r�r�s  r�set_has_datazBufferingResult.set_has_data-s������r"c��||_dS)zfSets if has more results.

        Args:
            flag (bool): `True` if has more results.
        N)r�r�s  r�set_has_more_resultsz$BufferingResult.set_has_more_results5s��"&����r")rirjrkrsr�r�r�r�r�r�r�r�r�r�r�r�r�r�s@rr�r��s���������������"�"�"�� � ��X� �R�R�R����&���$���	&�	&�	&�
�
�
����&�&�&�&�&�&�&r"r�c�.�eZdZdZed���Zd�ZdS)�	RowResultz�Allows traversing the Row objects returned by a Table.select operation.

    Args:
        connection (mysqlx.connection.Connection): The Connection object.
    c��|jS)z`list`: The list of columns.�r�r�s r�columnszRowResult.columnsEs���}�r"c��|jS)z�Returns the list of columns.

        Returns:
            `list`: The list of columns.

        .. versionadded:: 8.0.12
        r�r�s r�get_columnszRowResult.get_columnsJs���}�r"N)rirjrkrsr�r�r�rr"rr�r�>sH������������X������r"r�c�$�eZdZdZd�Zd�Zd�ZdS)�	SqlResultz�Represents a result from a SQL statement.

    Args:
        connection (mysqlx.connection.Connection): The Connection object.
    c��|jS)z�Returns the identifier for the last record inserted.

        Returns:
            str: The identifier of the last record inserted.
        r�r�s rr�z!SqlResult.get_autoincrement_value\r�r"c�N�|jrdSd|_|���dS)zjProcess the next result.

        Returns:
            bool: Returns `True` if the fetch is done.
        FT)r�r�r�r�s r�next_resultzSqlResult.next_resultds2���<�	��5�!&����������tr"c��|jS)z�Returns True if result has data.

        Returns:
            bool: Returns `True` if result has data.

        .. versionadded:: 8.0.12
        r�r�s r�has_datazSqlResult.has_dataps���~�r"N)rirjrkrsr�r�r�rr"rr�r�UsK��������"�"�"�
�
�
�����r"r�c�"��eZdZdZ�fd�Z�xZS)�	DocResultz�Allows traversing the DbDoc objects returned by a Collection.find
    operation.

    Args:
        connection (mysqlx.connection.Connection): The Connection object.
    c���t���|��}|�dStt|d����S)z�Read item.

        Args:
            dumping (bool): `True` for dumping.

        Returns:
            :class:`mysqlx.DbDoc`: A `DbDoc` object.
        Nr)r�r�rr)r�r�r�r�s   �rr�zDocResult._read_item�sD����g�g� � ��)�)���	��4��&�s�1�v�.�.�/�/�/r")rirjrkrsr�r�r�s@rr�r�{sB���������0�0�0�0�0�0�0�0�0r"r�)+rsrPr&rrr�charsetsr�dbdocr�helpersrr	rr!r(r,r=rBrDrIrWr`rergrrr�r�r�r�r�r�r�rrrur�r�r�r�r�r�rr"r�<module>r�sh��:,�+�����
�
�
�
�
�
�
�
�(�(�(�(�(�(�(�(�*�*�*�*�*�*�������2�2�2�2�2�2�2�2�������
+�+�+�
+�+�+�
(�(�(�,
�
�
�

�

�

� ���*!3�!3�!3�HH�H�H�*���B��������a
�a
�a
�a
�a
�a
�a
�a
�H��������8$�$�$�$�$�$�$�$�N�����%���������+���������k������������������{���������{���������{����e�e�e�e�e�e�e�e�P),�),�),�),�),�),�),�),�XE$�E$�E$�E$�E$�E$�E$�E$�P,#�,#�,#�,#�,#�Z�,#�,#�,#�^z&�z&�z&�z&�z&�j�z&�z&�z&�z���������.#�#�#�#�#�	�#�#�#�L0�0�0�0�0��0�0�0�0�0r"