
    vd+\                        d Z ddlZddlZddlZddlmZmZ ddlmZ ddlm	Z	 ddl
mZ d=d	Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d d e          Z G d! d"e          Z G d# d$e          Z  G d% d&e          Z! G d' d(e          Z" G d) d*e          Z# G d+ d,e          Z$ G d- d.e          Z% G d/ d0e          Z& G d1 d2e          Z' G d3 d4e'          Z( G d5 d6e'          Z) G d7 d8e)          Z* G d9 d:e*          Z+ G d; d<e)          Z,dS )>z)Implementation of the Result Set classes.    N)datetime	timedelta   )DbDoc)MYSQL_CHARACTER_SETS)STRING_TYPESutf-8c                 Z    t          | t                    r|                     |          n| S N)
isinstancebytesdecode)valueencodings     I/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/mysqlx/result.pydecode_from_bytesr   %   s(    %/u%=%=H5<<!!!5H    c                    t          |          dk    rd S 	 	 t          j        t          t          j        t
          t          j        t          t          j        t          t          j
        t          t          j        t          t          j        t          t          j        t
          t          j        t$          t          j        t          t          j        t*          i|          |          S # t,          $ r}t.          j                            d                    |                     t.          j                            d                    |                    d                               Y d }~d S d }~ww xY w)Nr   {0}hex)lenColumnProtoTypeSINTvarsint_from_protobufUINTvarint_from_protobufBYTESbytes_from_protobufDATETIMEdatetime_from_protobufTIMEtime_from_protobufFLOATfloat_from_protobufDOUBLEdouble_from_protobufBITSETset_from_protobufENUMDECIMALdecimal_from_protobufKeyErrorsysstderrwriteformatencode)col_typepayloades      r   from_protobufr6   )   s$   
7||qt "7 "6!#6$&< "4!#6"$8!5!2 "5#%:
    	    
a)))
gnnU&;&;<<===ttttts   CC# #
E/-A7E**E/c                     | d d         S )N r4   s    r   r   r   A   s    3B3<r   c                 V    t          |           dk    sJ t          j        d|           S )N   z<fr   structunpackr:   s    r   r$   r$   F   +    w<<1=w'''r   c                 V    t          |           dk    sJ t          j        d|           S )N   z<dr=   r:   s    r   r&   r&   K   r@   r   c                 0   t          |           dk    rt          d          d}d}d}| D ]]}t          |t                    r|nt	          |          }|dz  dk    }|dz  }||z  }||z  }|r|| |dz   d          fc S |dz  }|dz  }^t          d          )Nr   zPayload is empty      r      zPayload too short)r   
ValueErrorr   intordEOFError)r4   curishiftccheoscur_bitss           r   varint_from_protobuf_streamrR   P   s    
7||q+,,,
C	AE 	 	Q$$0QQ#a&&DyQIU	X 	(gcAghh'''''q

&
'
''r   c                 n    t          |           \  }} t          |           dk    rt          d          |S )Nr   Payload too longrR   r   rG   r4   rL   s     r   r   r   f   s8    ,W55JAw
7||q+,,,Hr   c                     t          |           \  }} t          |           dk    rt          d          |dz  r| }|dz	  }|dz  }n|dz	  }|S )Nr   rT   r   l            rU   rV   s     r   r   r   n   sj    ,W55JAw
7||q+,,, 	3w B!V	W!VHr   c                 l   g }	 	 t          |           \  }} t          |           |k     r=t          |           dk    r|dk    rt          |          dk    rg S t          d          |                    | d |                    | |d          } t          |           dk    rnn# t          $ r Y nw xY w|S )NTr   r   zInvalid Set encoding)rR   r   rG   append)r4   s	field_lens      r   r)   r)   ~   s    
A	!<W!E!EIw7||i''w<<1$$aCFFaKKI !7888HHWZiZ()))ijj)G7||q   !  	 	 	E	  Hs   AB# A	B# #
B0/B0c                    g }d }t          | d                   }| dd          } | D ]}t          |          }|dz  dz	  }|dz  }|dk     rT|                    |           |dk     r|                    |           U|dk    rd} n_|dk    rd} nUt          d	          |dk    rd}|dk    sJ  n4|dk    rd}|dk    sJ  n"t          d
                    |                    t	          j        ||| f          S )Nr   r      r<      
         zInvalid BCDzInvalid BCD: {0})rI   rY   rG   r1   decimalDecimal)r4   digitssignscalerN   rO   high_bcdlow_bcds           r   r,   r,      sB   FD
OOEabbkG B BVVI!#t)d??MM(###~~g&&&&DD ///Dd????EDd????E/66x@@AAA?D&5&1222r   c           	      \   d}d}d}d}t          |           \  }} t          |           \  }} t          |           \  }} 	 t          |           \  }} t          |           \  }} t          |           \  }} t          |           \  }} n# t          $ r Y nw xY wt          |||||||          S Nr   )rR   rG   r   )r4   hourminutessecondsusecondsyearmonthdays           r   r    r       s    DGGH/88MD'099NE7.w77LC3G<<g6w??6w??7@@''    D%dGWhGGGs    AB	 	
BBc                 Z   d}d}d}d}| d         dk    }| dd          } 	 t          |           \  }} t          |           \  }} t          |           \  }} t          |           \  }} n# t          $ r Y nw xY w|r|r|dz  }n|r|dz  }n|r|dz  }n|r|dz  }t          ||||          S )Nr   r   r8   )hoursrl   rm   microseconds)rR   rG   r   )r4   rk   rl   rm   rn   negates         r   r"   r"      s   DGGHQZ1_FabbkG3G<<g6w??6w??7@@''     	 	BJDD 	rMGG 	rMGG 	NH4'"*, , , ,s   AA) )
A65A6c                       e Zd ZdZdS )
Collations!   N)__name__
__module____qualname__UTF8_GENERAL_CIr9   r   r   rw   rw      s        OOOr   rw   c                   J   e 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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ZdZdZdZ dZ!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 )-
ColumnTyper         r<         rF   rB   	   r_      r`   ra      r^                                                       rx   "   #   c                 h    t          |                                           D ]\  }}||k    r|c S d S r   )varsitems)clsneedlekeyr   s       r   	to_stringzColumnType.to_string  sF    s))//++ 	 	JC


 	 	r   c                 H    t          | |                                d           S r   )getattrupper)r   r   s     r   from_stringzColumnType.from_string  s    sCIIKK...r   c                 "    || j         | j        fv S r   )CHARVARCHARr   r3   s     r   is_charzColumnType.is_char  s    CHck333r   c                 "    || j         | j        fv S r   )BINARY	VARBINARYr   s     r   	is_binaryzColumnType.is_binary#  s    CJ777r   c                 :    || j         | j        | j        | j        fv S r   )TEXTTINYTEXT
MEDIUMTEXTLONGTEXTr   s     r   is_textzColumnType.is_text'  s%    CHclCNL  	r   c                 F    || j         | j        | j        | j        | j        fv S r   )REALr%   r#   r+   NUMERICr   s     r   is_decimalszColumnType.is_decimals,  s)    CHcj#)S[K  	r   c                 R    || j         | j        | j        | j        | j        | j        fv S r   )r'   TINYINTSMALLINT	MEDIUMINTINTBIGINTr   s     r   
is_numericzColumnType.is_numeric1  s-    CGS[#,GSZ" " 	"r   c                 "    || j         | j        fv S r   )r(   r*   r   s     r   is_finite_setzColumnType.is_finite_set6  s    CGSX///r   N)/ry   rz   r{   r'   r   r   r   r   r   r   r#   r+   r   r%   JSONSTRINGr   r!   DATEr   	TIMESTAMPr(   r*   GEOMETRYXMLYEARr   r   r   r   TINYBLOBBLOB
MEDIUMBLOBLONGBLOBr   r   r   r   classmethodr   r   r   r   r   r   r   r   r9   r   r   r~   r~      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  [
 / / [/ 4 4 [4 8 8 [8   [   [ " " [" 0 0 [0 0 0r   r~   c                   :    e 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S )r   r   r   r   r   rF   r_   r`   r^   r   r   r   N)ry   rz   r{   r   r   r%   r#   r   r!   r   r(   r*   r'   r+   r9   r   r   r   r   ;  sE        DDFEEDH
CD
CGGGr   r   c                   P    e Zd Zd Zd Zed             Zej        d             ZdS )Flagsc                     i | _         i | _        | j        j                                        D ]F\  }}|                    d          rt          |          t          fv r|| j         |<   || j        |<   G|| _        d S )N__)	_allowed_flags_flag_names	__class____dict__r   
startswithtyperH   r   )selfr   kvs       r   __init__zFlags.__init__J  s     N+1133 	( 	(DAq||D!! Aww3'!!)*#A&&' #


r   c                    d}g }| j         }t          dd          D ]}|dz  }||z  }|r	 |                    | j        |                    0# t          $ rv t
          j                            d                    | j                             t
          j                            d                    | j	        j
                             Y w xY wd                    |          S )Nr   r   ?   r   ,)r   rangerY   r   r-   r.   r/   r0   r1   r   r   join)r   mask
flag_namesr   _flags         r   __str__zFlags.__str__U  s    

q" 		L 		LAQJD4<D LL%%d&6t&<==== L L LJ$$U\\$2B%C%CDDDJ$$U\\$.2I%J%JKKKKKL	L xx
###s    AA=CCc                     | j         S r   _valuer   s    r   r   zFlags.valueg  
    {r   c                     || _         d S r   r   )r   r   s     r   r   zFlags.valuek  s    r   N)ry   rz   r{   r   r   propertyr   setterr9   r   r   r   r   I  sj        	 	 	$ $ $$   X \  \  r   r   c                   "    e Zd ZdZdZdZdZdZdS )ColumnFlagsr   r   @   rD      N)ry   rz   r{   NOT_NULLPRIMARY_KEY
UNIQUE_KEYMULTIPLE_KEYAUTO_INCREMENTr9   r   r   r   r   p  s'        HKJLNNNr   r   c                       e Zd ZdZdS )DatetimeColumnFlagsr   N)ry   rz   r{   r   r9   r   r   r   r   x          IIIr   r   c                       e Zd ZdZdS )UIntColumnFlagsr   N)ry   rz   r{   ZEROFILLr9   r   r   r   r   |          HHHr   r   c                       e Zd ZdZdS )DoubleColumnFlagsr   Nry   rz   r{   UNSIGNEDr9   r   r   r   r     r   r   r   c                       e Zd ZdZdS )FloatColumnFlagsr   Nr   r9   r   r   r  r    r   r   r  c                       e Zd ZdZdS )BytesColumnFlagsr   N)ry   rz   r{   	RIGHT_PADr9   r   r   r  r    r   r   r  c                       e Zd ZdZdZdZdS )BytesContentTyper   r   r   N)ry   rz   r{   r   r   r   r9   r   r   r  r    s        HD
CCCr   r  c                       e Zd Z	 	 	 	 d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 Zd Zd Zd Zd Zd ZdS )ColumnMetaDataNc                 h   t          |          | _        t          |          | _        t          |          | _        t          |          | _        t          |          | _        || _        d | _        || _        || _	        |	| _
        |
| _        || _        || _        d| _        d| _        d| _        d| _        d | _        d | _        | j
        dk    r| j
        t)          t*                    k    r't-          d                    | j
                            t*          | j
                 }|d         | _        |d         | _        d| j        v pd| j        v | _        |                                  | j        t2          j        t2          j        t2          j        t2          j        t2          j        fv | _        d S )NFr   z"No mapping found for collation {0}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_namer   r   rG   r1   	_map_typer~   r   r   r   r   r   )r   r3   catalogschematableoriginal_tablenameoriginal_namelength	collationfractional_digitsflagscontent_typeinfos                 r   r   zColumnMetaData.__init__  s    )00&t,,
/>>'..0@@##"3)###' ?Q#&:";";;;  "$$*F4?$;$;= = ='8D'+AwD$#'7D '4+??  >%)== O*.j/,1 1r   c                 l    t          | j        | j        | j        t          | j                  d          S )N)r3   r"  r#  r*  )strr  r  r  r  r   s    r   r   zColumnMetaData.__str__  s:    l[%%	
 
   	r   c                     | j         S r   )r  r   s    r   get_schema_namezColumnMetaData.get_schema_name  
    |r   c                     | j         p| j        S r   )r  r  r   s    r   get_table_namezColumnMetaData.get_table_name  s    #2t{2r   c                     | j         p| j        S r   )r  r  r   s    r   get_table_labelzColumnMetaData.get_table_label  s    {2d22r   c                     | j         p| j        S r   )r  r  r   s    r   get_column_namezColumnMetaData.get_column_name  s    "0dj0r   c                     | j         p| j        S r   )r  r  r   s    r   get_column_labelzColumnMetaData.get_column_label  s    z0T00r   c                     | j         S r   )r  r   s    r   get_typezColumnMetaData.get_type  
    ~r   c                     | j         S r   )r  r   s    r   
get_lengthzColumnMetaData.get_length  r1  r   c                     | j         S r   )r  r   s    r   get_fractional_digitsz$ColumnMetaData.get_fractional_digits  s    &&r   c                     | j         S r   )r  r   s    r   get_collation_namez!ColumnMetaData.get_collation_name  s    ##r   c                     | j         S r   )r  r   s    r   get_character_set_namez%ColumnMetaData.get_character_set_name  s    ''r   c                     | j         S r   )r  r   s    r   is_number_signedzColumnMetaData.is_number_signed  s    ""r   c                     | j         S r   )r  r   s    r   	is_paddedzColumnMetaData.is_padded  s
    r   c                     | j         S r   )r  r   s    r   is_byteszColumnMetaData.is_bytes  r<  r   c                    | j         dk    rt          j        | _        nh| j         dk    rt          j        | _        nK| j         dk    rt          j        | _        n.| j         dk    rt          j        | _        nt          j        | _        d| _        d S )Nr<   r   r   r   T)	r  r~   r   r  r   r   r   r   r  r   s    r   _map_int_typezColumnMetaData._map_int_type  s}    <1'/DNN\Q'0DNN\Q'1DNN\R'^DNN'.DN"r   c                 .   | j         dk    rt          j        | _        nh| j         dk    rt          j        | _        nK| j         dk    rt          j        | _        n.| j         dk    rt          j        | _        nt          j        | _        | j        dz  | _	        d S )Nr   r   rB   r_   r   )
r  r~   r   r  r   r   r   r   r  
_zero_fillr   s    r   _map_uint_typezColumnMetaData._map_uint_type  s    <1'/DNN\Q'0DNN\Q'1DNN\R'^DNN'.DN+/r   c                 b   | j         t          j        k    rt          j        | _        nx| j         t          j        k    rt          j        | _        nQ| j         t          j        k    rt          j        | _        n*| j        rt          j        | _        nt          j	        | _        | j
        dz  | _        d S )Nr   )r  r  r   r~   r  r   r   r  r   r   r  r  r   s    r   
_map_byteszColumnMetaData._map_bytes  s    !1!:::'0DNN#3#888'_DNN#3#777'^DNN_ 	/'-DNN'.DN+/r   c                     | j         dk    rt          j        | _        d S | j         dk    rt          j        | _        d S | j        t          j        z  dk    rt          j        | _        d S t          d          )Nr_   r   r   z#Datetime mapping scenario unhandled)	r  r~   r   r  r   r  r   r   rG   r   s    r   _map_datetimezColumnMetaData._map_datetime  sj    <2'_DNNN\R'0DNNN[.881<<'1DNNNBCCCr   c                    | j         t          j        k    r|                                  d S | j         t          j        k    r|                                  d S | j         t          j        k    r0t          j        | _        | j	        t          j        z  dk    | _        d S | j         t          j        k    r0t          j        | _        | j	        t          j        z  dk    | _        d S | j         t          j        k    r0t          j        | _        | j	        t          j        z  dk    | _        d S | j         t          j        k    r|                                  d S | j         t          j        k    rt          j        | _        d S | j         t          j        k    r|                                  d S | j         t          j        k    rt          j        | _        d S | j         t          j        k    rt          j        | _        d S | j         t          j        k    rt          j        | _        d S t/          d                    | j                             )Nr   zUnknown column type {0})r  r   r   rL  r   rO  r#   r~   r  r  r  r   _is_number_signedr+   r%   r   rQ  r!   r   rS  r(   r*   r'   rG   r1   r   s    r   r   zColumnMetaData._map_type  s   333     !555!!!!!!666'-DN/88Q> """!888'/DN/88Q> """!777'.DN/88Q> """!666OO!555'_DNNN!999     !444'^DNNN!555'_DNNN!444'^DNNN6==d>NOOPPPr   )NNNNNNNNNNN)ry   rz   r{   r   r   r0  r3  r5  r7  r9  r;  r>  r@  rB  rD  rF  rH  rJ  rL  rO  rQ  rS  r   r9   r   r   r	  r	    sZ       BF?C@D*.$1 $1 $1 $1L    3 3 33 3 31 1 11 1 1    ' ' '$ $ $( ( (# # #    # # #* * ** * *D D DQ Q Q Q Qr   r	  c                   V    e Zd Zd Zed             Zed             Zed             ZdS )Warningc                 0    || _         || _        || _        d S r   )_level_code_message)r   levelcodemsgs       r   r   zWarning.__init__;  s    
r   c                     | j         S r   )rY  r   s    r   LevelzWarning.Level@  r   r   c                     | j         S r   )rZ  r   s    r   CodezWarning.CodeD  s
    zr   c                     | j         S r   )r[  r   s    r   MessagezWarning.MessageH  s
    }r   N)ry   rz   r{   r   r   r`  rb  rd  r9   r   r   rW  rW  :  st          
   X   X   X  r   rW  c                   $    e Zd ZdZd Zd Zd ZdS )RowzRepresents a row element returned from a SELECT query.

    Args:
        rs (mysqlx.Result): The Result set.
        fields (list): The list of fields.
    c                 "    || _         || _        d S r   )_fields
_resultset)r   rsfieldss      r   r   zRow.__init__T  s    r   c                     t          |t                    r| j                            |          }n'|t	          | j                  k    rt          d          | j        |         S )NzIndex out of range)r   r   ri  index_ofr   rh  
IndexErrorr   indexs     r   __getitem__zRow.__getitem__X  s\    e\** 	3O,,U33EEc$,''''1222|E""r   c                    | j                             |          }|t          | j                  k    rt	          d          |dk    r"t          d                    |                    t          | j        |                   S )zpReturns the value if the index by string.

        Args:
            str_index (str): The string index.
        zArgument out of ranger8   zColumn name '{0}' not found)ri  rm  r   rh  rn  rG   r1   r.  )r   	str_index	int_indexs      r   
get_stringzRow.get_string_  sx     O,,Y77	DL))))4555??:AA)LLMMM4<	*+++r   N)ry   rz   r{   __doc__r   rq  ru  r9   r   r   rf  rf  M  sK           # # #, , , , ,r   rf  c                   $    e Zd ZdZd Zd Zd ZdS )
BaseResultzProvides base functionality for result objects.

    Args:
        connection (mysqlx.connection.Connection): The Connection object.
    c                     || _         d| _        d| _        d| _        g | _        |	d | _        d S |j        | _        |                                 d S )NFr   r8   )_connection_closed_rows_affected_generated_id	_warnings	_protocolprotocolfetch_active_result)r   
connections     r   r   zBaseResult.__init__s  s[    %!DNNN'0DN**,,,,,r   c                     | j         S )zXReturns the warnings.

        Returns:
            list: The list of warnings.
        )r~  r   s    r   get_warningszBaseResult.get_warnings  s     ~r   c                 *    t          | j                  S )zcReturns the number of warnings.

        Returns:
            int: The number of warnings.
        )r   r~  r   s    r   get_warnings_countzBaseResult.get_warnings_count  s     4>"""r   N)ry   rz   r{   rv  r   r  r  r9   r   r   rx  rx  m  sK         
- - -  # # # # #r   rx  c                   <     e Zd ZdZd fd	Zd Zd Zd Zd Z xZ	S )	ResultzAllows 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          t          |                               |           || _        || j                            |            d S d S r   )superr  r   _idsrz  close_result)r   r  idsr   s      r   r   zResult.__init__  sS    fd$$Z000	!))$///// "!r   c                     | j         S )zReturns the number of affected items for the last operation.

        Returns:
            int: The number of affected items.
        )r|  r   s    r   get_affected_items_countzResult.get_affected_items_count  s     ""r   c                     | j         S )zjReturns the last insert id auto generated.

        Returns:
            int: The last insert id.
        r}  r   s    r   get_autoincrement_valuezResult.get_autoincrement_value  s     !!r   c                 b    | j         dS t          | j                   dk    rdS | j         d         S )zDReturns ID of the last document inserted into a collection.
        Nr   )r  r   r   s    r   get_document_idzResult.get_document_id  s5     94ty>>Q4y|r   c                     | j         S )z5Returns the list of generated documents IDs.
        )r  r   s    r   get_document_idszResult.get_document_ids  s     yr   )NN)
ry   rz   r{   rv  r   r  r  r  r  __classcell__r   s   @r   r  r    s         0 0 0 0 0 0# # #" " "        r   r  c                   ^     e Zd Z fdZd Zed             Zd Zd Zd Z	d Z
d Zd	 Z xZS )
BufferingResultc                     t          t          |                               |           |                                  d S r   )r  r  r   _init_resultr   r  r   s     r   r   zBufferingResult.__init__  s9    ot$$--j999r   c                     | j                             |           | _        t          | j                  dk    rdnd| _        g | _        d| _        d| _        | j        r| nd | j         _        d S )Nr   TFr   r8   )	rz  get_column_metadata_columnsr   _has_more_data_items
_page_size	_position_active_resultr   s    r   r  zBufferingResult._init_result  sl    (<<TBB&)$-&8&81&<&<dd%262E*O$$4'''r   c                 *    t          | j                  S )z!int: The total of items.
        )r   r  r   s    r   countzBufferingResult.count  s     4;r   c                     | j         |         S r   )r  ro  s     r   rq  zBufferingResult.__getitem__  s    {5!!r   c                 `    d}| j         D ]#}|                                |k    r|c S |dz   }$dS )zeReturns the index of the column.

        Returns:
            int: The index of the column.
        r   r   r8   )r  r7  )r   col_namerp  cols       r   rm  zBufferingResult.index_of  sJ     = 	 	C""$$00AIEErr   c                    | j                             |           }|d S d gt          |j                  z  }|st	          t          |j                            D ]b}| j        |         }|                                rt          |j        |                   n|j        |         }t          |j	        |          ||<   ct          | |          S r   )rz  read_rowr   fieldr   r  rJ  r   r6   r  rf  )r   dumpingrowitemxr  r   s          r   
_read_itemzBufferingResult._read_item  s    ''--;4vCI& 	@3sy>>** @ @mA&LLNN=*39Q<88803	! '??Q4r   c                     | j         rdS d}t          | j                  D ]:}|                     d          }| n | j                            |           |dz  };|S )NFr   r   )r{  r   r  r  r  rY   )r   r  rL   r  s       r   _page_in_itemszBufferingResult._page_in_items  sp    < 	5t'' 	 	A??5))D|Kt$$$QJEEr   c                 >    | j         rdS |                     d          S )zS Fetch one item.

        Returns:
            Row/DbDoc: one result item.
        NF)r{  r  r   s    r   	fetch_onezBufferingResult.fetch_one  s%     < 	4u%%%r   c                 >    	 |                                  sn| j        S )zPFetch all items.

        Returns:
            list: The list of items.
        )r  r  r   s    r   	fetch_allzBufferingResult.fetch_all  s-    	&&(( 	 {r   )ry   rz   r{   r   r  r   r  rq  rm  r  r  r  r  r  r  s   @r   r  r    s            P P P     X 
" " "      	& 	& 	&	 	 	 	 	 	 	r   r  c                   8     e Zd ZdZ fdZed             Z xZS )	RowResultzAllows traversing the Row objects returned by a Table.select operation.

    Args:
        connection (mysqlx.connection.Connection): The Connection object.
    c                 X    t          t          |                               |           d S r   )r  r  r   r  s     r   r   zRowResult.__init__  '    i''
33333r   c                     | j         S )z#list: The list of columns.
        )r  r   s    r   columnszRowResult.columns  s     }r   )ry   rz   r{   rv  r   r   r  r  r  s   @r   r  r    s]         
4 4 4 4 4   X    r   r  c                   .     e Zd ZdZ fdZd Zd Z xZS )	SqlResultzRepresents a result from a SQL statement.

    Args:
        connection (mysqlx.connection.Connection): The Connection object.
    c                 f    t          t          |                               |           d| _        d S )NF)r  r  r   _has_more_resultsr  s     r   r   zSqlResult.__init__)  s/    i''
333!&r   c                     | j         S )z=Returns the identifier for the last record inserted.
        r  r   s    r   r  z!SqlResult.get_autoincrement_value-  s     !!r   c                 N    | j         rdS d| _        |                                  dS )NFT)r{  r  r  r   s    r   next_resultzSqlResult.next_result2  s0    < 	5!&tr   )ry   rz   r{   rv  r   r  r  r  r  s   @r   r  r  #  s`         
' ' ' ' '" " "
      r   r  c                   ,     e Zd ZdZ fdZ fdZ xZS )	DocResultzAllows traversing the DbDoc objects returned by a Collection.find
    operation.

    Args:
        connection (mysqlx.connection.Connection): The Connection object.
    c                 X    t          t          |                               |           d S r   )r  r  r   r  s     r   r   zDocResult.__init__A  r  r   c                     t          t          |                               |          }|d S t          t	          |d                             S rj   )r  r  r  r   r   )r   r  r  r   s      r   r  zDocResult._read_itemD  sE    It$$//88;4&s1v..///r   )ry   rz   r{   rv  r   r  r  r  s   @r   r  r  :  s[         4 4 4 4 40 0 0 0 0 0 0 0 0r   r  )r	   )-rv  rb   r>   r.   r   r   dbdocr   charsetsr   compatr   r   r6   r   r$   r&   rR   r   r   r)   r,   r    r"   objectrw   r~   r   r   r   r   r   r   r  r  r  r	  rW  rf  rx  r  r  r  r  r  r9   r   r   <module>r     s  0 0 /   



 ( ( ( ( ( ( ( (       * * * * * *            I I I I  0  
( ( (
( ( (
( ( (,       *!3 !3 !3HH H H*, , ,@       H0 H0 H0 H0 H0 H0 H0 H0V    f   $ $ $ $ $F $ $ $N    %       +       k              {       {       {   eQ eQ eQ eQ eQV eQ eQ eQP    f   &, , , , ,& , , ,@!# !# !# !# !# !# !# !#H+ + + + +Z + + +\Q Q Q Q Qj Q Q Qh            	   .0 0 0 0 0 0 0 0 0 0r   