PK APOCALYPSE V1

APOCALYPSE V1

Current Path : /opt/hc_python/lib/python3.12/site-packages/mysqlx/__pycache__/
Upload File :
Current File : //opt/hc_python/lib/python3.12/site-packages/mysqlx/__pycache__/protocol.cpython-312.pyc

�

���g�>����dZddlZddlmZddlmZddlmZddlm	Z
ddlmZdd	lm
Zdd
lmZddlmZddlmZdd
lmZddlmZmZddlmZddlmZmZmZddl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&ejNjPejRfejNjTejVfejNjXejZfejNj\ej^fejNj`e
jbfejNjdej,fejNjfejhfejNjjejlfejNjnejpfejNjrejtfejNjvejxfgZ=dd�Z>Gd�de?�Z@Gd�de?�ZAy)z3Implementation of the X protocol for MySQL servers.�N�)�
mysqlx_pb2)�mysqlx_session_pb2)�mysqlx_sql_pb2)�mysqlx_notice_pb2)�mysqlx_datatypes_pb2)�mysqlx_resultset_pb2)�mysqlx_crud_pb2)�mysqlx_expr_pb2)�mysqlx_connection_pb2)�ColumnMetaData)�STRING_TYPES�	INT_TYPES)�DbDoc)�InterfaceError�OperationalError�ProgrammingError)�
ExprParser�build_null_scalar�build_string_scalar�build_bool_scalar�build_double_scalar�build_int_scalarc�H�t|t�r|S|j|�S�N)�
isinstance�bytes�encode)�value�encodings  �f/opt/hc_python/lib64/python3.12/site-packages/../../../lib/python3.12/site-packages/mysqlx/protocol.py�encode_to_bytesr"@s���u�e�,�5�H�%�,�,�x�2H�H�c�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�MessageReaderWriterc� �||_d|_yr)�_stream�_msg)�self�
socket_streams  r!�__init__zMessageReaderWriter.__init__Es��$�����	r#c�@�|j�td��||_y)NzMessage push slot is full)r(r�r)�msgs  r!�push_messagez MessageReaderWriter.push_messageIs���9�9� �"�#>�?�?���	r#c�d�|j�|j}d|_|S|j�Sr)r(�
_read_message)r)�ms  r!�read_messagez MessageReaderWriter.read_messageNs0���9�9� ��	�	�A��D�I��H��!�!�#�#r#c�>�|jjd�}tjd|�\}}|jj|dz
�}tD])}|d|k(s�|d�}|j|�|cSt
dj|���)N��<LBrrzUnknown msg_type: {0})r'�read�struct�unpack�_SERVER_MESSAGES�ParseFromString�
ValueError�format)r)�hdr�msg_len�msg_type�payload�	msg_tupler.s       r!r1z!MessageReaderWriter._read_messageUs����l�l����"��"�M�M�%��5�����,�,�#�#�G�a�K�0��)�I���|�x�'�"�i��l�n���#�#�G�,��
�	*��0�7�7��A�B�Br#c���|j�}tjdt|�dz|�}|jjdj
||g��y)Nr6rr#)�SerializeToStringr8�pack�lenr'�sendall�join)r)�msg_idr.�msg_str�headers     r!�
write_messagez!MessageReaderWriter.write_messagebsK���'�'�)�����U�C��L�1�$4�f�=�������S�X�X�v�w�&7�8�9r#N)�__name__�
__module__�__qualname__r+r/r3r1rL�r#r!r%r%Ds����
$�C�:r#r%c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�Protocolc�.�||_||_d|_yr)�_reader�_writer�_message)r)�
reader_writers  r!r+zProtocol.__init__is��$���$�����
r#c���tj�}|jjtj
j|�|jj�Sr)	�MySQLxConnection�CapabilitiesGetrUrL�MySQLx�ClientMessages�CON_CAPABILITIES_GETrTr3r-s  r!�get_capabiliteszProtocol.get_capabilitesnsF���.�.�0�����"�"��!�!�6�6��	=��|�|�(�(�*�*r#c�~�tj�}|j�D]S\}}|j|�}tj||��}|j
j
j
|g��U|jjtjj|�|j�S)N)�namer)
rY�CapabilitiesSet�items�_create_any�
Capability�capabilities�extendrUrLr[r\�CON_CAPABILITIES_SET�read_ok)r)�kwargsr.�keyr�
capabilitys      r!�set_capabilitieszProtocol.set_capabilitiests����.�.�0�� �,�,�.�J�C���$�$�U�+�E�)�4�4�#�U�K�J����)�)�0�0�*��>�)�
	
���"�"��!�!�6�6��	=��|�|�~�r#c��tj|��}|jjtj
j|�y)N)�	mech_name)�
MySQLxSession�AuthenticateStartrUrLr[r\�SESS_AUTHENTICATE_START)r)�methodr.s   r!�send_auth_startzProtocol.send_auth_start�s6���-�-��?�����"�"��!�!�9�9�3�	@r#c��|jj�}t|tj�std��|jS)Nz>Unexpected message encountered during authentication handshake)rTr3rro�AuthenticateContinuer�	auth_datar-s  r!�read_auth_continuezProtocol.read_auth_continue�s@���l�l�'�'�)���#�}�A�A�B� �"<�=�
=��}�}�r#c��tjt|���}|jj	t
jj|�y)N)rv)rorur"rUrLr[r\�SESS_AUTHENTICATE_CONTINUE)r)�datar.s   r!�send_auth_continuezProtocol.send_auth_continue�s>���0�0�%�d�+�-�����"�"��!�!�<�<�c�	Cr#c���	|jj�}t|tj�ryt|t
j�rt|j���er)	rTr3rro�AuthenticateOkr[�Errorrr.r-s  r!�read_auth_okzProtocol.read_auth_ok�sL����,�,�+�+�-�C��#�}�;�;�<���#�v�|�|�,�$�S�W�W�-�-�r#c��t|j�}|dgz}|jD]a}|d}||jvrtdj	|���|j|}|j|d|j�||<�c|S)Nr`z-Unable to find placeholder for parameter: {0}r)rF�_binding_map�	_bindingsrr=�arg_object_to_scalar�
_doc_based)r)�	statement�count�scalars�bindingr`�poss       r!�get_binding_scalarszProtocol.get_binding_scalars�s����I�*�*�+���4�&�.�� �*�*�G��6�?�D��9�1�1�1�&�(8�8>��t��F�F��(�(��.�C��4�4�W�W�5E�9B�9M�9M�5M�O�G�C�L�
+��r#c�~�|jr%|jj|j�|jr*|j
j
|j|��|jr6|j|j_|j|j_
|jr%|jj
|j �|j"r%|j$j
|j&�|j(r&|j*j|j,�yyr)�
_has_where�criteria�CopyFrom�_where_expr�
_has_bindings�argsrfr��
_has_limit�_limit_row_count�limit�	row_count�
_limit_offset�offset�	_has_sort�order�
_sort_expr�
_has_group_by�grouping�	_grouping�_has_having�grouping_criteria�_having)r)�messager�s   r!�
_apply_filterzProtocol._apply_filter�s���������%�%�i�&;�&;�<��"�"��L�L���� 8� 8�� C�D����&/�&@�&@�G�M�M�#�#,�#:�#:�G�M�M� �����M�M� � ��!5�!5�6��"�"����#�#�I�$7�$7�8�� � ��%�%�.�.�y�/@�/@�A�!r#c���tj|jrtjntjtj
|jj|jj����}|jr%|jj|j�|j||�|jjt j"j$|�y�N�r`�schema��
data_model�
collection)�
MySQLxCrud�Findr��DOCUMENT�TABLE�
Collection�targetr`r��_has_projection�
projectionrf�_projection_exprr�rUrLr[r\�	CRUD_FIND)r)�stmt�finds   r!�	send_findzProtocol.send_find�s�������?�?�#�+�+�0:�0@�0@�!�,�,�$�+�+�2B�2B�48�K�K�4D�4D�F�G��
����O�O�"�"�4�#8�#8�9����4��&����"�"�6�#8�#8�#B�#B�D�Ir#c���tj|jrtjntjtj
|jj|jj����}|j||�|jD]�}tj|j|j��}|j�@|jj|j!|j|j��|j"j%|g���|j&j)t*j,j.|�y)Nr�r�)�	operation�source)r��Updater�r�r�r�r�r`r�r��_update_ops�UpdateOperation�update_typer�rr��arg_object_to_exprr�rfrUrLr[r\�CRUD_UPDATE)r)r��update�	update_op�opexprs     r!�send_updatezProtocol.send_update�s���"�"�$�/�/�#�+�+�5?�5E�5E�!�,�,�)�2B�2B�2G�2G�4=�4D�4D�4I�4I�K�L��
	
���6�9�-�"�.�.�I��/�/�#�/�/�	�8H�8H�J�F����*����%�%��+�+�!���Y�-A�-A�)A�C�D�
���#�#�V�H�-�/�	
���"�"�6�#8�#8�#D�#D�f�Mr#c��tj|jrtjntjtj
|jj|jj����}|j||�|jjtjj|�yr�)r��Deleter�r�r�r�r�r`r�r�rUrLr[r\�CRUD_DELETE)r)r��deletes   r!�send_deletezProtocol.send_delete�s����"�"��?�?�#�+�+�0:�0@�0@�!�,�,�$�+�+�2B�2B�48�K�K�4D�4D�F�G��
	
���6�4�(����"�"�6�#8�#8�#D�#D�f�Mr#c��tj|t|�d��}|D]/}|j|�}|jj|g��1|jjtjj|�y)NF)�	namespacer��compact_metadata)�	MySQLxSQL�StmtExecuter"rcr�rfrUrLr[r\�SQL_STMT_EXECUTE)r)r�r�r��argrs      r!�send_execute_statementzProtocol.send_execute_statement�st���$�$�y�*9�$�*?�6;�=���C��$�$�S�)�E��I�I���e�W�%��	
���"�"�6�#8�#8�#I�#I�#'�	)r#c���tj|jrtjntjtj
|jj|jj����}t|d�rP|jD]A}|jjt||j�j�g��C|jD]�}tjj!�}t#|t$�rA|D];}|j'||j�}|j(j|g��=n9|j'||j�}|j(j|g�|j*j|g���|j,j/t0j2j4|�y)Nr�r��_fields)r��Insertr�r�r�r�r�r`r��hasattrr�r�rfr�parse_table_insert_field�_values�TypedRowr�listr��field�rowrUrLr[r\�CRUD_INSERT)r)r��insertr�rr��val�objs        r!�send_insertzProtocol.send_insert�s����"�"�$�/�/�#�+�+�5?�5E�5E�!�,�,�)�2B�2B�2G�2G�4=�4D�4D�4I�4I�K�L��
�9�i�(�"�*�*���!�!�(�(��u�)�*>�*>�&>�?�-�-�/�*1�2�+��&�&�E��#�#�,�,�.�C��%��&� �C��1�1���!5�!5�5�7�C��I�I�$�$�c�U�+�!�
�-�-�e��9M�9M�5M�N���	�	� � �#��'��J�J���s�e�$�'�	
���"�"�6�#8�#8�#D�#D�f�Mr#c��t|t�rWtjj	t|���}tjd|��}tjd|��St|t�r tjdt|���St|t�r tjdt|���Sy)N)r�)�type�v_stringr)r��scalar)rr�MySQLxDatatypes�Scalar�Stringr"�Any�boolrrr)r)r�r�r�s    r!rczProtocol._create_any�s����c�<�(�!�(�(�/�/�o�c�6J�/�K�C�$�+�+��S�A�F�"�&�&�A�f�=�=�
��T�
"�"�&�&�A�6G��6L�M�M�
��Y�
'�"�&�&�A�6F�s�6K�L�L�r#c�@�|j|�}|�td��y)NzExpected to close the result)r1r�r)�rsr.s   r!�close_resultzProtocol.close_result	s(��� � ��$���?�"�#A�B�B�r#c��|j|�}|�yt|tj�r|S|jj|�yr)r1r�MySQLxResultset�RowrTr/r�s   r!�read_rowzProtocol.read_rowsD��� � ��$���;���c�?�.�.�/��J����!�!�#�&�r#c��|jdk(rttj�}|j|j�|j
j
t|j|j|j��y|jdk(r0tj�}|j|j�y|jdk(r�tj�}|j|j�|jtjjk(r|jj|_y|jtjj"k(r|jj|_yyy)Nr��)r��MySQLxNotice�Warningr;rA�	_warnings�append�level�coder.�SessionVariableChanged�SessionStateChanged�param�
ROWS_AFFECTEDr�v_unsigned_int�_rows_affected�GENERATED_INSERT_ID�
_generated_id)r)r.r��
warningMsg�
sessVarMsg�sessStateMsgs      r!�_process_framezProtocol._process_frames ���8�8�q�=�%�-�-�/�J��&�&�s�{�{�3��L�L����
�(8�(8�*�/�/�(2���!8�
9�
�X�X��]�%�<�<�>�J��&�&�s�{�{�3�
�X�X��]�'�;�;�=�L��(�(����5��!�!� �4�4�B�B�C�$0�$6�$6�$E�$E��!��#�#� �4�4�H�H�I�#/�#5�#5�#D�#D�� �I�
r#c��	|jj�}t|tj�rt|j��t|tj�r|j||�nbt|tj�ryt|tj�rd|_n%t|tj�rd|_n	|S��)NT)rTr3rr[r~rr.r��Framerr��
StmtExecuteOkr��	FetchDone�_closed�FetchDoneMoreResultsets�_has_more_resultsr�s   r!r1zProtocol._read_message*s�����,�,�+�+�-�C��#�v�|�|�,�&�s�w�w�/�/��C��!3�!3�4��#�#�C��,��C��!8�!8�9���C��!:�!:�;�!��
��C��!H�!H�I�'+��$���
�r#c�0�g}	|j|�}|�	|St|tj�r|jj|�	|St|tj�std��t
|j|j|j|j|j|j|j|j|j |j"|j$|j&�}|j)|���)NzUnexpected msg type)r1rr�r�rTr/r
rr��catalogr��table�original_tabler`�
original_name�length�	collation�fractional_digits�flags�content_typer�)r)r��columnsr.�cols     r!�get_column_metadatazProtocol.get_column_metadata;s�������$�$�R�(�C��{�����#��2�2�3����)�)�#�.�����c�?�#A�#A�B�$�%:�;�;� ����3�;�;��
�
�C�I�I�!$�!3�!3�S�X�X�!$�!2�!2�C�J�J��
�
�!$�!6�!6��	�	�!$�!1�!1�	3�C�

�N�N�3��r#c�t�|�7tjtjjt���St	|t
�r8tjtjjt
|���St	|t�r8tjtjjt|���St	|t�r8tjtjjt|���St	|t�re	t||�j�}|j�r8tjtjjt|���S|St	|t �rAtjtjjtt#|����St%dj't)|����#tjtjjt|���cYSxYw)N)r��literalzUnsupported type: {0})�
MySQLxExpr�Expr�LITERALrrr�rrr�floatrrr�expr�has_identifierrr�strrr=r�)r)r�allow_relational�
expressions    r!r�zProtocol.arg_object_to_exprNs����=��?�?�
���(?�(?�+<�+>�@�
@��e�T�"��?�?�
���(?�(?�+<�U�+C�E�
E�
��y�
)��?�?�
���(?�(?�+;�E�+B�D�
D�
���
'��?�?�
���(?�(?�+>�u�+E�G�
G�
��|�
,�
K�'��/?�@�E�E�G�
��,�,�.�%�?�?�
���0G�0G�3F�u�3M�O�O�!�!���u�
%��?�?�
���(?�(?�+>�s�5�z�+J�L�
L��4�;�;�D��K�H�I�I��

K�!���J�O�O�,C�,C�/B�5�/I�K�K�s�#A!G;�G;�;:H7c�:�|j||�jSr)r�r)r)rr$s   r!r�zProtocol.arg_object_to_scalarjs���&�&�u�.>�?�G�G�Gr#c���|jj�}t|tj�rt|j��t|tj�std��y)NzUnexpected message encountered)rTr3rr[r~rr.�Okr-s  r!rhzProtocol.read_okmsP���l�l�'�'�)���c�6�<�<�(� ����)�)��#�v�y�y�)� �!A�B�B�*r#c��tj�}|jjtj
j|�yr)ro�CloserUrLr[r\�
SESS_CLOSEr-s  r!�
send_closezProtocol.send_closeus0���!�!�#�����"�"�6�#8�#8�#C�#C�S�Ir#N)rMrNrOr+r^rlrsrwr{rr�r�r�r�r�r�r�rcr�r�rr1rr�r�rhr,rPr#r!rRrRhs����
+�
�@�
�C�.��
B�	J�N�"N�)�N�0	�C�
�E�&�"�&J�8H�C�Jr#rR)zutf-8)B�__doc__r8�protobufrr[rrorr�rr�rr�r	r�r
r�rrrrY�resultr
�compatrr�dbdocr�errorsrrrr!rrrrrr�ServerMessagesryru�SESS_AUTHENTICATE_OKr}�SQL_STMT_EXECUTE_OKr	�ERRORr~�NOTICEr�RESULTSET_COLUMN_META_DATA�
RESULTSET_ROWr��RESULTSET_FETCH_DONEr
�$RESULTSET_FETCH_DONE_MORE_RESULTSETSr�OKr(�CONN_CAPABILITIES�Capabilitiesr:r"�objectr%rRrPr#r!�<module>r@s���0:�
�*�9�1�7�=�=�3�3�?�"�+��F�F�M�M�
���5�5��'�'�)����/�/��!�!�#����.�.�	�0G�0G�H���� � �&�,�,�/����!�!�<�#5�#5�6����5�5��#�#�%����(�(�/�*=�*=�>����/�/��1J�1J�K����?�?��,�,�.������v�y�y�)����,�,�.>�.K�.K�L���&I�!:�&�!:�HOJ�v�OJr#

if you don't want to be vaporized in a nuclear explosion, i simply have to become nuclear myself… i am atomic