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.136.160.250
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : expr.cpython-310.pyc
o

�\�x�@s�ddlmZmZddlmZddlmZmZmZddl	m
Z
mZmZer&e
ZGdd�d�Zeejejejejejejejejejg	�Zidej�dej�d	ej�d
ej�dej�dej �d
ej!�dej"�dej#�dej$�dej%�dej&�dej'�dej(�dej)�dej*�dej+�ej,ejejejejejejejejejej-ej.ej/d�
�Z0Gdd�d�Z1dd�Z2dd�Z3dd �Z4d!d"�Z5d#d$�Z6d%d&�Z7d'd(�Z8d)d*�Z9Gd+d,�d,�Z:d3d.d/�Z;d0d1�Z<d2S)4�)�STRING_TYPES�PY3)�Scalar)�ColumnIdentifier�DocumentPathItem�Expr)�Column�Order�
Projectionc@seZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBdAZCdBS)C�	TokenTyper��������	�
���
������������������� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5�6�7�8�9�:�;�<�=�>�?�@�AN)D�__name__�
__module__�__qualname__�NOT�AND�OR�XOR�IS�LPAREN�RPAREN�
LSQBRACKET�
RSQBRACKET�BETWEEN�TRUE�NULL�FALSE�IN�LIKE�INTERVAL�REGEXP�ESCAPE�IDENT�LSTRING�LNUM�DOT�DOLLAR�COMMA�EQ�NE�GT�GE�LT�LE�BITAND�BITOR�BITXOR�LSHIFT�RSHIFT�PLUS�MINUS�MUL�DIV�HEX�BIN�NEG�BANG�MICROSECOND�SECOND�MINUTE�HOUR�DAY�WEEK�MONTH�QUARTER�YEAR�EROTEME�
DOUBLESTAR�MOD�COLON�OROR�ANDAND�LCURLY�RCURLY�CAST�DOTSTAR�ORDERBY_ASC�ORDERBY_DESC�AS�r�r��B/usr/local/python-3.10/lib/python3.10/site-packages/mysqlx/expr.pyr"s�r�and�or�xor�is�notZlike�inZregexpZbetween�interval�escape�castZdiv�hex�bin�true�false)
�null�second�minute�hour�day�week�monthZquarter�year�microsecondZasc�desc�asc@s&eZdZd	dd�Zdd�Zdd�ZdS)
�TokenrcCs||_||_||_dS�N)�type�val�len)�selfr�r�r�r�r�r��__init__�s
zToken.__init__cC�|��Sr�)�__str__�r�r�r�r��__repr__��zToken.__repr__cCsF|jtjks|jtjks|jtjkrt|j�d|jdSt|j�S)N�(�))r�rrarcrb�strr�r�r�r�r�r��s

�
z
Token.__str__N)r)rLrMrNr�r�r�r�r�r�r�r��s
r�cCsttjd�S)N�r�)rZV_NULLr�r�r�r��build_null_scalar��r�cC�ttj|d�S)N)r�Zv_double)rZV_DOUBLE)�dr�r�r��build_double_scalar��r�cCr�)N)r�Zv_signed_int)rZV_SINT)�ir�r�r��build_int_scalar�r�r�cCs.t|t�rtt|d��}ttjtj|d�d�S)Nzutf-8)�value)r�Zv_string)�
isinstancer�bytes�	bytearrayrZV_STRING�String)�sr�r�r��build_string_scalar�s
r�cCst�}tj|_||_|Sr�)rZV_BOOLr�Zv_bool)�br�r�r�r��build_bool_scalar�sr�cCst�}tj|_|j�|�|Sr�)r�LITERALr��literal�CopyFrom)Zanyval�er�r�r��build_literal_expr�sr�cCs,t�}tj|_||j_|jj���|�|Sr�)r�OPERATORr��operator�name�param�addr�)r�r�r�r�r�r��build_unary_op�s
r�cCs|�dd�S)N�"z"")�replace)�stringr�r�r��escape_literal�r�r�c@sDeZdZdd�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�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOS)P�
ExprParsercCs0||_g|_d|_||_i|_d|_|��dS)N�)r��tokens�pos�_allowRelationalColumns�placeholder_name_to_position�positional_placeholder_count�lex)r�r��allowRelationalr�r�r�r��szExprParser.__init__cCs$|dt|j�ko|j|d|kS�Nr)r�r�)r�r��cr�r�r��next_char_is�s$zExprParser.next_char_iscCs�|}d}|t|j�krC|j|��s|j|dkrC|j|dkr*|dur(td��d}|d}|t|j�krC|j|��s|j|dks|j||�}ttj|t|��}|S)NF�.Tz"Invalid number. Found multiple '.'r)r�r��isdigit�
ValueErrorr�rrc)r�r��startZ	found_dotr��tr�r�r��
lex_number�s ���	zExprParser.lex_numbercCs�|}|t|j�kr0|j|��s|j|dkr0|d}|t|j�kr0|j|��s|j|dks|j||�}ztt|��|��t|��}W|Sty[ttj	|t|��}Y|Sw)N�_r)
r�r��isalnumr��
reservedWords�lower�upper�KeyErrorrra)r�r�r�r��tokenr�r�r��	lex_alpha�s �����zExprParser.lex_alphacCs|j|}d}|d7}|}|t|j�kr]|j|}||kr0|dt|j�kr0|j|d|kr0q]||ks8|dkrN|dt|j�krBq]|d}||j|}n||}|d}|t|j�ks|t|j�ksk|j||krrtd�|���|dkr�ttj|t|�d�Sttj|t|�d�S)N�r�\z*Unterminated quoted string starting at {0}�`r)r�r�r��formatr�rrarb)r�r�Z
quote_charr�r�r�r�r�r��lex_quoted_token�s2

���zExprParser.lex_quoted_tokencCsRd}|t|j�k�r'|j|}|��r|d7}q|��r#|�|�}�n�|��s+|dkr2|�|�}�n�|dkr>ttj	|�}�n�|dkrJttj
|�}�n�|dkrVttj|�}�n�|dkrbttj|�}�n�|dkrnttj
|�}�n�|d	krzttj|��n�|d
kr�|�|d
�r�ttjd�}�qttj|�}�n|dkr�ttj|�}�ns|d
kr�ttj|�}�ng|dkr�ttj|�}�n[|dkr�|�|d�r�ttjdd�}�qttjdd�}�n?|dkr�|�|d�r�ttj|�}�qttj|�}�n%|dk�r
|�|d��rttjd�}�qttj|�}�n	|dk�rttj|�}n�|dk�r"ttj|�}n�|dk�r.ttj|�}n�|dk�r:ttj|�}n�|dk�rFttj|�}n�|dk�rRttj|�}n�|dk�rm|�|d��rfttj d�}�qttj!|�}n�|dk�r�|�|d��r�ttj"d�}�q|�|d��r�ttj#d�}�qttj$|�}n||d k�r�|�|d ��r�ttj%d!�}�q|�|d��r�ttj&d"�}�qttj'|�}nR|d#k�r�|�|d
��r�ttj(d$�}�q|dt|j�k�r�|j|d���r�|�|�}�qttj)|�}n|d%k�s|d&k�s|d'k�r|�*|�}nt+d(�,|���|j-�.|�||j7}|t|j�ks
dSdS))Nr�rr��?�:�{�}�+�-�*z**�/�$�%�=z==r�&�|z||r�r��[�]�~�,�!z!=�<z<<z<=�>z>>z>=r�z.*r��'r�zUnknown character at {0})/r�r��isspacer�r��isalphar�r�rr�r�r�r�rrrsr�r�rtrurer�rgr�rmr�rnrTrUrVrWrxrfrhryrprlrkrqrjrir�rdr�r�r�r��append)r�r�r�r�r�r�r�r�s�











(
�zExprParser.lexcCsT|jt|j�krtd�||j���|j|jj|kr(td�||j|j|j���dS)Nz5Expected token type {0} at pos {1} but no tokens leftz5Expected token type {0} at pos {1} but found type {2})r�r�r�r�r�r��r�r�r�r�r��assert_cur_tokenws
�
���zExprParser.assert_cur_tokencCs|�|j|�Sr���pos_token_type_isr�rr�r�r��cur_token_type_is�r�zExprParser.cur_token_type_iscCs|�|jd|�Sr�rrr�r�r��next_token_type_is��zExprParser.next_token_type_iscCs|t|j�ko|j|j|kSr�)r�r�r�)r�r�r�r�r�r�r�szExprParser.pos_token_type_iscCs(|�|�|j|jj}|jd|_|Sr�)rr�r�r�)r�r��vr�r�r��
consume_token�s
zExprParser.consume_tokencCslg}|�tj�|�tj�s.|�|���|�tj�r.|jd|_|�|���|�tj�s|�tj�|S)z{Parse a paren-bounded expression list for function arguments or IN
        list and return a list of Expr objects.
        r)	rrrTrrUr�exprrfr�)r��exprsr�r�r��paren_expr_list�s�zExprParser.paren_expr_listcCsX|�tj�t�}|�tj�r|�tj�|_|�tj�|j|j	j
|_|j	d|_	|Sr�)rrraZ
Identifierrrdr�schema_namer�r�r�r�)r��idr�r�r��
identifier�szExprParser.identifiercCs6t�}tj|_|jj�|���|jj�|�	��|Sr�)
rZ	FUNC_CALLr��
function_callr�r�rr��extendr)r�r�r�r�r�r �s
zExprParser.function_callcCs�|�tj�|j|j}|jtjkr0|j�d�r&|j�	d�r&t
d�|j���|�tj�|j}n|j
jtjkrA|�tj�|j}nt
d�|j���ttj|d�}|S)Nr�z-{0} is not a valid JSON/ECMAScript identifierzBExpected token type IDENT or LSTRING in JSON path at token pos {0}�r�r�)rrrdr�r�r�rar��
startswith�endswithr�r�r�r�rbr�MEMBER)r�r�Z
memberName�itemr�r�r��docpath_member�s"��zExprParser.docpath_membercCs�|�tj�|�tj�r|�tj�ttjd�S|�tj�r?t	|�tj��}|dkr2t
d�|j���|�tj�ttj
|d�Std�|j���)Nr�r�z%Array index cannot be negative at {0})r��indexzJException token type MUL or LNUM in JSON path array index at token pos {0})rrrVrrtrWrZARRAY_INDEX_ASTERISKrc�int�
IndexErrorr�r�ZARRAY_INDEXr�)r�rr�r�r��docpath_array_loc�s��zExprParser.docpath_array_loccCsPt�}|�tj�r|j�ttj|�tj�d�g�|j�|���t	t	j|d�S)Nr")r�r)
rrrra�
document_pathr!rr%rr)r��colr�r�r��document_field�s
��zExprParser.document_fieldcCs�g}	|�tj�r|�|���n;|�tj�r'|�tj�|�ttjd��n%|�tj	�r5|�|�
��n|�tj�rK|�tj�|�ttjd��nqMqt
|�}|dkrg||djtjkrgtd�|j���|S)z�Parse a JSON-style document path, like WL#7909, but prefix by @.
        instead of $. We parse this as a string because the protocol doesn't
        support it. (yet)
        Tr�r�rz$JSON path may not end in '**' at {0})rrrdrr'r�rrZMEMBER_ASTERISKrVr+r�ZDOUBLE_ASTERISKr�r�r�r�r�)r�Zdocpath�itemsr�r�r�r,�s4
�
����zExprParser.document_pathcCsg}|�|�tj��|�tj�r&|�tj�|�|�tj��|�tj�st|�dkr4td�|j	���|�
�t�}tdt|��D]}|dkrN|d|_
qB|dkrX|d|_qB|dkra|d|_qB|�tj�rs|�tj�|��|_t�}tj|_|j�|�|S)Nr
z#Too many parts to identifier at {0}r�rr)rrrrarrdr�r�r�r��reverser�xranger�Z
table_namerrer,rr�rr�)r��partsZcolidr�r�r�r�r��column_identifier�s6��
�
zExprParser.column_identifiercCs6|jt|j�krtd��|j|j}|jd7_|S)NzUnexpected end of token streamr)r�r�r�r�)r�r�r�r�r��
next_tokens
zExprParser.next_tokencCs$|��}|j|krtd�|���dS)NzExpected token type {0})r4r�r�r�)r��
token_typer�r�r�r��expect_tokens
�zExprParser.expect_tokencCs
t�}dSr�)ZObject)r��or�r�r��parse_json_doc�
zExprParser.parse_json_doccCs�d}|�tj�r|�tj�}n!|�tj�r|�tj�}n|jtjkr(t|j	�}nt
d�|j���|�
�}ttjd�}||jvrG|j||_|S|j	|_|j	|j|<|j	d7_	|S)Nr�z)Invalid placeholder name at token pos {0}r�r)rrrcrZLNUM_INTrar�r�r�r�r�r�r�r�rZPLACEHOLDERr��position)r�r�Zplace_holder_namerr�r�r��parse_place_holder!s*�
���zExprParser.parse_place_holdercCsF|��}|jtjtjfvr|�|�S|jtjkr|��S|jtjkr#n�|jtj	kr5|�
�}|�tj�|S|jtj
tjfvr?n�|jtj
tjfvri|��}|jtjkra|j|j|j|j_|��St|j|���S|jtjtjtjfvr|t|j|���S|jtjkr�tt|j��S|jtjkr�tt��S|jtjkr�d|jvr�ttt|j���Stt t!|j���S|jtj"tj#fvr�tt$|jtj"k��S|jtj%kr�|�&�S|jtj'kr�|�(�S|jtj)k�r|jd|_|�*tj	��s	|�*tj+��r
|�,|jdtj)��r
|�,|jdtj	��r
|�-�S|j.�s|�&�S|�/�St0d�1|j|j���)z<Parse an atomic expression and return a protobuf Expr objectr�rrr
zAUnknown token type = {0}  when expecting atomic expression at {1})2r4r�rr�r�r;r�r8r�rTrr6rUrrrsZ
peek_tokenrcr�r�r��atomic_exprr�rOrxryrbr�r�rZr�r��floatr�r)rYr[r�rer.rtZstarOperatorrarrdrr r�r3r�r�)r�r�r��peekr�r�r�r<9sp


��
������zExprParser.atomic_exprcCs�|�}|jt|j�krP|j|jj|vrPt�}tj|_|j|jj|j_|jj	�
��|�|jd|_|jj	�
��|��|}|jt|j�krP|j|jj|vs|S)z}Given a `set' of types and an Expr-returning inner parser function,
        parse a left associate binary operator expressionr)r�r�r�r�rr�r�r�r�r�r�r�)r��typesZinner_parser�lhsr�r�r�r��parse_left_assoc_binary_op_expr�s���	z*ExprParser.parse_left_assoc_binary_op_exprcC�|�ttjtjtjg�|j�Sr�)rA�setrrtrur�r<r�r�r�r��mul_div_expr���zExprParser.mul_div_exprcC�|�ttjtjg�|j�Sr�)rArCrrrrsrDr�r�r�r��add_sub_expr���zExprParser.add_sub_exprcCrFr�)rArCrrprqrGr�r�r�r��
shift_expr�rHzExprParser.shift_exprcCrBr�)rArCrrmrnrorIr�r�r�r��bit_expr�rEzExprParser.bit_exprc	Cs*|�ttjtjtjtjtjtjg�|j	�Sr�)
rArCrrjrirlrkrgrhrJr�r�r�r��	comp_expr�s��zExprParser.comp_exprcCs�|��}d}|�tj�rd}|�tj�|jt|j�kr�|g}|j|jj}|�tj	�rH|�tj	�|�tj�r@d}|�tj�|�
|���n||�tj�r\|�tj�|�|�
��nh|�tj�r�|�tj�|�
|���|�tj�r�|�tj�|�
|���nA|�tj�r�|�tj�|�
|���|�tj�|�
|���n |�tj�r�|�tj�|�
|���n|r�td�|j���d}|r�t�}tj|_||j_|jj�|�|r�td|�}|}|S)NFTz"Unknown token after NOT as pos {0}rO)rKrrrOrr�r�r�r�rSrr\r!rr]r`rXrPr_r�r�rr�r�r�r�r�r�)r�r@�is_not�paramsZop_namer�r�r�r��	ilri_expr�s\��
zExprParser.ilri_exprcCrFr�)rArCrrPr�rNr�r�r�r��and_expr�rHzExprParser.and_exprcCrFr�)rArCrrQr�rOr�r�r�r��or_expr�rHzExprParser.or_exprcCr�r�)rPr�r�r�r�r�r�zExprParser.exprcCst|�tj�d�S)N)r�)rrrrar�r�r�r��parse_table_insert_field�rz#ExprParser.parse_table_insert_fieldcCs
|��jSr�)r3rr�r�r�r��parse_table_update_field�r9z#ExprParser.parse_table_update_fieldcCs�g}d}|jt|j�krL|s|�tj�d}t|��d�}|�tj	�r1|�tj	�|�tj
�|_n|jd8_|�tj
�|_|�|�|jt|j�ks|S)NTF)�sourcer)
r�r�r�rrrfr
rrr�ra�aliasr)r�Zproject_expr�firstZ
projectionr�r�r��parse_table_select_projection�s
�z(ExprParser.parse_table_select_projectioncCs�g}d}|jt|j�krK|s|�tj�d}t|��d�}|�tj	�r.tj
|_|�tj	�n|�tj�r>tj
|_|�tj�|�|�|jt|j�ks|S)NTF)r)r�r�r�rrrfr	rrr�ZASC�	directionr�ZDESCr)r�Zorder_specsrU�orderr�r�r��parse_order_spec�s 
�zExprParser.parse_order_speccCsNg}d}|jt|j�kr%|s|�tj�d}|�|���|jt|j�ks|S)NTF)r�r�r�rrrfrr)r�Z	expr_listrUr�r�r��parse_expr_list
s�zExprParser.parse_expr_listN)*rLrMrNr�r�r�r�r�r�rrrrrrrr r'r+r.r,r3r4r6r8r;r<rArDrGrIrJrKrNrOrPrrQrRrVrYrZr�r�r�r�r��sP
^	
	I1r�TcCs6td�|��t||�}t|j�|��}t|�dS)Nz>>>>>>> parsing:  {0})�printr�r�r�r)Zexpr_stringr��pr�r�r�r��parseAndPrintExprs


r]cCstd�dS)Nzname like :name)r]r�r�r�r��x_test sr^N)T)=�compatrrZprotobuf.mysqlx_datatypes_pb2rZprotobuf.mysqlx_expr_pb2rrrZprotobuf.mysqlx_crud_pb2rr	r
�ranger1rrCrzr{r|r}r~rr�r�r�Zinterval_unitsrPrQrRrSrOr]r\r_rXr^r`r�rurvrwrYr[rZr�r�r�r�r�r�r�r�r�r�r�r�r�r�r]r^r�r�r�r��<module>s�C���������	�
���
������"
J
© 2025 GrazzMean