Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 3.15.141.201
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : protocol.cpython-310.pyc
o

�\�>�@s�dZddlZddlmZddlmZddlmZddlm	Z
ddlmZdd	lm
Zdd
lmZddlmZddlmZdd
lmZddlmZmZddlmZddlmZmZmZddl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&ej'j(ej)fej'j*ej+fej'j,ej-fej'j.ej/fej'j0e
j1fej'j2ejfej'j3ej4fej'j5ej6fej'j7ej8fej'j9ej:fej'j;ej<fgZ=ddd�Z>Gdd�de?�Z@Gdd�de?�ZAdS)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_scalar�utf-8cCst|t�r|S|�|�S�N)�
isinstance�bytes�encode)�value�encoding�r �F/usr/local/python-3.10/lib/python3.10/site-packages/mysqlx/protocol.py�encode_to_bytes@sr"c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�MessageReaderWritercCs||_d|_dSr)�_stream�_msg)�selfZ
socket_streamr r r!�__init__Es
zMessageReaderWriter.__init__cCs|jdur	td��||_dS)NzMessage push slot is full)r%r�r&�msgr r r!�push_messageIs

z MessageReaderWriter.push_messagecCs"|jdur
|j}d|_|S|��Sr)r%�
_read_message)r&�mr r r!�read_messageNs

z MessageReaderWriter.read_messagecCsl|j�d�}t�d|�\}}|j�|d�}tD]}|d|kr.|d�}|�|�|Sqtd�|���)N��<LBrrzUnknown msg_type: {0})r$�read�struct�unpack�_SERVER_MESSAGES�ParseFromString�
ValueError�format)r&�hdrZmsg_lenZmsg_type�payloadZ	msg_tupler)r r r!r+Us

�z!MessageReaderWriter._read_messagecCs8|��}t�dt|�d|�}|j�d�||g��dS)Nr/r�)ZSerializeToStringr1�pack�lenr$�sendall�join)r&Zmsg_idr)Zmsg_str�headerr r r!�
write_messagebsz!MessageReaderWriter.write_messageN)�__name__�
__module__�__qualname__r'r*r-r+r?r r r r!r#Ds
r#c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1S)2�ProtocolcCs||_||_d|_dSr)�_reader�_writerZ_message)r&Z
reader_writerr r r!r'is
zProtocol.__init__cCs$t��}|j�tjj|�|j��Sr)	�MySQLxConnectionZCapabilitiesGetrEr?�MySQLx�ClientMessagesZCON_CAPABILITIES_GETrDr-r(r r r!�get_capabilitesns
�
zProtocol.get_capabilitescKs\t��}|��D]\}}|�|�}tj||d�}|jj�|g�q|j�t	j
j|�|��S)N)�namer)
rFZCapabilitiesSet�items�_create_anyZ
CapabilityZcapabilities�extendrEr?rGrHZCON_CAPABILITIES_SET�read_ok)r&�kwargsr)�keyrZ
capabilityr r r!�set_capabilitiests
�zProtocol.set_capabilitiescCs"tj|d�}|j�tjj|�dS)N)Z	mech_name)�
MySQLxSessionZAuthenticateStartrEr?rGrHZSESS_AUTHENTICATE_START)r&�methodr)r r r!�send_auth_start�s�zProtocol.send_auth_startcCs$|j��}t|tj�std��|jS)Nz>Unexpected message encountered during authentication handshake)rDr-rrR�AuthenticateContinuer�	auth_datar(r r r!�read_auth_continue�s
zProtocol.read_auth_continuecCs&tjt|�d�}|j�tjj|�dS)N)rV)rRrUr"rEr?rGrH�SESS_AUTHENTICATE_CONTINUE)r&�datar)r r r!�send_auth_continue�s��zProtocol.send_auth_continuecCs4	|j��}t|tj�rdSt|tj�rt|j��qr)	rDr-rrR�AuthenticateOkrG�Errorrr)r(r r r!�read_auth_ok�s

�zProtocol.read_auth_okcCsft|j�}|dg}|jD]#}|d}||jvrtd�|���|j|}|�|d|j�||<q
|S)NrJz-Unable to find placeholder for parameter: {0}r)r;Z_binding_mapZ	_bindingsrr6�arg_object_to_scalar�
_doc_based)r&�	statement�countZscalarsZbindingrJ�posr r r!�get_binding_scalars�s



�


�zProtocol.get_binding_scalarscCs�|jr
|j�|j�|jr|j�|�|��|jr#|j	|j
_|j|j
_
|jr-|j�|j�|jr7|j�|j�|jrC|j�|j�dSdSr)Z
_has_whereZcriteria�CopyFromZ_where_exprZ
_has_bindings�argsrMrcZ
_has_limitZ_limit_row_count�limitZ	row_countZ
_limit_offset�offsetZ	_has_sort�orderZ
_sort_exprZ
_has_group_by�groupingZ	_groupingZ_has_havingZgrouping_criteriaZ_having)r&�messager`r r r!�
_apply_filter�s

�zProtocol._apply_filtercCsdtj|jrtjntjtj|jj|jjd�d�}|j	r!|j
�|j�|�
||�|j�tjj|�dS�N�rJ�schema�Z
data_modelZ
collection)�
MySQLxCrudZFindr_�DOCUMENT�TABLE�
Collection�targetrJrnZ_has_projection�
projectionrMZ_projection_exprrkrEr?rGrHZ	CRUD_FIND)r&�stmt�findr r r!�	send_find�s�
��zProtocol.send_findcCs�tj|jrtjntjtj|jj|jjd�d�}|�	||�|j
D]$}tj|j|j
d�}|jdur=|j�|�|j|j��|j�|g�q |j�tjj|�dS)Nrmro)�	operation�source)rpZUpdater_rqrrrsrtrJrnrkZ_update_opsZUpdateOperationZupdate_typerzrrd�arg_object_to_exprryrMrEr?rGrHZCRUD_UPDATE)r&r`�updateZ	update_opZopexprr r r!�send_update�s*�
��
�

��zProtocol.send_updatecCsPtj|jrtjntjtj|jj|jjd�d�}|�	||�|j
�tj
j|�dSrl)rp�Deleter_rqrrrsrtrJrnrkrEr?rGrHZCRUD_DELETE)r&rv�deleter r r!�send_delete�s�
��zProtocol.send_deletecCsLtj|t|�dd�}|D]}|�|�}|j�|g�q|j�tj	j
|�dS)NF)�	namespacervZcompact_metadata)�	MySQLxSQLZStmtExecuter"rLrerMrEr?rGrHZSQL_STMT_EXECUTE)r&r�rvre�argrr r r!�send_execute_statement�s�
�zProtocol.send_execute_statementcCs�tj|jrtjntjtj|jj|jjd�d�}t	|d�r0|j
D]}|j�t
||j���g�q|jD]7}tj��}t|t�rT|D]}|�||j�}|j�|g�qAn|�||j�}|j�|g�|j�|g�q3|j�tjj|�dS)Nrmro�_fields)rpZInsertr_rqrrrsrtrJrn�hasattrr�rurMrZparse_table_insert_fieldZ_valuesZTypedRowr�listr{�field�rowrEr?rGrHZCRUD_INSERT)r&r`�insertr�rr��val�objr r r!�send_insert�s6�
��

�


��zProtocol.send_insertcCstt|t�rtjjt|�d�}tjd|d�}tjd|d�St|t�r*tjdt|�d�St|t	�r8tjdt
|�d�SdS)N)r�)�typeZv_stringr)r��scalar)rr
�MySQLxDatatypesZScalar�Stringr"�Any�boolrrr)r&r�r�r�r r r!rL�s


zProtocol._create_anycCs|�|�}|dur
td��dS)NzExpected to close the result)r+r�r&�rsr)r r r!�close_result	s
�zProtocol.close_resultcCs6|�|�}|durdSt|tj�r|S|j�|�dSr)r+r�MySQLxResultset�RowrDr*r�r r r!�read_rows
zProtocol.read_rowcCs�|jdkrt��}|�|j�|j�t|j|j|j	��dS|jdkr/t�
�}|�|j�dS|jdkrZt��}|�|j�|jtjj
krL|jj|_dS|jtjjkr\|jj|_dSdSdS)Nr��)r��MySQLxNotice�Warningr4r8�	_warnings�append�level�coder)ZSessionVariableChangedZSessionStateChanged�paramZ
ROWS_AFFECTEDrZv_unsigned_intZ_rows_affectedZGENERATED_INSERT_IDZ
_generated_id)r&r)r�Z
warningMsgZ
sessVarMsgZsessStateMsgr r r!�_process_frames,

�

���zProtocol._process_framecCs|	|j��}t|tj�rt|j��t|tj�r|�	||�nt|t
j�r&dSt|tj
�r0d|_n
t|tj�r:d|_n	|Sq)NT)rDr-rrGr\rr)r��Framer�r��
StmtExecuteOkr��	FetchDone�_closed�FetchDoneMoreResultsetsZ_has_more_resultsr�r r r!r+*s

�zProtocol._read_messagec
Cs�g}	|�|�}|dur	|St|tj�r|j�|�	|St|tj�s(td��t|j|j	|j
|j|j|j
|j|j|j|j|j|j�}|�|�q)NTzUnexpected msg type)r+rr�r�rDr*rrr��catalogrn�tableZoriginal_tablerJ�
original_name�lengthZ	collationZfractional_digits�flags�content_typer�)r&r��columnsr)�colr r r!�get_column_metadata;s(
�	��
�zProtocol.get_column_metadatacCs|durtjtjjt�d�St|t�rtjtjjt|�d�St|t�r.tjtjjt|�d�St|t	�r>tjtjjt
|�d�St|t�rnzt||��
�}|��r[tjtjjt|�d�WS|WStjtjjt|�d�YSt|t�r�tjtjjtt|��d�Std�t|����)N)r��literalzUnsupported type: {0})�
MySQLxExpr�Expr�LITERALrrr�rrr�floatrr
r�exprZhas_identifierrr�strrr6r�)r&r�allow_relationalZ
expressionr r r!r{NsB
�

�

�

�

�

�


�zProtocol.arg_object_to_exprcCs|�||�jSr)r{r�)r&rr�r r r!r^jszProtocol.arg_object_to_scalarcCs8|j��}t|tj�rt|j��t|tj�std��dS)NzUnexpected message encountered)rDr-rrGr\rr)�Okr(r r r!rNms

�zProtocol.read_okcCst��}|j�tjj|�dSr)rR�CloserEr?rGrHZ
SESS_CLOSEr(r r r!�
send_closeuszProtocol.send_closeN)r@rArBr'rIrQrTrWrZr]rcrkrxr}r�r�r�rLr�r�r�r+r�r{r^rNr�r r r r!rChs2	
	rC)r)B�__doc__r1ZprotobufrrGrrRrr�rr�rr�rr�r	rpr
r�rrF�resultr�compatr
rZdbdocr�errorsrrrr�rrrrrrZServerMessagesrXrUZSESS_AUTHENTICATE_OKr[ZSQL_STMT_EXECUTE_OKr��ERRORr\ZNOTICEr�ZRESULTSET_COLUMN_META_DATAZ
RESULTSET_ROWr�ZRESULTSET_FETCH_DONEr�Z$RESULTSET_FETCH_DONE_MORE_RESULTSETSr�ZOKr�ZCONN_CAPABILITIESZCapabilitiesr3r"�objectr#rCr r r r!�<module>sN �����
$
© 2025 GrazzMean