
    :?h                       S r SSKJr  SSKrSSKrSSKrSSKJrJr  SSKJ	r	J
r
JrJrJrJrJrJr  SSKJr  SSKJr  SS	KJrJr  SS
KJrJr  S<S jrS=S jrS>S jrS>S jrS?S jrS@S jr S@S jr!SAS jr"SBS jr#SCS jr$SDS jr% " S S5      r& " S S5      r' " S S5      r( " S S5      r) " S S \)5      r* " S! S"\*5      r+ " S# S$\*5      r, " S% S&\*5      r- " S' S(\*5      r. " S) S*\*5      r/ " S+ S,\*5      r0 " S- S5      r1 " S. S/5      r2 " S0 S15      r3 " S2 S3\35      r4 " S4 S5\35      r5 " S6 S7\55      r6 " S8 S9\65      r7 " S: S;\55      r8g)Ez%Implementation of the Result classes.    )annotationsN)datetime	timedelta)AnyCallableDictListOptionalSequenceTupleUnion   )MYSQL_CHARACTER_SETS)DbDoc)decode_from_bytes
deprecated)ConnectionType
FieldTypesColumnc                   [        U5      S:X  a  g U R                  5       [        R                  :X  a  [	        US S 5      $  [
        R                  U R                  5          " U5      $ ! [         aY  n[        R                  R                  U 5        [        R                  R                  UR                  S5       5         S nAg S nAff = f)Nr   hex)lenget_type
ColumnTypeSTRINGr   ColumnProtoTypeconverter_mapget_proto_typeKeyErrorsysstderrwriteencode)columnpayloaderrs      U/var/www/ev-aguas/ev-aguas-proceso/venv/lib/python3.13/site-packages/mysqlx/result.pyfrom_protobufr)   /   s    
7|qJ--- "..,,V-B-B-DEgNN 

C5"

GNN5124s   &A) )
C3ACCc                    U S S $ )Nr    r&   s    r(   bytes_from_protobufr-   >   s    3B<    c                X    [        U 5      S:X  d   e[        R                  " SU 5      S   $ )N   z<fr   r   structunpackr,   s    r(   float_from_protobufr4   C   *    w<1==w'**r.   c                X    [        U 5      S:X  d   e[        R                  " SU 5      S   $ )N   z<dr   r1   r,   s    r(   double_from_protobufr8   H   r5   r.   c                   [        U 5      S:X  a  [        S5      eSnSnSnU  HV  n[        U[        5      (       a  UO
[	        U5      nUS-  S:H  nUS-  nXs-  nX'-  nU(       a  X US-   S  4s  $ US-  nUS-  nMX     [        S5      e)Nr   zPayload is empty      r      zPayload too short)r   
ValueError
isinstanceintordEOFError)r&   curishiftitemchareoscur_bitss           r(   varint_from_protobuf_streamrI   M   s    
7|q+,,
C	AE!$,,t#d)d{q $;	cAgi(((q
  &
''r.   c                T    [        U 5      u  p[        U 5      S:w  a  [        S5      eU$ )Nr   Payload too longrI   r   r=   r&   rC   s     r(   varint_from_protobufrN   c   s+    ,W5JA
7|q+,,Hr.   c                    [        U 5      u  p[        U 5      S:w  a  [        S5      eUS-  (       a  U) nUS-	  nUS-  nU$ US-	  nU$ )Nr   rK   r   l            rL   rM   s     r(   varsint_from_protobufrP   k   s_    ,W5JA
7|q+,, 	3wBF	W H FHr.   c                    / n  [        U 5      u  p [        U 5      U:  a1  [        U 5      S:X  a  US:X  a  [        U5      S:X  a  / $ [        S5      eUR                  U S U 5        XS  n [        U 5      S:X  a   U$  M{  ! [         a     U$ f = f)Nr   r   zInvalid Set encoding)rI   r   r=   append)r&   set_pb	field_lens      r(   set_from_protobufrU   {   s    F
	!<W!EI7|i'w<1$aCK1<LI !788MM'*9-.j)G7|q  M !   	M	s   AA? 2A? ?
BBc                
   / nS n[        U S   [        5      (       a  U S   O[        U S   5      nU SS  n U  H  n[        U[        5      (       a  UO
[        U5      nUS-  S-	  nUS-  nUS:  aI  UR                  U5        US:  a  UR                  U5        Mb  US:X  a  Sn  OIUS:X  a  Sn  O?[	        S	5      eUS:X  a  SnUS:X  d   e  O"US:X  a  SnUS:X  d   e  O[	        S
U 35      e   [
        R                  " X!U* 45      $ )Nr   r      r0      
         zInvalid BCDzInvalid BCD: )r>   r?   r@   rR   r=   decimalDecimal)r&   digitssignscalerE   rF   high_bcdlow_bcds           r(   decimal_from_protobufrc      s#   FD$WQZ55GAJ3wqz?EabkG!$,,t#d)4KA%+d?MM(#~g&DD //Dd?"?Dd?"?}XJ7883 6 ??D5&122r.   c           	        SnSnSnSn[        U 5      u  pP[        U 5      u  p`[        U 5      u  pp [        U 5      u  p[        U 5      u  p [        U 5      u  p0[        U 5      u  p@[        XVXqX#U5      $ ! [         a     Nf = f)Nr   )rI   r=   r   )r&   hourminutessecondsusecondsyearmonthdays           r(   datetime_from_protobufrl      s    DGGH/8MD09NE.w7LC3G<6w?6w?7@ DGhGG  s   4A3 3
B ?B c                >   SnSnSnSnU S   S:H  nU SS  n  [        U 5      u  p[        U 5      u  p [        U 5      u  p0[        U 5      u  p@U(       a3  U(       a  US-  nO&U(       a  US-  nOU(       a  US-  nOU(       a  US-  n[        XX4S9$ ! [         a     NPf = f)Nr   r   r   )hoursrf   rg   microseconds)rI   r=   r   )r&   re   rf   rg   rh   negates         r(   time_from_protobufrq      s    DGGHQZ1_FabkG3G<6w?6w?7@ BJDrMGrMGNHW   s   4B 
BBc                      \ rS rSrSrSrg)
Collations   !   r+   N)__name__
__module____qualname____firstlineno__UTF8_GENERAL_CI__static_attributes__r+   r.   r(   rs   rs      s    Or.   rs   c                  @   \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&\'S/S% j5       r(\'S0S& j5       r)\'S1S' j5       r*\'S1S( j5       r+\'S1S) j5       r,\'S1S* j5       r-\'S1S+ j5       r.\'S1S, j5       r/S-r0g.)2r      r         r0         r<   r7   	   rY      rZ   r[      rX                                                       ru   "   #   c                Z    [        U 5      R                  5        H  u  p#X1:X  d  M  Us  $    g N)varsitems)clsneedlekeyvalues       r(   	to_stringColumnType.to_string  s(    s)//+JC
 , r.   c                6    [        XR                  5       S 5      $ r   )getattrupper)r   r   s     r(   from_stringColumnType.from_string  s    sIIK..r.   c                8    UU R                   U R                  4;   $ r   )CHARVARCHARr   col_types     r(   is_charColumnType.is_char  s"    HHKK
 
 	
r.   c                8    UU R                   U R                  4;   $ r   )BINARY	VARBINARYr   s     r(   	is_binaryColumnType.is_binary%  s"    JJMM
 
 	
r.   c                d    UU R                   U R                  U R                  U R                  4;   $ r   )TEXTTINYTEXT
MEDIUMTEXTLONGTEXTr   s     r(   is_textColumnType.is_text,  s0    HHLLNNLL	
 
 	
r.   c                z    UU R                   U R                  U R                  U R                  U R                  4;   $ r   )REALDOUBLEFLOATDECIMALNUMERICr   s     r(   is_decimalsColumnType.is_decimals5  s7    HHJJIIKKKK
 
 	
r.   c                    UU R                   U R                  U R                  U R                  U R                  U R
                  4;   $ r   )BITTINYINTSMALLINT	MEDIUMINTINTBIGINTr   s     r(   
is_numericColumnType.is_numeric?  s>    GGKKLLMMGGJJ
 
 	
r.   c                8    UU R                   U R                  4;   $ r   )SETENUMr   s     r(   is_finite_setColumnType.is_finite_setJ  s"    GGHH
 
 	
r.   r+   N)r   r   returnOptional[str])r   strr   r   )r   r?   r   bool)1rv   rw   rx   ry   r   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   r{   r+   r.   r(   r   r      sO   
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.   r   c                  |    \ rS rSr% SrSrSrSrSrSr	Sr
S	rS
rSrSr\\\\\\\
\\	\\\\\\\\\\\\\0rS\S'   Srg)r   iR  r   r~   r   r   r<   rY   rZ   rX   r   r   r   z!Dict[int, Callable[[bytes], Any]]r   r+   N)rv   rw   rx   ry   SINTUINTr   r   r   r   r   r   r   r   r   rP   rN   r-   rl   rq   r4   r8   rU   rc   r   __annotations__r{   r+   r.   r(   r   r   R  s    DDFEEDH
CD
CG 	#""( "$!!&8M4 r.   r   c                  d    \ rS rSrSS jrS	S jr\S
S j5       r\R                  SS j5       rSr	g)Flagsin  c                   0 U l         0 U l        U R                  R                  R	                  5        HP  u  p#UR                  S5      (       a  M  [        U[        5      (       d  M4  X0R                   U'   X R                  U'   MR     Xl        g )N__)	_allowed_flags_flag_names	__class____dict__r   
startswithr>   r?   _value)selfr   r   vals       r(   __init__Flags.__init__o  ss    .0+-//557HC~~d###s##+.##C((+  % 8 !r.   c                   Sn/ nU R                   n[        SS5       H4  nUS-  nX1-  nU(       d  M   UR                  U R                  U   5        M6     SR                  U5      $ ! [         ab    [
        R                  R                  U R                   5        [
        R                  R                  U R                  R                   5         M  f = f)Nr   r   ?   ,)r   rangerR   r   r    r!   r"   r#   r   r   join)r   mask
flag_namesr   _flags         r(   __str__Flags.__str__z  s    
q"AQJD<DtC%%d&6&6t&<=  xx
##	   CJJ$$(8(8'9;JJ$$(?(?'@BCs   A&&A(CCc                    U R                   $ r   r   r   s    r(   r   Flags.value  s    {{r.   c                    Xl         g r   r   )r   r   s     r(   r   r    s    r.   )r   r   r   N)r   r?   r   Noner   r   r   r?   )r   r?   r   r  )
rv   rw   rx   ry   r   r   propertyr   setterr{   r+   r.   r(   r   r   n  s8    	!$$   \\ r.   r   c                  (    \ rS rSrSrSrSrSrSrSr	g)	ColumnFlagsi  r   r   @   r:      r+   N)
rv   rw   rx   ry   NOT_NULLPRIMARY_KEY
UNIQUE_KEYMULTIPLE_KEYAUTO_INCREMENTr{   r+   r.   r(   r
  r
    s    HKJLNr.   r
  c                      \ rS rSrSrSrg)DatetimeColumnFlagsi  r   r+   N)rv   rw   rx   ry   r   r{   r+   r.   r(   r  r        Ir.   r  c                      \ rS rSrSrSrg)UIntColumnFlagsi  r   r+   N)rv   rw   rx   ry   ZEROFILLr{   r+   r.   r(   r  r        Hr.   r  c                      \ rS rSrSrSrg)DoubleColumnFlagsi  r   r+   Nrv   rw   rx   ry   UNSIGNEDr{   r+   r.   r(   r  r    r  r.   r  c                      \ rS rSrSrSrg)FloatColumnFlagsi  r   r+   Nr  r+   r.   r(   r  r    r  r.   r  c                      \ rS rSrSrSrg)BytesColumnFlagsi  r   r+   N)rv   rw   rx   ry   	RIGHT_PADr{   r+   r.   r(   r   r     r  r.   r   c                       \ rS rSrSrSrSrSrg)BytesContentTypei  r   r~   r   r+   N)rv   rw   rx   ry   r   r   r   r{   r+   r.   r(   r#  r#    s    HD
Cr.   r#  c                     \ rS rSrSr           S$                         S%S jjrS&S jrS'S jrS'S jrS'S jr	S'S	 jr
S'S
 jr\S&S j5       r\S&S j5       r\S&S j5       r\S&S j5       r\S&S j5       r\S(S j5       r\S(S j5       r\S(S j5       r\S&S j5       r\S&S j5       rS&S jrS&S jrS&S jrS&S jrS&S jrS(S jrS(S jrS(S jrS(S jrS&S jr S&S jr!S)S  jr"S*S! jr#S)S" jr$S#r%g)+r   i  a#  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                r   [        U5      U l        [        U5      U l        [        U5      U l        [        U5      U l        [        U5      U l        Xl        S U l        X l        Xl	        Xl
        Xl        Xl        Xl        SU l        SU l        SU l        SU l        S U l        S U l        S U l        U R                  S:  a  U R                  [+        [,        5      :  a  [/        SU R                   35      e[,        U R                     nUS   U l        US   U l        SU R$                  ;   =(       d    SU R$                  ;   U l        U R1                  5         U R                  [2        R4                  [2        R6                  [2        R8                  [2        R:                  [2        R<                  4;   U l        g )NFr   zNo 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   r   r=   	_map_typer   r   r   r   r   r   )r   r   catalogschematableoriginal_tablenameoriginal_namelength	collationfractional_digitsflagscontent_typeinfos                 r(   r   Column.__init__  sn    .f5+D1
#4]#C,U3$5n$E ((,'.&,)21B%*,8$),1 %$.226 )-??Q#&:";; #B4??BS!TUU'8D'+AwD$#'7D D000RFd>R>R4R O 	OONN,
 
r.   c                    [        U R                  U R                  U R                  [        U R                  5      S.5      $ )N)r   r>  r?  rF  )r   r.  r(  r+  r3  r  s    r(   r   Column.__str__  s5     NN,,T[[)	
 	
r.   c                   U R                   [        R                  :X  a  [        R                  U l        OU R                   [        R
                  :X  a  [        R
                  U l        OpU R                   [        R                  :X  a  [        R                  U l        O<U R                  (       a  [        R                  U l        O[        R                  U l        U R                  S-  U l        g)z
Map bytes.r   N)r4  r#  r   r   r.  r   r   r7  r   r   r3  r6  r  s    r(   
_map_bytesColumn._map_bytes  s    !1!:!::'00DN#3#8#88'__DN#3#7#77'^^DN__'--DN'..DN++/r.   c                   U R                   S:X  a  [        R                  U l        gU R                  [
        R                  -  S:  a  [        R                  U l        gU R                   S:  a  [        R                  U l        g[        S5      e)zMap datetime.rY   r   r   z#Datetime mapping scenario unhandledN)	r0  r   r   r.  r3  r  r   r   r=   r  s    r(   _map_datetimeColumn._map_datetime  sc    <<2'__DN[[.8881<'11DN\\R'00DNBCCr.   c                l   U R                   S::  a  [        R                  U l        OU R                   S::  a  [        R                  U l        OaU R                   S::  a  [        R
                  U l        O;U R                   S::  a  [        R                  U l        O[        R                  U l        SU l        g)zMap int type.r0   r   r   r   TN)	r0  r   r   r.  r   r   r   r   r5  r  s    r(   _map_int_typeColumn._map_int_type'  sy    <<1'//DN\\Q'00DN\\Q'11DN\\R'^^DN'..DN"r.   c                   U R                   S::  a  [        R                  U l        OU R                   S::  a  [        R                  U l        OaU R                   S::  a  [        R
                  U l        O;U R                   S::  a  [        R                  U l        O[        R                  U l        U R                  S-  U l	        g)zMap uint type.r   r   r7   rY   r   N)
r0  r   r   r.  r   r   r   r   r3  r;  r  s    r(   _map_uint_typeColumn._map_uint_type5  s    <<1'//DN\\Q'00DN\\Q'11DN\\R'^^DN'..DN++/r.   c                `   U R                   [        R                  :X  a  U R                  5         gU R                   [        R                  :X  a  U R                  5         gU R                   [        R                  :X  a;  [        R                  U l        U R                  [        R                  -  S:H  U l        gU R                   [        R                  :X  a;  [        R                  U l        U R                  [        R                  -  S:H  U l        gU R                   [        R                  :X  a;  [        R                  U l        U R                  [        R                  -  S:H  U l        gU R                   [        R                  :X  a  U R!                  5         gU R                   [        R"                  :X  a  [        R"                  U l        gU R                   [        R$                  :X  a  U R'                  5         gU R                   [        R(                  :X  a  [        R(                  U l        gU R                   [        R*                  :X  a  [        R*                  U l        gU R                   [        R,                  :X  a  [        R,                  U l        g[/        SU R                    35      e)z	Map type.r   zUnknown column type N)r-  r   r   rS  r   rV  r   r   r.  r3  r  r  _is_number_signedr   r   r   rM  r   r   rP  r   r   r   r=   r  s    r(   r<  Column._map_typeC  s   333 !5!55!!6!66'--DN&*kk4D4M4M&MRS%SD"!8!88'//DN&*kk4D4M4M&MRS%SD"!7!77'..DN&*kk4D4M4M&MRS%SD"!6!66OO!5!55'__DN!9!99 !4!44'^^DN!5!55'__DN!4!44'^^DN3D4D4D3EFGGr.   c                    U R                   $ )z0str: The schema name.

.. versionadded:: 8.0.12
r(  r  s    r(   schema_nameColumn.schema_namea       ||r.   c                @    U R                   =(       d    U R                  $ )z/str: The table name.

.. versionadded:: 8.0.12
r,  r+  r  s    r(   
table_nameColumn.table_namei       ##2t{{2r.   c                @    U R                   =(       d    U R                  $ )z0str: The table label.

.. versionadded:: 8.0.12
r+  r,  r  s    r(   table_labelColumn.table_labelq       {{2d222r.   c                @    U R                   =(       d    U R                  $ )z0str: The column name.

.. versionadded:: 8.0.12
r*  r)  r  s    r(   column_nameColumn.column_namey       ""0djj0r.   c                @    U R                   =(       d    U R                  $ )z1str: The column label.

.. versionadded:: 8.0.12
r)  r*  r  s    r(   column_labelColumn.column_label       zz0T000r.   c                    U R                   $ )z0int: The column type.

.. versionadded:: 8.0.12
r.  r  s    r(   typeColumn.type       ~~r.   c                    U R                   $ )z2int. The column length.

.. versionadded:: 8.0.12
r0  r  s    r(   rC  Column.length  r_  r.   c                    U R                   $ )z=int: The column fractional digits.

.. versionadded:: 8.0.12
r2  r  s    r(   rE  Column.fractional_digits       &&&r.   c                    U R                   $ )z3str: The collation name.

.. versionadded:: 8.0.12
r9  r  s    r(   collation_nameColumn.collation_name       ###r.   c                    U R                   $ )z7str: The character set name.

.. versionadded:: 8.0.12
r:  r  s    r(   character_set_nameColumn.character_set_name       '''r.   c                    U R                   $ )z=Returns the schema name.

Returns:
    str: The schema name.
r\  r  s    r(   get_schema_nameColumn.get_schema_name  r_  r.   c                @    U R                   =(       d    U R                  $ )z;Returns the table name.

Returns:
    str: The table name.
ra  r  s    r(   get_table_nameColumn.get_table_name  rd  r.   c                @    U R                   =(       d    U R                  $ )z=Returns the table label.

Returns:
    str: The table label.
rf  r  s    r(   get_table_labelColumn.get_table_label  ri  r.   c                @    U R                   =(       d    U R                  $ )z=Returns the column name.

Returns:
    str: The column name.
rk  r  s    r(   get_column_nameColumn.get_column_name  rn  r.   c                @    U R                   =(       d    U R                  $ )z?Returns the column label.

Returns:
    str: The column label.
rp  r  s    r(   get_column_labelColumn.get_column_label  rs  r.   c                    U R                   $ )zIReturns the column proto type.

Returns:
    int: The column proto type.
)r-  r  s    r(   r   Column.get_proto_type  s     r.   c                    U R                   $ )z=Returns the column type.

Returns:
    int: The column type.
ru  r  s    r(   r   Column.get_type  rx  r.   c                    U R                   $ )zAReturns the column length.

Returns:
    int: The column length.
rz  r  s    r(   
get_lengthColumn.get_length  r_  r.   c                    U R                   $ )zWReturns the column fractional digits.

Returns:
    int: The column fractional digits.
r}  r  s    r(   get_fractional_digitsColumn.get_fractional_digits  r  r.   c                    U R                   $ )zCReturns the collation name.

Returns:
    str: The collation name.
r  r  s    r(   get_collation_nameColumn.get_collation_name  r  r.   c                    U R                   $ )zKReturns the character set name.

Returns:
    str: The character set name.
r  r  s    r(   get_character_set_nameColumn.get_character_set_name  r  r.   c                    U R                   $ )z`Returns `True` if is a number signed.

Returns:
    bool: Returns `True` if is a number signed.
)r5  r  s    r(   is_number_signedColumn.is_number_signed	       """r.   c                    U R                   $ )zNReturns `True` if is padded.

Returns:
    bool: Returns `True` if is padded.
)r6  r  s    r(   	is_paddedColumn.is_padded  s     r.   c                    U R                   $ )zLReturns `True` if is bytes.

Returns:
    bool: Returns `True` if is bytes.
)r8  r  s    r(   is_bytesColumn.is_bytes  rx  r.   )r/  r:  r.  r1  r9  r4  r3  r2  r7  r8  rY  r6  r0  r)  r5  r*  r,  r-  r(  r+  r;  )NNNNNNNNNNN)r   r?   r=  r   r>  r   r?  r   r@  r   rA  r   rB  r   rC  Optional[int]rD  r  rE  r  rF  r  rG  r  r   r  r  r   r  r  r   r   r   zUnion[bool, int])&rv   rw   rx   ry   __doc__r   r   rM  rP  rS  rV  r<  r  r]  rb  rg  rl  rq  rv  rC  rE  r  r  r  r  r  r  r  r   r   r  r  r  r  r  r  r  r{   r+   r.   r(   r   r     s   , "& $#(,"'+ $#'+/#&*4
4
 4
 	4

 4
 &4
 4
 %4
 4
 !4
 )4
 4
 $4
 
4
l
*	D#*H<   3 3 3 3 1 1 1 1     ' ' $ $ ( (3311 '$(#r.   c                  b    \ rS rSrSr      S
S jrSS jrSS jr\" S5      SS j5       r	Sr
g	)Rowi"  zRepresents 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                    X l         Xl        g r   _fields
_resultset)r   	resultsetfieldss      r(   r   Row.__init__*  s     .4=Fr.   c                ,    [        U R                  5      $ r   )reprr  r  s    r(   __repr__Row.__repr__0  s    DLL!!r.   c                ,   [        U[        5      (       a  U R                  R                  U5      OUnUS:X  a$  [        U[        5      (       a  [	        SU S35      eU[        U R                  5      :  d  US:  a  [        S5      eU R                  U   $ )zLReturns the value of a column by name or index.

.. versionchanged:: 8.0.12
r   Column name '' not foundr   zIndex out of range)r>   r   r  index_ofr=   r   r  
IndexError)r   index	int_indexs      r(   __getitem__Row.__getitem__3  s    
 8B%7M7MDOO,,U3SX	?z%55}UG;?@@DLL))Y]122||I&&r.   8.0.12c                    U R                   R                  U5      nU[        U R                  5      :  a  [	        S5      eUS:X  a  [        SU S35      e[        U R                  U   5      $ )znReturns the value using the column name.

Args:
    str_index (str): The column name.

.. deprecated:: 8.0.12
zArgument out of ranger   r  r  )r  r  r   r  r  r=   r   )r   	str_indexr  s      r(   
get_stringRow.get_string?  sd     OO,,Y7	DLL))455?}YK{CDD4<<	*++r.   r  N)r  z!Union[BufferingResult, RowResult]r  zSequence[FieldTypes]r   r  r  )r  zUnion[int, str]r   r   )r  r   r   r   )rv   rw   rx   ry   r  r   r  r  r   r  r{   r+   r.   r(   r  r  "  sK    G:GDXG	G"
' , ,r.   r  c                  r    \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSS jrSrg)
BaseResultiP  z}Provides base functionality for result objects.

Args:
    connection (mysqlx.connection.Connection): The Connection object.
c                    Xl         SU l        SU l        SU l        / U l        / U l        Uc  S U l        g UR                  U l        UR                  5         g NFr   r   )	_connection_closed_rows_affected_generated_id_generated_ids	_warnings	_protocolprotocolfetch_active_result)r   
connections     r(   r   BaseResult.__init__W  sT    +5"#$"$)+;=!DN'00DN**,r.   c                    U R                   $ )znReturns the number of affected items for the last operation.

Returns:
    int: The number of affected items.
r  r  s    r(   get_affected_items_count#BaseResult.get_affected_items_counte  r  r.   c                    U R                   $ )zBReturns the warnings.

Returns:
    `list`: The list of warnings.
)r  r  s    r(   get_warningsBaseResult.get_warningsm  rx  r.   c                ,    [        U R                  5      $ )zKReturns the number of warnings.

Returns:
    int: The number of warnings.
)r   r  r  s    r(   get_warnings_countBaseResult.get_warnings_countu  s     4>>""r.   c                    Xl         g)z Sets if resultset fetch is done.N)r  r   r   s     r(   
set_closedBaseResult.set_closed}  s    r.   c                @    U R                   R                  XUS.5        g)zAppend a warning.

Args:
    level (int): The warning level.
    code (int): The warning code.
    msg (str): The warning message.
)levelcodemsgN)r  rR   )r   r  r  r  s       r(   append_warningBaseResult.append_warning  s     	CHIr.   c                    Xl         g)zSets the generated ids.Nr  )r   generated_idss     r(   set_generated_idsBaseResult.set_generated_ids  s    +r.   c                    Xl         g)zSets the generated insert id.Nr  )r   generated_ids     r(   set_generated_insert_id"BaseResult.set_generated_insert_id  s    )r.   c                    Xl         g)z!Sets the number of rows affected.Nr  )r   totals     r(   set_rows_affectedBaseResult.set_rows_affected  s    #r.   )r  r  r  r  r  r  r  Nr  r   r   r  r  )r   z List[Dict[str, Union[int, str]]]r   r   r   r  )r  r?   r  r?   r  r   r   r  )r  	List[int]r   r  )r  r?   r   r  )r  r?   r   r  )rv   rw   rx   ry   r  r   r  r  r  r  r  r  r  r  r{   r+   r.   r(   r  r  P  s5    -##J,*$r.   r  c                     ^  \ rS rSrSr  S
     SU 4S jjjrSS jr\" S5      SS j5       r\" S5      SS j5       r	SS jr
S	rU =r$ )Resulti  zAllows retrieving information about non query operations performed on
the database.

Args:
    connection (mysqlx.connection.Connection): The Connection object.
                                               ids (`list`): A list of IDs.
c                n   > [         TU ]  U5        X l        Ub  U R                  R	                  U 5        g g r   )superr   _idsr  close_result)r   r  idsr   s      r(   r   Result.__init__  s6    
 	$),	!))$/ "r.   c                    U R                   $ )zRReturns the last insert id auto generated.

Returns:
    int: The last insert id.
r  r  s    r(   get_autoincrement_valueResult.get_autoincrement_value       !!!r.   r  c                n    U R                   b  [        U R                   5      S:X  a  gU R                   S   $ )zTReturns ID of the last document inserted into a collection.

.. deprecated:: 8.0.12
Nr   )r  r   r  s    r(   get_document_idResult.get_document_id  s.     99DII! 3yy|r.   c                    U R                   $ )z9Returns the generated insert id.

.. deprecated:: 8.0.12
r  r  s    r(   get_generated_insert_idResult.get_generated_insert_id  r  r.   c                    U R                   $ )zReturns the generated ids.r  r  s    r(   get_generated_idsResult.get_generated_ids  s    """r.   )r  )NN)r  zOptional[ConnectionType]r  zOptional[List[int]]r   r  r  )r   r  )r   r  )rv   rw   rx   ry   r  r   r  r   r  r  r  r{   __classcell__r   s   @r(   r  r    sw     04#'	0,	0 !	0 
		0 	0"   " "# #r.   r  c                     ^  \ rS rSrSrSU 4S jjrSS jr\SS j5       rSS jr	SS jr
SS jrSS	 jrSS
 jrSS jrSS jrSS jrSrU =r$ )BufferingResulti  zProvides base functionality for buffering result objects.

Args:
    connection (mysqlx.connection.Connection): The Connection object.
                                               ids (`list`): A list of IDs.
c                   > [         TU ]  U5        / U l        SU l        SU l        / U l        SU l        SU l        U R                  5         g r  )	r
  r   _columns	_has_data_has_more_results_items
_page_size	_position_init_result)r   r  r   s     r(   r   BufferingResult.__init__  sG    $&($',/1  r.   c                     U R                   U   $ r   )r$  )r   r  s     r(   r  BufferingResult.__getitem__  s    {{5!!r.   c                ,    [        U R                  5      $ )zint: The total of items.)r   r$  r  s    r(   countBufferingResult.count  s     4;;r.   c                   U R                   R                  U 5      U l        [        U R                  5      S:  U l        / U l        SU l        SU l        U R                   R                  U R                  (       a  U 5        gS5        g)zInitialize the result.r   r   r   N)	r  get_column_metadatar!  r   _has_more_datar$  r%  r&  set_active_resultr  s    r(   r'  BufferingResult._init_result  sf    ((<<TB!$--014**43F3F4QDQr.   c                   U R                   R                  U 5      nUc  gS/[        US   5      -  nU(       d@  [        [        US   5      5       H%  nU R                  U   n[        XRS   U   5      X4'   M'     [        X5      $ )zmRead item.

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

Returns:
    :class:`mysqlx.Row`: A `Row` object.
Nfield)r  read_rowr   r   r!  r)   r  )r   dumpingrowrE   r   r%   s         r(   
_read_itemBufferingResult._read_item  s     ''-;vCL))SW./s+)&g,s2CD	 0 4r.   c                    U R                   (       a  gSn[        U R                  5       H:  nU R                  S5      nUc    U$ U R                  R                  U5        US-  nM<     U$ )z;Reads the page items.

Returns:
    int: Total items read.
Fr   r   )r  r   r%  r8  r$  rR   )r   r,  r   rE   s       r(   _page_in_itemsBufferingResult._page_in_items  sg     <<t'A??5)D|  KKt$QJE ( r.   c                h    SnU R                    H   nUR                  5       U:X  a  Us  $ US-  nM"     g)zMReturns the index of the column.

Returns:
    int: The index of the column.
r   r   r   )r!  r  )r   col_namer  cols       r(   r  BufferingResult.index_of  s;     ==C##%1QJE ! r.   c                H    U R                   (       a  gU R                  S5      $ )z]Fetch one item.

Returns:
    :class:`mysqlx.Row` or :class:`mysqlx.DbDoc`: one result item.
NF)r  r8  r  s    r(   	fetch_oneBufferingResult.fetch_one   s     <<u%%r.   c                L     U R                  5       (       d   U R                  $ M$  )zvFetch all items.

Returns:
    `list`: The list of items of :class:`mysqlx.DbDoc` or
            :class:`mysqlx.Row`.
)r;  r$  r  s    r(   	fetch_allBufferingResult.fetch_all+  s(     &&(({{ r.   c                    Xl         g)zLSets if result has data.

Args:
    flag (bool): `True` if result has data.
Nr"  r  s     r(   set_has_dataBufferingResult.set_has_data7  s	     r.   c                    Xl         g)zNSets if has more results.

Args:
    flag (bool): `True` if has more results.
Nr#  r  s     r(   set_has_more_results$BufferingResult.set_has_more_results?  s
     "&r.   )r!  r"  r0  r#  r$  r%  r&  r  )r  r?   r   zUnion[Row, DbDoc]r  r  )r6  r   r   Optional[Union[Row, DbDoc]]r  )r>  r   r   r?   )r   rO  )r   zList[Union[Row, DbDoc]]r  )rv   rw   rx   ry   r  r   r  r  r,  r'  r8  r;  r  rB  rE  rI  rM  r{   r  r  s   @r(   r  r    sT    "    R&$	&
& &r.   r  c                  6    \ rS rSrSr\SS j5       rSS jrSrg)	RowResultiH  zAllows traversing the Row objects returned by a Table.select operation.

Args:
    connection (mysqlx.connection.Connection): The Connection object.
c                    U R                   $ )z`list`: The list of columns.r!  r  s    r(   columnsRowResult.columnsO  s     }}r.   c                    U R                   $ )zbReturns the list of columns.

Returns:
    `list`: The list of columns.

.. versionadded:: 8.0.12
rS  r  s    r(   get_columnsRowResult.get_columnsT  s     }}r.   r+   N)r   zList[Column])	rv   rw   rx   ry   r  r  rT  rW  r{   r+   r.   r(   rQ  rQ  H  s       r.   rQ  c                  6    \ rS rSrSrSS jrS	S jrS	S jrSrg)
	SqlResulti_  zwRepresents a result from a SQL statement.

Args:
    connection (mysqlx.connection.Connection): The Connection object.
c                    U R                   $ )ztReturns the identifier for the last record inserted.

Returns:
    str: The identifier of the last record inserted.
r  r  s    r(   r  !SqlResult.get_autoincrement_valuef  r  r.   c                V    U R                   (       a  gSU l        U R                  5         g)zRProcess the next result.

Returns:
    bool: Returns `True` if the fetch is done.
FT)r  r#  r'  r  s    r(   next_resultSqlResult.next_resultn  s%     <<!&r.   c                    U R                   $ )zrReturns True if result has data.

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

.. versionadded:: 8.0.12
rH  r  s    r(   has_dataSqlResult.has_dataz  s     ~~r.   rL  Nr  r  )	rv   rw   rx   ry   r  r  r^  ra  r{   r+   r.   r(   rZ  rZ  _  s    "
r.   rZ  c                  0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )	DocResulti  zAllows traversing the DbDoc objects returned by a Collection.find
operation.

Args:
    connection (mysqlx.connection.Connection): The Connection object.
c                X   > [         TU ]  U5      nUc  g[        [        US   5      5      $ )zqRead item.

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

Returns:
    :class:`mysqlx.DbDoc`: A `DbDoc` object.
Nr   )r
  r8  r   r   )r   r6  r7  r   s      r(   r8  DocResult._read_item  s1     g );&s1v.//r.   r+   )r6  r   r   r   )rv   rw   rx   ry   r  r8  r{   r  r  s   @r(   rd  rd    s    0 0r.   rd  )r%   r   r&   bytesr   r   )r&   rg  r   rg  )r&   rg  r   float)r&   rg  r   zTuple[int, bytes])r&   rg  r   r?   )r&   rg  r   zList[bytes])r&   rg  r   zdecimal.Decimal)r&   rg  r   r   )r&   rg  r   r   )9r  
__future__r   r\   r2   r!   r   r   typingr   r   r   r	   r
   r   r   r   charsetsr   dbdocr   helpersr   r   typesr   r   r)   r-   r4   r8   rI   rN   rP   rU   rc   rl   rq   rs   r   r   r   r
  r  r  r  r  r   r#  r   r  r  r  r  rQ  rZ  rd  r+   r.   r(   <module>ro     sN  : , "   
 ( N N N *  2 -
+
+
(, *!3HH*B a
 a
H 8$ $N% + k  { { { e eP+, +,\E$ E$P0#Z 0#fz&j z&z .#	 #L0 0r.   