JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr ғg+\VdZddlZddlZddlZddlmZmZddlmZddlm Z ddl m Z dA;2A;; BBcg}d}t|d}|dd}|D]}t|}|dzdz }|dz}|dkrE|j||dkr|j|H|dk(rd}nO|dk(rd}nFtd |dk(r d}|dk(sJn+|dk(r d}|dk(sJntd j|t j ||| fS) Nrrr; z Invalid BCDzInvalid BCD: {0})rHrXrFr0decimalDecimal)r3digitssignscalerMrNhigh_bcdlow_bcds rr+r+s F D  OEabkG  VI!#t) d? MM( #~ g&DD //  Dd? "?   Dd? "? /66x@A A36 ??D&5&1 22rc d}d}d}d}t|\}}t|\}}t|\}} t|\}}t|\}}t|\}}t|\}}t|||||||S#t$rYwxYwNr)rQrFr)r3hourminutessecondsusecondsyearmonthdays rrrs DGGH/8MD'09NE7.w7LC 3G< g6w?6w?7@' D%dGWh GG    s8A== B B cd}d}d}d}|ddk(}|dd} t|\}}t|\}}t|\}}t|\}}|r|r|dz}n|r|dz}n|r|dz}n|r|dz}t||||S#t$rY;wxYw)Nrrr7)hoursrkrl microseconds)rQrFr)r3rjrkrlrmnegates rr!r!s DGGH QZ1_FabkG 3G< g6w?6w?7@'  BJD  rMG  rMG  NH 4'"* ,,    s8A?? B  B ceZdZdZy) Collations!N)__name__ __module__ __qualname__UTF8_GENERAL_CIr8rrrvrvsOrrvceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!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.y,)- ColumnTyperr;rErA r^ r_r`r] rw"#cXt|jD]\}}||k(s |cSyr )varsitems)clsneedlekeyrs r to_stringzColumnType.to_strings's)//+JC ,rc8t||jdSr )getattrupper)rrs r from_stringzColumnType.from_stringssCIIK..rc6||j|jfvSr )CHARVARCHARrr2s ris_charzColumnType.is_charsCHHckk333rc6||j|jfvSr )BINARY VARBINARYrs r is_binaryzColumnType.is_binary#sCJJ 777rcb||j|j|j|jfvSr )TEXTTINYTEXT MEDIUMTEXTLONGTEXTrs ris_textzColumnType.is_text's-CHHcllCNN LL rcx||j|j|j|j|jfvSr )REALr$r"r*NUMERICrs r is_decimalszColumnType.is_decimals,s3CHHcjj#))S[[ KK rc||j|j|j|j|j|j fvSr )r&TINYINTSMALLINT MEDIUMINTINTBIGINTrs r is_numericzColumnType.is_numeric1s9CGGS[[#,, GGSZZ"" "rc6||j|jfvSr )r'r)rs r is_finite_setzColumnType.is_finite_set6sCGGSXX///rN)/rxryrzr&rrrrrrr"r*rr$JSONSTRINGrr DATEr TIMESTAMPr'r)GEOMETRYXMLYEARrrrrTINYBLOBBLOB MEDIUMBLOBLONGBLOBrrrr classmethodrrrrrrrrr8rrr}r}sO CGHI C F D EGG F D F E D DHI C DH C D DG FIH DJHH DJH //4488""00rr}c8eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) rrr~rrrEr^r_r]rrrN)rxryrzrrr$r"rr rr'r)r&r*r8rrrr;s9 D D F E E DH C D CGrrcLeZdZdZdZedZejdZy)Flagsc i|_i|_|jjj D]H\}}|j drt |tfvs+||j|<||j|<J||_y)N__) _allowed_flags _flag_names __class____dict__r startswithtyperGr)selfrkvs r__init__zFlags.__init__Jsy NN++113DAq||D!Aw3'!)*##A&&'  # 4  rcd}g}|j}tddD].}|dz}||z}|s |j|j|0dj|S#t$r}t j jdj|jt j jdj|jjYwxYw)Nrr?r,) rrangerXrr,r-r.r/r0rrjoin)rmask flag_namesr_flags r__str__z Flags.__str__Us  q"A QJD4'. 0@#  #"3 )###' ??Q #&:";; "$$*F4??$;=='8D'+AwD $#'7D '4+?+?? >%)=)== O    *..   j//,11rct|j|j|jt|jdS)N)r2r!r"r))strrr rrrs rrzColumnMetaData.__str__s5ll[[%    rc|jSr )r rs rget_schema_namezColumnMetaData.get_schema_name ||rc6|jxs |jSr )rrrs rget_table_namezColumnMetaData.get_table_names##2t{{2rc6|jxs |jSr )rrrs rget_table_labelzColumnMetaData.get_table_labels{{2d222rc6|jxs |jSr )rr rs rget_column_namezColumnMetaData.get_column_names""0djj0rc6|jxs |jSr )r rrs rget_column_labelzColumnMetaData.get_column_labelszz0T000rc|jSr )rrs rget_typezColumnMetaData.get_type ~~rc|jSr )rrs r get_lengthzColumnMetaData.get_lengthr0rc|jSr )rrs rget_fractional_digitsz$ColumnMetaData.get_fractional_digitss&&&rc|jSr )rrs rget_collation_namez!ColumnMetaData.get_collation_names###rc|jSr )rrs rget_character_set_namez%ColumnMetaData.get_character_set_names'''rc|jSr )rrs ris_number_signedzColumnMetaData.is_number_signeds"""rc|jSr )rrs r is_paddedzColumnMetaData.is_paddeds rc|jSr )rrs ris_byteszColumnMetaData.is_bytesr;rc|jdkrtj|_d|_y|jdkrtj|_d|_y|jdkrtj |_d|_y|jdkrtj |_d|_ytj|_d|_y)Nr;rrrT) rr}rrrrrrrrs r _map_int_typezColumnMetaData._map_int_types <<1 '//DN#\\Q '00DN# \\Q '11DN # \\R '^^DN#(..DN"rc~|jdkrtj|_n|jdkrtj|_n_|jdkrtj |_n:|jdkrtj |_ntj|_|jdz|_ y)NrrrAr^r) rr}rrrrrrr _zero_fillrs r_map_uint_typezColumnMetaData._map_uint_types <<1 '//DN \\Q '00DN \\Q '11DN \\R '^^DN'..DN++/rc|jtjk(rtj|_n|jtj k(rtj |_nj|jtj k(rtj |_n7|jrtj|_ntj|_|jdz|_ y)Nr) rrrr}rrrrrrrrrs r _map_byteszColumnMetaData._map_bytess   !1!:!: :'00DN   #3#8#8 8'__DN   #3#7#7 7'^^DN __'--DN'..DN++/rc|jdk(rtj|_y|jdk(rtj|_y|j t jzdkDrtj|_ytd)Nr^rrz#Datetime mapping scenario unhandled) rr}rrrrrrrFrs r _map_datetimezColumnMetaData._map_datetimesc <<2 '__DN \\R '00DN [[.88 81 <'11DNBC Crcb|jtjk(r|jy|jtjk(r|j y|jtj k(r;tj |_|jtjzdk(|_ y|jtjk(r;tj|_|jtjzdk(|_ y|jtjk(r;tj|_|jtjzdk(|_ y|jtjk(r|j!y|jtj"k(rtj"|_y|jtj$k(r|j'y|jtj(k(rtj(|_y|jtj*k(rtj*|_y|jtj,k(rtj,|_yt/dj1|j)NrzUnknown column type {0})rrrrKrrNr"r}rrrr_is_number_signedr*r$rrPr rrRr'r)r&rFr0rs rrzColumnMetaData._map_types   33 3      !5!5 5    !   !6!6 6'--DN/888Q>  "   !8!8 8'//DN/888Q>  "   !7!7 7'..DN/888Q>  "   !6!6 6 OO    !5!5 5'__DN   !9!9 9      !4!4 4'^^DN   !5!5 5'__DN   !4!4 4'^^DN6==d>N>NOP Pr) NNNNNNNNNNN)rxryrzrrr/r2r4r6r8r:r=r?rArCrErGrIrKrNrPrRrr8rrrrsuBF?C@D*.$1L 3311'$(# # * *DQrrcBeZdZdZedZedZedZy)Warningc.||_||_||_yr )_level_code_message)rlevelcodemsgs rrzWarning.__init__;s   rc|jSr )rXrs rLevelz Warning.Level@rrc|jSr )rYrs rCodez Warning.CodeDs zzrc|jSr )rZrs rMessagezWarning.MessageHs }}rN)rxryrzrrr_rarcr8rrrVrV:sC rrVc"eZdZdZdZdZdZy)RowzRepresents a row element returned from a SELECT query. Args: rs (mysqlx.Result): The Result set. fields (list): The list of fields. c ||_||_yr )_fields _resultset)rrsfieldss rrz Row.__init__Ts rct|tr|jj|}n#|t |j k\r t d|j |S)NzIndex out of range)r rrhindex_ofrrg IndexErrorrindexs r __getitem__zRow.__getitem__XsL e\ *OO,,U3E c$,,' '12 2||E""rc|jj|}|t|jk\r t d|dk(rt dj |t|j|S)zpReturns the value if the index by string. Args: str_index (str): The string index. zArgument out of ranger7zColumn name '{0}' not found)rhrlrrgrmrFr0r-)r str_index int_indexs r get_stringzRow.get_string_sg OO,,Y7 DLL) )45 5 ?:AA)LM M4<< *++rN)rxryrz__doc__rrprtr8rrrereMs # ,rrec"eZdZdZdZdZdZy) BaseResultzProvides base functionality for result objects. Args: connection (mysqlx.connection.Connection): The Connection object. c||_d|_d|_d|_g|_|d|_y|j |_|jy)NFrr7) _connection_closed_rows_affected _generated_id _warnings _protocolprotocolfetch_active_result)r connections rrzBaseResult.__init__ssN%   !DN'00DN  * * ,rc|jS)zXReturns the warnings. Returns: list: The list of warnings. )r}rs r get_warningszBaseResult.get_warningss ~~rc,t|jS)zcReturns the number of warnings. Returns: int: The number of warnings. )rr}rs rget_warnings_countzBaseResult.get_warnings_counts 4>>""rN)rxryrzrurrrr8rrrwrwms -#rrwc<eZdZdZdfd ZdZdZdZdZxZ 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. cvtt| |||_||jj |yyr )superrr_idsry close_result)rridsrs rrzResult.__init__s8 fd$Z0  !    ) )$ / "rc|jS)zReturns the number of affected items for the last operation. Returns: int: The number of affected items. )r{rs rget_affected_items_countzResult.get_affected_items_counts """rc|jS)zjReturns the last insert id auto generated. Returns: int: The last insert id. r|rs rget_autoincrement_valuezResult.get_autoincrement_values !!!rcl|jyt|jdk(ry|jdS)zDReturns ID of the last document inserted into a collection. Nr)rrrs rget_document_idzResult.get_document_ids2 99  tyy>Q yy|rc|jS)z5Returns the list of generated documents IDs. )rrs rget_document_idszResult.get_document_idssyyr)NN) rxryrzrurrrrr __classcell__rs@rrrs!0#"rrcXeZdZfdZdZedZdZdZdZ dZ dZ d Z xZ S) BufferingResultcLtt| ||jyr )rrr _init_resultrrrs rrzBufferingResult.__init__s ot-j9 rc|jj||_t|jdkDrdnd|_g|_d|_d|_|jr||j_yd|j_y)NrTFrr7) ryget_column_metadata_columnsr_has_more_data_items _page_size _position_active_resultrs rrzBufferingResult._init_resultsl((<*mmA&LLN+399Q<803 ! '?Q + 4rc|jryd}t|jD]8}|jd}||S|jj ||dz }:|S)NFrr)rzrrrrrX)rrrKrs r_page_in_itemszBufferingResult._page_in_itemsse <<t'A??5)D|  KK  t $ QJE (  rc>|jry|jdS)zS Fetch one item. Returns: Row/DbDoc: one result item. NF)rzrrs r fetch_onezBufferingResult.fetch_ones <<u%%rc@ |js |jS)zPFetch all items. Returns: list: The list of items. )rrrs r fetch_allzBufferingResult.fetch_alls% &&({{r)rxryrzrrrrrprlrrrrrrs@rrrs@P  "    & rrc2eZdZdZfdZedZxZS) RowResultzAllows traversing the Row objects returned by a Table.select operation. Args: connection (mysqlx.connection.Connection): The Connection object. c,tt| |yr )rrrrs rrzRowResult.__init__ i' 3rc|jS)z#list: The list of columns. )rrs rcolumnszRowResult.columnss}}r)rxryrzrurrrrrs@rrrs! 4rrc.eZdZdZfdZdZdZxZS) SqlResultzRepresents a result from a SQL statement. Args: connection (mysqlx.connection.Connection): The Connection object. c:tt| |d|_y)NF)rrr_has_more_resultsrs rrzSqlResult.__init__)s i' 3!&rc|jS)z=Returns the identifier for the last record inserted. rrs rrz!SqlResult.get_autoincrement_value-s!!!rcL|jryd|_|jy)NFT)rzrrrs r next_resultzSqlResult.next_result2s# <<!& r)rxryrzrurrrrrs@rrr#s '" rrc,eZdZdZfdZfdZxZS) DocResultzAllows traversing the DbDoc objects returned by a Collection.find operation. Args: connection (mysqlx.connection.Connection): The Connection object. c,tt| |yr )rrrrs rrzDocResult.__init__Arrc^tt| |}|ytt |dSri)rrrrr)rrrrs rrzDocResult._read_itemDs1It/8 ;&s1v.//r)rxryrzrurrrrs@rrr:s 400rr)zutf-8)-rurar=r-rrdbdocrcharsetsrcompatrrr5rr#r%rQrrr(r+rr!objectrvr}rrrrrrrrrrrVrerwrrrrrr8rrrs^00 (* I0 ( ( (,    *!3HH*,@H0H0V f $F$N%+k {{{ eQVeQPf&,&,@!#!#H+Z+\QjQh    .00r