§
    tŠtj@; ã                  ó:2  — d dl mZ d dlZd dlZd dlmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlZd dlmZ d dlZd dlZd dlZd dlmZ d d	lmZ d d
lmZ d dlmZ d dlmc mZ  d dl!Z"d dl!m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z; erd dl<Z<ej=         >                    d¦  «        ej=        j?        gZ@ejA        d„ ¦   «         ZBd„ ZC�d=d„ZD�d=d„ZE�d=d„ZFd„ ZG�d>d„ZH�d?d„ZI�d?d„ZJ�d@d „ZKd!„ ZL�dAd$„ZM�dBd&„ZNejA        d'„ ¦   «         ZOejA        d(„ ¦   «         ZPejA        d)„ ¦   «         ZQejA        d*„ ¦   «         ZRejA        d+„ ¦   «         ZSd,„ ZTd-„ ZU�dCd0„ZV�dDd2„ZWejA        d3„ ¦   «         ZXejA        d4„ ¦   «         ZYejA        d5„ ¦   «         ZZejA        d6„ ¦   «         Z[ejA        d7„ ¦   «         Z\ejA        d8„ ¦   «         Z]ejA        d9„ ¦   «         Z^ejA        d:„ ¦   «         Z_ejA        d;„ ¦   «         Z`ejA        d<„ ¦   «         ZaejA        d=„ ¦   «         ZbejA        d>„ ¦   «         ZcejA        d?„ ¦   «         ZdejA        d@„ ¦   «         ZeejA        dA„ ¦   «         ZfejA        dB„ ¦   «         ZgejA        dC„ ¦   «         ZhejA        dD„ ¦   «         ZiejA        dE„ ¦   «         ZjejA        dF„ ¦   «         ZkejA        dG„ ¦   «         ZlejA        dH„ ¦   «         ZmejA        dI„ ¦   «         ZnejA        dJ„ ¦   «         ZoejA        dK„ ¦   «         ZpejA        dL„ ¦   «         ZqejA        dM„ ¦   «         ZrejA        dN„ ¦   «         ZsejA        dO„ ¦   «         ZtejA        dP„ ¦   «         Zu ejv        dQej=        jw        ¬R¦  «         ejv        dSej=        jw        ¬R¦  «        gZx ejv        dTej=        jw        ¬R¦  «         ejv        dUej=        jw        ¬R¦  «        gZy ejv        dVej=        jw        ¬R¦  «         ejv        dWej=        jw        ¬R¦  «        gZz ejv        dXej=        jw        ¬R¦  «         ejv        dYej=        jw        ¬R¦  «        gZ{ ejv        dZej=        jw        ¬R¦  «         ejv        d[ej=        jw        ¬R¦  «        gZ| ejv        d\ej=        jw        ¬R¦  «         ejv        d]ej=        jw        ¬R¦  «        gZ}g d^¢Z~g d_¢Zg d`¢Z€exe{z   e~z   Z�eye|z   ez   Z‚eze}z   e€z   Zƒda ejv        dbej=        jw        ¬R¦  «        gZ„ ejv        dcej=        jw        ¬R¦  «        ddgZ… ejv        deej=        jw        ¬R¦  «        dfgZ†g e�¢dg‘e„¢Z‡g e‚¢dh‘e…¢Zˆg eƒ¢di‘e†¢Z‰ej=         Š                    d.e‡¦  «        dj„ ¦   «         Z‹ej=         Š                    d.e‡¦  «        dk„ ¦   «         ZŒej=         Š                    d.e‡¦  «        dl„ ¦   «         Z�ej=         Š                    d.e‡¦  «        dm„ ¦   «         ZŽej=         Š                    d.e‡¦  «        ej=         Š                    dnddog¦  «        dp„ ¦   «         ¦   «         Z�ej=         Š                    d.e‡¦  «        ej=         Š                    dqg dr¢¦  «        ds„ ¦   «         ¦   «         Z�ej=         Š                    d.e‡¦  «        dt„ ¦   «         Z‘ej=         Š                    d.eˆ¦  «        du„ ¦   «         Z’ej=         Š                    d.eˆ¦  «        dv„ ¦   «         Z“ej=         Š                    d.e‚¦  «        dw„ ¦   «         Z”ej=         Š                    d.eˆ¦  «        dx„ ¦   «         Z•ej=         Š                    d.e‚¦  «        dy„ ¦   «         Z–ej=         Š                    d.e‚¦  «        dz„ ¦   «         Z—ej=         Š                    d.e�¦  «        d{„ ¦   «         Z˜ej=         Š                    d.e‰¦  «        d|„ ¦   «         Z™ej=         Š                    d.ex¦  «        d}„ ¦   «         Zšej=         Š                    d.e{¦  «        ej=         Š                    d~dd€g¦  «        d�„ ¦   «         ¦   «         Z›ej=         Š                    d.e{¦  «        d‚„ ¦   «         Zœej=         Š                    d.e‡¦  «        dƒ„ ¦   «         Z�ej=         Š                    d.ex¦  «        d„„ ¦   «         Zžej=         Š                    d.e{¦  «        d…„ ¦   «         ZŸd†„ Z d‡„ Z¡ej=         Š                    d.eˆ¦  «        dˆ„ ¦   «         Z¢ej=         Š                    d.eˆ¦  «        d‰„ ¦   «         Z£ej=         Š                    d.eˆ¦  «        dŠ„ ¦   «         Z¤ej=         Š                    d.eˆ¦  «        d‹„ ¦   «         Z¥ej=         Š                    d.eˆ¦  «        dŒ„ ¦   «         Z¦ej=         Š                    d.e‡¦  «        d�„ ¦   «         Z§ej=         Š                    d.e‡¦  «        dŽ„ ¦   «         Z¨ej=         Š                    d.e‡¦  «        d�„ ¦   «         Z©ej=         Š                    d.e‡¦  «        d�„ ¦   «         Zªej=         Š                    d.e‡¦  «        d‘„ ¦   «         Z«ej=         Š                    d.e‡¦  «        d’„ ¦   «         Z¬ej=         Š                    d.e‡¦  «        d“„ ¦   «         Z­ej=         Š                    d.e‡¦  «        d”„ ¦   «         Z®ej=         Š                    d.eˆ¦  «        d•„ ¦   «         Z¯ej=         Š                    d.e‰¦  «        d–„ ¦   «         Z°ej=         Š                    d.e‰¦  «        ej=         Š                    d—d˜d™g¦  «        ej=         Š                    dše3j±        d›dœfe3j±        d�džfe3j:        d›dœfe3j;        d�džfg¦  «        dŸ„ ¦   «         ¦   «         ¦   «         Z²ej=         Š                    d.e‰¦  «        d „ ¦   «         Z³ej=         Š                    d.e‡¦  «        d¡„ ¦   «         Z´ej=         Š                    d.e‡¦  «        d¢„ ¦   «         Zµej=         Š                    d.e‡¦  «        ej=         Š                    d£g d¤¢¦  «        d¥„ ¦   «         ¦   «         Z¶ej=         Š                    d.e‡¦  «        d¦„ ¦   «         Z·ej=         Š                    d.e‡¦  «        d§„ ¦   «         Z¸ej=         Š                    d.e‡¦  «        ej=         Š                    d¨de¹eºe¹eºd©œg¦  «        dª„ ¦   «         ¦   «         Z»ej=         Š                    d.e‡¦  «        d«„ ¦   «         Z¼ej=         Š                    d.e‡¦  «        d¬„ ¦   «         Z½ej=         Š                    d.e‡¦  «        d­„ ¦   «         Z¾ej=         Š                    d.e‡¦  «        d®„ ¦   «         Z¿ej=         Š                    d.e‡¦  «        d¯„ ¦   «         ZÀej=         Š                    d.e‡¦  «        d°„ ¦   «         ZÁej=         Š                    d.e‡¦  «        d±„ ¦   «         ZÂej=         Š                    d.e‡¦  «        d²„ ¦   «         ZÃej=         Š                    d.e‡¦  «        d³„ ¦   «         ZÄej=         Š                    d.e‡¦  «        d´„ ¦   «         ZÅej=         Š                    d.e‡¦  «        dµ„ ¦   «         ZÆej=         Š                    d.e‡¦  «        d¶„ ¦   «         ZÇej=         Š                    d.e‡¦  «        d·„ ¦   «         ZÈej=         Š                    d.eˆ¦  «        d¸„ ¦   «         ZÉd¹„ ZÊej=         Š                    d.e‡¦  «        dº„ ¦   «         ZËej=         Š                    d.e�¦  «        d»„ ¦   «         ZÌej=         Š                    d.e�¦  «        ej=         Š                    d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊe¹ ejÍ        e¹¦  «        jÎ        dËk    rdÌndÍfg¦  «        dÎ„ ¦   «         ¦   «         ZÏej=         Š                    d.e�¦  «        ej=         Š                    dÏdÐdÑg¦  «        dÒ„ ¦   «         ¦   «         ZÐdÓ„ ZÑ e jÒ        dÔ¦  «        dÕ„ ¦   «         ZÓej=         Š                    d.e‚¦  «        dÖ„ ¦   «         ZÔej=         Š                    d.e‚¦  «        d×„ ¦   «         ZÕej=         Š                    d.e‡¦  «        dØ„ ¦   «         ZÖdÙ„ Z× e jÒ        dž¦  «        dÚ„ ¦   «         ZØ e jÒ        dž¦  «        dÛ„ ¦   «         ZÙdÜ„ ZÚdÝ„ ZÛdÞ„ ZÜej=         Š                    d.e�¦  «        dß„ ¦   «         ZÝej=         Š                    d.e�¦  «        dà„ ¦   «         ZÞej=         Š                    dáe‡¦  «        dâ„ ¦   «         Zßej=         Š                    dáe‡¦  «        dã„ ¦   «         Zàej=         Š                    d.e‡¦  «        dä„ ¦   «         Záej=         Š                    d.eˆ¦  «        då„ ¦   «         Zâej=         Š                    d.e‚¦  «        dæ„ ¦   «         Zãej=         Š                    d.e‚¦  «        dç„ ¦   «         Zäej=         Š                    d.e‚¦  «        dè„ ¦   «         Zåej=         Š                    d.eƒ¦  «        dé„ ¦   «         Zæej=         Š                    d.e�¦  «        dê„ ¦   «         Zçej=         Š                    d.eƒ¦  «        dë„ ¦   «         Zèej=         Š                    d.e{¦  «        ej=         Š                    dìddígg¦  «        dî„ ¦   «         ¦   «         Zéej=         Š                    d.e{¦  «        dï„ ¦   «         Zêej=         Š                    d.e{¦  «        dð„ ¦   «         Zëej=         Š                    d.e�¦  «        dñ„ ¦   «         Zìej=         Š                    d.e�¦  «        dò„ ¦   «         Zíej=         Š                    d.e�¦  «        dó„ ¦   «         Zîej=         Š                    d.eƒ¦  «        dô„ ¦   «         Zïej=         Š                    d.e�¦  «        dõ„ ¦   «         Zðej=         Š                    d.e�¦  «        dö„ ¦   «         Zñej=         Š                    d.e�¦  «        d÷„ ¦   «         Zòej=         Š                    d.e�¦  «        dø„ ¦   «         Zóej=         Š                    d.e�¦  «        dù„ ¦   «         Zôej=         Š                    d.e�¦  «        dú„ ¦   «         Zõej=         Š                    d.e�¦  «        dû„ ¦   «         Zöej=         Š                    d.e�¦  «        dü„ ¦   «         Z÷ej=         Š                    d.e‡¦  «        dý„ ¦   «         Zøej=         Š                    d.e‡¦  «        dþ„ ¦   «         Zùej=         Š                    d.e‡¦  «        dÿ„ ¦   «         Zúej=         Š                    d.e�¦  «        �d „ ¦   «         Zûej=         Š                    d.e�¦  «        �d„ ¦   «         Züej=         Š                    d.e�¦  «        �d„ ¦   «         Zýej=         Š                    d.e�¦  «        �d„ ¦   «         Zþej=         Š                    d.e�¦  «        �d„ ¦   «         Zÿej=         Š                    d.e�¦  «        ej=         Š                    �d�de�j         gi�de�j          gie�j          g�dg�dœg¦  «        �d	„ ¦   «         ¦   «         �Zej=         Š                    d.e�¦  «        �d
„ ¦   «         �Zej=         Š                    d.e‡¦  «        �d„ ¦   «         �Zej=         Š                    d.e‡¦  «        �d„ ¦   «         �Zej=         Š                    d.e�¦  «        �d„ ¦   «         �Zej=         Š                    d.e‡¦  «        �d„ ¦   «         �Z�d„ �Zej=         Š                    d.e‡¦  «        ej=         Š                    �d�d�dg¦  «        �d„ ¦   «         ¦   «         �Zej=         Š                    d.e‡¦  «        ej=         Š                    �d�d�dg¦  «        �d„ ¦   «         ¦   «         �Z	ej=         Š                    d.e‡¦  «        ej=         Š                    �dg �d¢¦  «        �d„ ¦   «         ¦   «         �Z
ejA        �dE�d„¦   «         �ZejA        �d„ ¦   «         �Zej=         Š                    d.e‡¦  «        �d„ ¦   «         �Zej=         Š                    d.e‡¦  «        ej=         Š                    �de�j        �dg¦  «        ej=         Š                    �d�d�dg¦  «        �d„ ¦   «         ¦   «         ¦   «         �Z�d„ �Z�d „ �Z�d!„ �Z�d"„ �Z�d#„ �ZejA        �d$„ ¦   «         �Z�d%„ �Zej=        jw        �d&„ ¦   «         �Zej=        jw        �d'„ ¦   «         �Z�d(„ �Z�d)„ �Zej=         Š                    �d*�d+�d,g¦  «        �d-„ ¦   «         �Z�d.„ �Z�d/„ �Z�d0„ �Z�d1„ �Z�d2„ �Z �dF�d3„�Z!�d4„ �Z"�d5„ �Z#�d6„ �Z$�d7„ �Z%�d8„ �Z&�d9„ �Z'�d:„ �Z(�d;„ �Z)�d<„ �Z*dS (G  é    )ÚannotationsN)ÚdateÚdatetimeÚtimeÚ	timedelta)ÚDecimal)ÚStringIO©ÚPath)ÚTYPE_CHECKING)Úusing_string_dtype)Úlib)Úpa_version_under14p1)Úimport_optional_dependency)
Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚconcatÚ
date_rangeÚisnaÚto_datetimeÚto_timedelta)ÚVersion)Úsql)ÚSQLAlchemyEngineÚSQLDatabaseÚSQLiteDatabaseÚ
get_engineÚpandasSQL_builderÚread_sql_queryÚread_sql_tablez=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc                 ó&   — ddddœddddœdd	d
dœdœS )Nz1SELECT * FROM iris WHERE Name=? AND SepalLength=?z7SELECT * FROM iris WHERE `Name`=%s AND `SepalLength`=%sz7SELECT * FROM iris WHERE "Name"=%s AND "SepalLength"=%s)ÚsqliteÚmysqlÚ
postgresqlz]
                SELECT * FROM iris WHERE Name=:name AND SepalLength=:length
                zw
                SELECT * FROM iris WHERE
                `Name`=%(name)s AND `SepalLength`=%(length)s
                zw
                SELECT * FROM iris WHERE
                "Name"=%(name)s AND "SepalLength"=%(length)s
                z&SELECT * FROM iris WHERE Name LIKE '%'z(SELECT * FROM iris WHERE `Name` LIKE '%'z(SELECT * FROM iris WHERE "Name" LIKE '%')Úread_parametersÚread_named_parametersÚread_no_parameters_with_percent© r+   ó    úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/io/test_sql.pyÚsql_stringsr.   C   sU   € ð JØNØSð
ð 
ðððð"
ð "
ð ?Ø?ØFð,
ð ,
ð'ð ð r,   c                 ó,  — dd l } ddl m}m}m}m}m}m} t          | j        ¦  «        t          d¦  «        k    r|n|} |¦   «         } |d| |d|¦  «         |d|¦  «         |d|¦  «         |d|¦  «         |d	 |d
¦  «        ¦  «        ¦  «        }	|	S )Nr   )ÚColumnÚDoubleÚFloatÚMetaDataÚStringÚTablez2.0.0ÚirisÚSepalLengthÚ
SepalWidthÚPetalLengthÚ
PetalWidthÚNameéÈ   )	Ú
sqlalchemyr0   r1   r2   r3   r4   r5   r   Ú__version__)
r=   r0   r1   r2   r3   r4   r5   ÚdtypeÚmetadatar6   s
             r-   Úiris_table_metadatarA   `   s  € ØÐÐÐðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð õ ˜jÔ4Ñ5Ô5½ÀÑ9IÔ9IÒIÐIˆFˆFÈu€EØˆx‰zŒz€HØˆ5ØØØˆˆ}˜eÑ$Ô$Øˆˆ|˜UÑ#Ô#Øˆˆ}˜eÑ$Ô$Øˆˆ|˜UÑ#Ô#Øˆˆv�v�v˜c‘{”{Ñ#Ô#ñô €Dð €Kr,   Ú	iris_filer   c                óœ  — d}|                       ¦   «         }|                     |¦  «         |                     d d¬¦  «        5 }t          j        |¦  «        }t          |¦  «         d}g }d„ |D ¦   «         }|                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |                      ¦   «          d S )Nz³CREATE TABLE iris (
            "SepalLength" REAL,
            "SepalWidth" REAL,
            "PetalLength" REAL,
            "PetalWidth" REAL,
            "Name" TEXT
        )úutf-8©ÚnewlineÚencodingz&INSERT INTO iris VALUES(?, ?, ?, ?, ?)c           	     óÀ   — g | ][}t          |d          ¦  «        t          |d         ¦  «        t          |d         ¦  «        t          |d         ¦  «        |d         f‘Œ\S ©r   é   é   é   é   ©Úfloat©Ú.0Úrows     r-   ú
<listcomp>z0create_and_load_iris_sqlite3.<locals>.<listcomp>Š   sg   € ð 	
ð 	
ð 	
ð õ �c˜!”f‘”Ý�c˜!”f‘”Ý�c˜!”f‘”Ý�c˜!”f‘”Ø�A”ðð	
ð 	
ð 	
r,   )	ÚcursorÚexecuteÚopenÚcsvÚreaderÚnextÚexecutemanyÚcloseÚcommit©ÚconnrB   ÚstmtÚcurÚcsvfilerX   Úrecordss          r-   Úcreate_and_load_iris_sqlite3rc   y   s  € ð€Dð �+Š+‰-Œ-€CØ‡K‚K�ÑÔÐØ	�Š ¨wˆÑ	7Ô	7ð '¸7Ý”˜GÑ$Ô$ˆÝˆV‰ŒˆØ7ˆàˆð	
ð 	
ð ð	
ñ 	
ô 	
ˆð 	�Š˜˜gÑ&Ô&Ð&ð#'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð$ ‡I‚I�K„K€Kà‡K‚K�M„M€M€M€Ms   ÁA
BÂBÂ Bc                ó   — d}|                       ¦   «         5 }|                     |¦  «         |                     d d¬¦  «        5 }t          j        |¦  «        }t          |¦  «         d}d„ |D ¦   «         }|                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                      ¦   «          d S )NzãCREATE TABLE iris (
            "SepalLength" DOUBLE PRECISION,
            "SepalWidth" DOUBLE PRECISION,
            "PetalLength" DOUBLE PRECISION,
            "PetalWidth" DOUBLE PRECISION,
            "Name" TEXT
        )rD   rE   z+INSERT INTO iris VALUES($1, $2, $3, $4, $5)c           	     óÀ   — g | ][}t          |d          ¦  «        t          |d         ¦  «        t          |d         ¦  «        t          |d         ¦  «        |d         f‘Œ\S rI   rN   rP   s     r-   rS   z3create_and_load_iris_postgresql.<locals>.<listcomp>ª   sg   € ð 	ð 	ð 	ð õ ˜#˜aœ&‘M”MÝ˜#˜aœ&‘M”MÝ˜#˜aœ&‘M”MÝ˜#˜aœ&‘M”MØ˜”Fðð	ð 	ð 	r,   )rT   rU   rV   rW   rX   rY   rZ   r\   r]   s          r-   Úcreate_and_load_iris_postgresqlrf   ›   sM  € ð€Dð 
�Š‰Œð +˜#Ø�Š�DÑÔÐØ�^Š^ D°7ˆ^Ñ;Ô;ð 	+¸wÝ”Z Ñ(Ô(ˆFÝ�‰LŒLˆLØ@ˆDð	ð 	ð "ð	ñ 	ô 	ˆGð �OŠO˜D 'Ñ*Ô*Ð*ð!	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð( 	‡K‚K�M„M€M€M€Ms6   —-B/ÁABÂB/ÂB	ÂB/ÂB	Â B/Â/B3Â6B3c                ó
  ‡	— ddl m} t          ¦   «         }|                     d d¬¦  «        5 }t	          j        |¦  «        }t          |¦  «        Š	ˆ	fd„|D ¦   «         } ||¦  «                             |¦  «        }|                      ¦   «         5 }| 	                    |d¬¦  «         | 
                    |¬¦  «         |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )	Nr   ©ÚinsertrD   rE   c                óJ   •— g | ]}t          t          ‰|¦  «        ¦  «        ‘Œ S r+   ©ÚdictÚzip)rQ   rR   Úheaders     €r-   rS   z(create_and_load_iris.<locals>.<listcomp>Â   s+   ø€ Ð;Ð;Ð;¨S•$•s˜6 3Ñ'Ô'Ñ(Ô(Ð;Ð;Ð;r,   T©Ú
checkfirst©Úbind)r=   ri   rA   rV   rW   rX   rY   ÚvaluesÚbeginÚdropÚcreaterU   )
r^   rB   ri   r6   ra   rX   Úparamsr_   Úconrn   s
            @r-   Úcreate_and_load_irisry   º   s�  ø€ Ø!Ð!Ð!Ð!Ð!Ð!åÑ Ô €Dà	�Š ¨wˆÑ	7Ô	7ð ¸7Ý”˜GÑ$Ô$ˆÝ�f‘”ˆØ;Ð;Ð;Ð;°FÐ;Ñ;Ô;ˆØˆv�d‰|Œ|×"Ò" 6Ñ*Ô*ˆØ�ZŠZ‰\Œ\ð 	˜SØ�IŠI�c dˆIÑ+Ô+Ð+Ø�KŠK˜SˆKÑ!Ô!Ð!Ø�KŠK˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s7   ­A$C8ÂAC ÃC8Ã C$	Ã$C8Ã'C$	Ã(C8Ã8C<Ã?C<c                ó8  — d}t          | t          j        ¦  «        r+|                      ¦   «         }|                     |¦  «         d S t          dd¬¦  «        }|rlt          | |j        ¦  «        rW|                      ¦   «         5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      ¦   «          d S ddlm}  ||¦  «        }|  	                    ¦   «         5 }|                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz+CREATE VIEW iris_view AS SELECT * FROM irisúadbc_driver_manager.dbapiÚignore©Úerrorsr   ©Útext)
Ú
isinstanceÚsqlite3Ú
ConnectionrT   rU   r   r\   r=   r€   rt   )r^   r_   r`   Úadbcr€   rx   s         r-   Úcreate_and_load_iris_viewr…   Ê   s’  € Ø8€DÝ�$�Ô*Ñ+Ô+ð "Ø�kŠk‰mŒmˆØ�Š�DÑÔÐÐÐå)Ð*EÈhÐWÑWÔWˆØð 		"•J˜t T¤_Ñ5Ô5ð 		"Ø—’‘”ð " #Ø—’˜DÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "à�KŠK‰MŒMˆMˆMˆMà'Ð'Ð'Ð'Ð'Ð'à�4˜‘:”:ˆDØ—’‘”ð " Ø—’˜DÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s$   ÂB&Â&B*Â-B*Ã,DÄDÄDÚdialectÚstrc                óH  — ddl m}m}m}m}m}m}m}m} | dk    r|n|}	| dk    r|n|}
 |¦   «         } |d| |d|¦  «         |d|	¦  «         |d|¦  «         |d|¦  «         |d	|¦  «         |d
|¦  «         |d|
¦  «         |d|¦  «         |d|
¦  «        ¦  «        }|S )Nr   )ÚTEXTÚBooleanr0   ÚDateTimer2   ÚIntegerr3   r5   r%   ÚtypesÚTextColÚDateColÚ
IntDateColÚIntDateOnlyColÚFloatColÚIntColÚBoolColÚIntColWithNullÚBoolColWithNull)	r=   r‰   rŠ   r0   r‹   r2   rŒ   r3   r5   )r†   r‰   rŠ   r0   r‹   r2   rŒ   r3   r5   Ú	date_typeÚ	bool_typer@   r�   s                r-   Útypes_table_metadatar™   Ý   sA  € ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð   8Ò+Ð+��°€IØ" hÒ.Ð.��°G€IØˆx‰zŒz€HØˆEØØØˆˆy˜$ÑÔàˆˆy˜)Ñ$Ô$Øˆˆ|˜WÑ%Ô%ØˆÐ Ñ)Ô)Øˆˆz˜5Ñ!Ô!Øˆˆx˜Ñ!Ô!àˆˆy˜)Ñ$Ô$ØˆÐ Ñ)Ô)àˆÐ  )Ñ,Ô,ñô €Eð  €Lr,   Ú
types_dataú
list[dict]c                óš  — d}d}t          | t          j        ¦  «        rA|                      ¦   «         }|                     |¦  «         |                     ||¦  «         d S |                      ¦   «         5 }|                     |¦  «         |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      ¦   «          d S )Na”  CREATE TABLE types (
                    "TextCol" TEXT,
                    "DateCol" TEXT,
                    "IntDateCol" INTEGER,
                    "IntDateOnlyCol" INTEGER,
                    "FloatCol" REAL,
                    "IntCol" INTEGER,
                    "BoolCol" INTEGER,
                    "IntColWithNull" INTEGER,
                    "BoolColWithNull" INTEGER
                )ze
                INSERT INTO types
                VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)
                )r�   r‚   rƒ   rT   rU   rZ   r\   )r^   rš   r_   Úins_stmtr`   s        r-   Úcreate_and_load_types_sqlite3rž   ÿ   sù   € ð
€Dð€Hõ
 �$�Ô*Ñ+Ô+ð 	Ø�kŠk‰mŒmˆØ�Š�DÑÔÐØ�Š˜ *Ñ-Ô-Ð-Ð-Ð-à�[Š[‰]Œ]ð 	2˜cØ�KŠK˜ÑÔÐØ�OŠO˜H jÑ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	�Š‰Œˆˆˆs   Á4,B,Â,B0Â3B0c                óä   — |                       ¦   «         5 }d}|                     |¦  «         d}|                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      ¦   «          d S )NaÍ  CREATE TABLE types (
                        "TextCol" TEXT,
                        "DateCol" TIMESTAMP,
                        "IntDateCol" INTEGER,
                        "IntDateOnlyCol" INTEGER,
                        "FloatCol" DOUBLE PRECISION,
                        "IntCol" INTEGER,
                        "BoolCol" BOOLEAN,
                        "IntColWithNull" INTEGER,
                        "BoolColWithNull" BOOLEAN
                    )zy
                INSERT INTO types
                VALUES($1, $2::timestamp, $3, $4, $5, $6, $7, $8, $9)
                )rT   rU   rZ   r\   )r^   rš   r`   r_   s       r-   Ú create_and_load_types_postgresqlr      s­   € Ø	�Š‰Œð *˜#ð
ˆð 	�Š�DÑÔÐðˆð
 	�Š˜˜jÑ)Ô)Ð)ð'*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð* 	‡K‚K�M„M€M€M€Ms   •0AÁAÁAc                ó°  — ddl m} ddlm} t	          |¦  «        } ||¦  «                             |¦  «        }t          | |¦  «        r�|                      ¦   «         5 } |                      ¦   «         5  | 	                    | d¬¦  «         | 
                    | ¬¦  «         |                      |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S |                      ¦   «         5  | 	                    | d¬¦  «         | 
                    | ¬¦  «         |                      |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   rh   ©ÚEngineTro   rq   )r=   ri   Úsqlalchemy.enginer£   r™   rs   r�   Úconnectrt   ru   rv   rU   )r^   rš   r†   ri   r£   r�   r_   s          r-   Úcreate_and_load_typesr¦   6  s  € Ø!Ð!Ð!Ð!Ð!Ð!Ø(Ð(Ð(Ð(Ð(Ð(å  Ñ)Ô)€Eàˆ6�%‰=Œ=×Ò 
Ñ+Ô+€DÝ�$˜ÑÔð 
Ø�\Š\‰^Œ^ð 	#˜tØ—’‘”ð #ð #Ø—
’
˜4¨D�
Ñ1Ô1Ð1Ø—’ $�Ñ'Ô'Ð'Ø—’˜TÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð �ZŠZ‰\Œ\ð 	ð 	Ø�JŠJ�t¨ˆJÑ-Ô-Ð-Ø�LŠL˜dˆLÑ#Ô#Ð#Ø�LŠL˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sJ   ÁCÁ3ACÂ6CÃC	ÃCÃ	C	Ã
CÃCÃ!CÃ;AEÅEÅEc           
     óŠ  — ddl m}m}m}m}m} ddlm}  |¦   «         } |d| |d |d¬¦  «        ¦  «        ¦  «        }ddidd	ig}	 ||¦  «                             |	¦  «        }
t          | |¦  «        r›|  
                    ¦   «         5 } |                      ¦   «         5  |                     | d¬
¦  «         |                     | ¬¦  «         |                      |
¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   nn|                      ¦   «         5  |                     | d¬
¦  «         |                     | ¬¦  «         |                      |
¦  «         d d d ¦  «         n# 1 swxY w Y   t          dd¬¦  «        t          dd¬¦  «        g}t!          |d¬¦  «                             d¦  «        S )Nr   )r0   r‹   r3   r5   ri   r¢   ÚdatetzÚDateColWithTzT)Útimezonez2000-01-01 00:00:00-08:00z2000-06-01 00:00:00-07:00ro   rq   z2000-01-01 08:00:00ÚUTC©Útzz2000-06-01 07:00:00©ÚnameúM8[us, UTC])r=   r0   r‹   r3   r5   ri   r¤   r£   rs   r�   r¥   rt   ru   rv   rU   r   r   Úastype)r^   r0   r‹   r3   r5   ri   r£   r@   r¨   Údatetz_datar_   Úexpected_datas               r-   Úcreate_and_load_postgres_datetzr´   J  sÓ  € ðð ð ð ð ð ð ð ð ð ð ð ð ð ð )Ð(Ð(Ð(Ð(Ð(àˆx‰zŒz€HØˆU�8˜X v v¨o¸x¸xÐQUÐ?VÑ?VÔ?VÑ'WÔ'WÑXÔX€Fð Ð8ð	
ð Ð8ð	
ð	€Kð ˆ6�&‰>Œ>× Ò  Ñ-Ô-€DÝ�$˜ÑÔð 
Ø�\Š\‰^Œ^ð 	#˜tØ—’‘”ð #ð #Ø—’˜D¨T�Ñ2Ô2Ð2Ø—’ 4�Ñ(Ô(Ð(Ø—’˜TÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#øð �ZŠZ‰\Œ\ð 	ð 	Ø�KŠK˜¨ˆKÑ.Ô.Ð.Ø�MŠM˜tˆMÑ$Ô$Ð$Ø�LŠL˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	Ð'¨EÐ2Ñ2Ô2ÝÐ'¨EÐ2Ñ2Ô2ð€Mõ �- oÐ6Ñ6Ô6×=Ò=¸mÑLÔLÐLsJ   Â
DÂAC.Ã"DÃ.C2	Ã2DÃ5C2	Ã6DÄD	ÄD	Ä%AE4Å4E8Å;E8Úframer   c                óô   — | j         j        d         j        }| j        d         }t          |t          j        ¦  «        sJ ‚t          j        |t          g d¢| j	        d¬¦  «        ¦  «         | j
        dv sJ ‚d S )Nr   ©çffffff@g      @gffffffö?çš™™™™™É?úIris-setosa)Úindexr¯   ))é–   é   )é   r½   )ÚdtypesÚilocÚtypeÚ
issubclassÚnpÚfloatingÚtmÚassert_series_equalr   ÚcolumnsÚshape)rµ   ÚpytyperR   s      r-   Úcheck_iris_framerÊ   w  s†   € ØŒ\Ô˜qÔ!Ô&€FØ
Œ*�QŒ-€CÝ�f�bœkÑ*Ô*Ð*Ð*Ð*ÝÔØ�VÐ7Ð7Ð7¸u¼}ÐSTÐUÑUÔUñô ð ð Œ;Ð,Ð,Ð,Ð,Ð,Ð,Ð,r,   Ú
table_namec                ól  — d|› �}t          dd¬¦  «        }t          | t          j        ¦  «        rA|                      ¦   «         }|                     |¦  «                             ¦   «         d         S |rrt          | |j        ¦  «        r]|                      ¦   «         5 }|                     |¦  «         |                     ¦   «         d         cd d d ¦  «         S # 1 swxY w Y   d S ddlm} ddl	m
} t          | t          ¦  «        r£	  || ¦  «        }|                     ¦   «         5 } |                      |¦  «                             ¦   «         cd d d ¦  «         |                     ¦   «          S # 1 swxY w Y   	 |                     ¦   «          d S # |                     ¦   «          w xY wt          | |¦  «        rU|                      ¦   «         5 } |                      |¦  «                             ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S |                      |¦  «                             ¦   «         S )Nz SELECT count(*) AS count_1 FROM r{   r|   r}   r   )Úcreate_enginer¢   )r   r�   r‚   rƒ   rT   rU   Úfetchoner=   rÍ   r¤   r£   r‡   r¥   Úexec_driver_sqlÚ
scalar_oneÚdispose)r^   rË   r_   r„   r`   rÍ   r£   Úengines           r-   Ú
count_rowsrÓ   �  s÷  € Ø:¨jÐ:Ð:€DÝ%Ð&AÈ(ÐSÑSÔS€DÝ�$�Ô*Ñ+Ô+ð ;Ø�kŠk‰mŒmˆØ�{Š{˜4Ñ Ô ×)Ò)Ñ+Ô+¨AÔ.Ð.Ø	ð ;•*˜T 4¤?Ñ3Ô3ð ;Ø�[Š[‰]Œ]ð 	%˜cØ�KŠK˜ÑÔÐØ—<’<‘>”> !Ô$ð	%ð 	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	-Ð,Ð,Ð,Ð,Ð,Ø,Ð,Ð,Ð,Ð,Ð,å�d�CÑ Ô ð 	;ð!Ø&˜ tÑ,Ô,�Ø—^’^Ñ%Ô%ð C¨Ø×/Ò/°Ñ5Ô5×@Ò@ÑBÔBðCð Cð Cð Cñ Cô Cð Cð —’Ñ Ô Ð Ð ðCð Cð Cð Cøøøð Cð Cð Cð Cð Cð —’Ñ Ô Ð Ð Ð ø�—’Ñ Ô Ð Ð øøøÝ˜˜fÑ%Ô%ð 	;Ø—’‘”ð ? 4Ø×+Ò+¨DÑ1Ô1×<Ò<Ñ>Ô>ð?ð ?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð ?ð ?ð ×'Ò'¨Ñ-Ô-×8Ò8Ñ:Ô:Ð:sT   Â/CÃCÃ CÄF Ä''E/ÅF Å/E3Å3F Å6E3Å7F ÆF'Ç'HÈHÈ	Hc                ó<   —  | dddd¦  «        }t          |¦  «        S )NÚioÚdatarW   ziris.csvr
   )ÚdatapathÚ	iris_paths     r-   rØ   rØ   �  s#   € à�˜˜v u¨jÑ9Ô9€IÝ�	‰?Œ?Ðr,   c                 ó2   — ddddddddddœ	dd	d
ddddd d dœ	gS )NÚfirstú2000-01-03 00:00:00i wði’·2g333333$@rJ   F©	rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   ú2000-01-04 00:00:00i 'âPi\¸2r+   r+   r,   r-   rš   rš   £  sZ   € ð Ø,Ø#Ø&ØØØØØ$ð
	
ð 
	
ð Ø,Ø$Ø&ØØØØ"Ø#ð
	
ð 
	
ðð r,   c           
     ó’   — ddddddddddœ	}t          | ¦  «        }||                     ¦   «                                       |¦  «        S )Nr‡   Úint64rO   rÜ   )r   Úkeysr±   )rš   r¿   Údfs      r-   Útypes_data_framerâ   ¿  s[   € ð ØØØ!ØØØØ!Ø"ð
ð 
€Fõ 
�:Ñ	Ô	€BØˆf�kŠk‰mŒmÔ×#Ò# FÑ+Ô+Ð+r,   c                 ó4   — g d¢} g d¢}t          || ¬¦  «        S )N)r»   ÚAÚBÚCÚD))rÛ   gNÿ\^ï?g9\›x`|@g%Ú TO×¿gá(nIŽò¿)rÝ   gî}ÒCÄð?çc×^ÜV¥¿g~q"B¶Ä¿gˆ”æÐ4Ë?)ú2000-01-05 00:00:00gGà Í¿èß?ç2rÂ¹eç?gˆŽ>Ý¦4á¿gÑ‘öÙRŠõ?)ú2000-01-06 00:00:00gÔ?{mXìñ?ç$ôó­ùù?gnk3¥AÓm?gØ
S«›å?©rÇ   ©r   ©rÇ   rÖ   s     r-   Útest_frame1rð   Ð  s3   € à+Ð+Ð+€Gðð ð €Dõ< �T 7Ð+Ñ+Ô+Ð+r,   c                 ó4   — g d¢} g d¢}t          || ¬¦  «        S )N)r»   rä   rå   ))rÛ   iÿÿÿgZØÓÍÿ¿)rÝ   iãÿÿÿrè   )ré   i N  rê   )rë   iÍ�ûÿrì   rí   rî   rï   s     r-   Útest_frame3rò   ô  s3   € à!Ð!Ð!€Gðð ð €Dõ �T 7Ð+Ñ+Ô+Ð+r,   c                óR  — t          | t          j        ¦  «        r3|                      d¦  «        }d„ |                     ¦   «         D ¦   «         S t          dd¬¦  «        }|r¥t          | |j        ¦  «        r�g }|                      ¦   «                              ¦   «                              ¦   «         }|D ]Q}|d          |d         D ]>}|d          |d	         D ]+}|d
         dk    r|d         }| 	                    |¦  «         Œ,Œ?ŒR|S ddl
m}	  |	| ¦  «                             ¦   «         S )Nz0SELECT name FROM sqlite_master WHERE type='view'c                ó   — g | ]
}|d          ‘ŒS ©r   r+   )rQ   Úviews     r-   rS   z!get_all_views.<locals>.<listcomp>  s   € Ð1Ð1Ð1˜D��Q”Ð1Ð1Ð1r,   r{   r|   r}   Úcatalog_nameÚcatalog_db_schemasÚdb_schema_nameÚdb_schema_tablesÚ
table_typerö   rË   r   ©Úinspect)r�   r‚   rƒ   rU   Úfetchallr   Úadbc_get_objectsÚread_allÚ	to_pylistÚappendr=   rý   Úget_view_names)
r^   Úcr„   ÚresultsÚinfoÚcatalogÚschemaÚtableÚ	view_namerý   s
             r-   Úget_all_viewsr     s[  € Ý�$�Ô*Ñ+Ô+ð 2Ø�LŠLÐKÑLÔLˆØ1Ð1 A§J¢J¡L¤LÐ1Ñ1Ô1Ð1å)Ð*EÈhÐWÑWÔWˆØð 	2•J˜t T¤_Ñ5Ô5ð 	2ØˆGØ×(Ò(Ñ*Ô*×3Ò3Ñ5Ô5×?Ò?ÑAÔAˆDØð 6ð 6�Ø˜Ô'Ð'Ø%Ð&:Ô;ð 6ð 6�FØÐ+Ô,Ð,Ø!'Ð(:Ô!;ð 6ð 6˜Ø  Ô.°&Ò8Ð8Ø(-¨lÔ(;˜IØ#ŸNšN¨9Ñ5Ô5Ð5øð6ð6ð ˆNà*Ð*Ð*Ð*Ð*Ð*à�7˜4‘=”=×/Ò/Ñ1Ô1Ð1r,   c                ó2  — t          | t          j        ¦  «        r3|                      d¦  «        }d„ |                     ¦   «         D ¦   «         S t          dd¬¦  «        }|r•t          | |j        ¦  «        r€g }|                      ¦   «                              ¦   «                              ¦   «         }|D ]A}|d         D ]6}|d         D ]+}|d         d	k    r|d
         }| 	                    |¦  «         Œ,Œ7ŒB|S ddl
m}	  |	| ¦  «                             ¦   «         S )Nz1SELECT name FROM sqlite_master WHERE type='table'c                ó   — g | ]
}|d          ‘ŒS rõ   r+   )rQ   r	  s     r-   rS   z"get_all_tables.<locals>.<listcomp>  s   € Ð3Ð3Ð3˜U��a”Ð3Ð3Ð3r,   r{   r|   r}   rø   rú   rû   r	  rË   r   rü   )r�   r‚   rƒ   rU   rþ   r   rÿ   r   r  r  r=   rý   Úget_table_names)
r^   r  r„   r  r  r  r  r	  rË   rý   s
             r-   Úget_all_tablesr    sD  € Ý�$�Ô*Ñ+Ô+ð 3Ø�LŠLÐLÑMÔMˆØ3Ð3 a§j¢j¡l¤lÐ3Ñ3Ô3Ð3å)Ð*EÈhÐWÑWÔWˆàð 	3•J˜t T¤_Ñ5Ô5ð 	3ØˆGØ×(Ò(Ñ*Ô*×3Ò3Ñ5Ô5×?Ò?ÑAÔAˆDØð 7ð 7�Ø%Ð&:Ô;ð 7ð 7�FØ!'Ð(:Ô!;ð 7ð 7˜Ø  Ô.°'Ò9Ð9Ø).¨|Ô)<˜JØ#ŸNšN¨:Ñ6Ô6Ð6øð7ð7ð ˆNà*Ð*Ð*Ð*Ð*Ð*à�7˜4‘=”=×0Ò0Ñ2Ô2Ð2r,   r^   úLsqlite3.Connection | sqlalchemy.engine.Engine | sqlalchemy.engine.Connectionc                óv  — t          |t          j        ¦  «        r@|                     dt	          j        | ¦  «        › �¦  «         |                     ¦   «          d S t          dd¬¦  «        }|r]t          ||j        ¦  «        rH|                     ¦   «         5 }|                     d| › d�¦  «         d d d ¦  «         d S # 1 swxY w Y   d S | 	                    ¦   «         5 }t	          j
        |¦  «        5 }|                     | ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NzDROP TABLE IF EXISTS r{   r|   r}   zDROP TABLE IF EXISTS "ú")r�   r‚   rƒ   rU   r   Ú_get_valid_sqlite_namer\   r   rT   rt   r   Ú
drop_table)rË   r^   r„   r`   rx   Údbs         r-   r  r  1  s  € õ �$�Ô*Ñ+Ô+ð .Ø�ŠÐU­SÔ-GÈ
Ñ-SÔ-SÐUÐUÑVÔVÐVØ�Š‰Œˆˆˆõ *Ð*EÈhÐWÑWÔWˆØð 	.•J˜t T¤_Ñ5Ô5ð 	.Ø—’‘”ð D #Ø—’ÐB°ZÐBÐBÐBÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dð Dð Dð —’‘”ð . Ý”_ SÑ)Ô)ð .¨RØ—M’M *Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .sH   ÂB>Â>CÃCÃD.Ã4DÄ
D.ÄD	ÄD.ÄD	ÄD.Ä.D2Ä5D2r
  c                ó”  — dd l }t          |t          j        ¦  «        r@|                     dt          j        | ¦  «        › �¦  «         |                     ¦   «          d S t          dd¬¦  «        }|r]t          ||j        ¦  «        rH| 	                    ¦   «         5 }|                     d| › d�¦  «         d d d ¦  «         d S # 1 swxY w Y   d S |j
        j        j                             | ¦  «        } |j        d|› �¦  «        }|                     ¦   «         5 }|                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   zDROP VIEW IF EXISTS r{   r|   r}   zDROP VIEW IF EXISTS "r  )r=   r�   r‚   rƒ   rU   r   r  r\   r   rT   rÒ   r†   Úidentifier_preparerÚquote_identifierr€   rt   )r
  r^   r=   r„   r`   Úquoted_viewr_   rx   s           r-   Ú	drop_viewr  D  sé  € ð ÐÐÐå�$�Ô*Ñ+Ô+ð "Ø�ŠÐS­CÔ,FÀyÑ,QÔ,QÐSÐSÑTÔTÐTØ�Š‰Œˆˆˆå)Ð*EÈhÐWÑWÔWˆØð 		"•J˜t T¤_Ñ5Ô5ð 		"Ø—’‘”ð B #Ø—’Ð@°IÐ@Ð@Ð@ÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bð œ+Ô-ÔA×RÒRØñô ˆKð #�:”?Ð#G¸+Ð#GÐ#GÑHÔHˆDØ—’‘”ð " Ø—’˜DÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s$   ÂCÃCÃ	CÄD=Ä=EÅEc               #  ón  K  — t          j        d¦  «        } t          j        d¦  «        } | j        dd|j        j        j        i| j        j        ¬¦  «        }|V — t          |¦  «        D ]}t          ||¦  «         Œt          |¦  «        D ]}t          ||¦  «         Œ|                     ¦   «          d S )Nr=   Úpymysqlz*mysql+pymysql://root@localhost:3306/pandasÚclient_flag)Úconnect_argsÚ	poolclass)ÚpytestÚimportorskiprÍ   Ú	constantsÚCLIENTÚMULTI_STATEMENTSÚpoolÚNullPoolr  r  r  r  rÑ   )r=   r  rÒ   rö   Útbls        r-   Úmysql_pymysql_enginer(  [  sÐ   è è € åÔ$ \Ñ2Ô2€JÝÔ! )Ñ,Ô,€GØ%ˆZÔ%Ø4Ø# WÔ%6Ô%=Ô%NÐOØ”/Ô*ðñ ô €Fð
 €L€L€LÝ˜fÑ%Ô%ð  ð  ˆÝ�$˜ÑÔÐÐÝ˜fÑ%Ô%ð  ð  ˆÝ�3˜ÑÔÐÐØ
‡N‚NÑÔÐÐÐr,   c                óD   — t          | |¦  «         t          | ¦  «         | S ©N©ry   r…   )r(  rØ   s     r-   Úmysql_pymysql_engine_irisr,  l  s(   € åÐ-¨yÑ9Ô9Ð9ÝÐ2Ñ3Ô3Ð3ØÐr,   c                ó(   — t          | |d¦  «         | S )Nr&   ©r¦   )r(  rš   s     r-   Úmysql_pymysql_engine_typesr/  s  s   € åÐ.°
¸GÑDÔDÐDØÐr,   c              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r*  ©r¥   )r(  r^   s     r-   Úmysql_pymysql_connr2  y  s‚   è è € à	×	%Ò	%Ñ	'Ô	'ð ¨4Øˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ó   —)©-°-c              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r*  r1  )r,  r^   s     r-   Úmysql_pymysql_conn_irisr5    s‚   è è € à	"×	*Ò	*Ñ	,Ô	,ð °Øˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r3  c              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r*  r1  )r/  r^   s     r-   Úmysql_pymysql_conn_typesr7  …  ó‚   è è € à	#×	+Ò	+Ñ	-Ô	-ð °Øˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r3  c               #  óJ  K  — t          j        d¦  «        } t          j        d¦  «          | j        d| j        j        ¬¦  «        }|V — t          |¦  «        D ]}t          ||¦  «         Œt          |¦  «        D ]}t          ||¦  «         Œ| 	                    ¦   «          d S )Nr=   Úpsycopg2z=postgresql+psycopg2://postgres:postgres@localhost:5432/pandas©r  ©
r   r!  rÍ   r%  r&  r  r  r  r  rÑ   )r=   rÒ   rö   r'  s       r-   Úpostgresql_psycopg2_enginer=  ‹  sÀ   è è € åÔ$ \Ñ2Ô2€JÝ
Ô˜
Ñ#Ô#Ð#Ø%ˆZÔ%ØGØ”/Ô*ðñ ô €Fð €L€L€LÝ˜fÑ%Ô%ð  ð  ˆÝ�$˜ÑÔÐÐÝ˜fÑ%Ô%ð  ð  ˆÝ�3˜ÑÔÐÐØ
‡N‚NÑÔÐÐÐr,   c                óD   — t          | |¦  «         t          | ¦  «         | S r*  r+  )r=  rØ   s     r-   Úpostgresql_psycopg2_engine_irisr?  ›  s(   € åÐ3°YÑ?Ô?Ð?ÝÐ8Ñ9Ô9Ð9Ø%Ð%r,   c                ó(   — t          | |d¦  «         | S )NÚpostgresr.  )r=  rš   s     r-   Ú postgresql_psycopg2_engine_typesrB  ¢  s   € åÐ4°jÀ*ÑMÔMÐMØ%Ð%r,   c              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r*  r1  )r=  r^   s     r-   Úpostgresql_psycopg2_connrD  ¨  r8  r3  c               #  ó~  K  — t          j        d¦  «         t          j        d¦  «         ddlm}  d}|                      |¦  «        5 }|V — t          |¦  «        D ]}t          ||¦  «         Œt          |¦  «        D ]}t          ||¦  «         Œ| 	                    ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )NÚpyarrowÚadbc_driver_postgresqlr   ©Údbapiz4postgresql://postgres:postgres@localhost:5432/pandas)
r   r!  rG  rI  r¥   r  r  r  r  r\   )rI  Úurir^   rö   r'  s        r-   Úpostgresql_adbc_connrK  ®  s  è è € å
Ô˜	Ñ"Ô"Ð"Ý
ÔÐ0Ñ1Ô1Ð1Ø,Ð,Ð,Ð,Ð,Ð,à
@€CØ	�Š�sÑ	Ô	ð ˜tØˆ
ˆ
ˆ
Ý! $Ñ'Ô'ð 	"ð 	"ˆDÝ�d˜DÑ!Ô!Ð!Ð!Ý! $Ñ'Ô'ð 	"ð 	"ˆCÝ�s˜DÑ!Ô!Ð!Ð!Ø�Š‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁAB2Â2B6Â9B6c                ó<  — dd l }| }	 |                     d¦  «         n4# |j        $ r' |                     ¦   «          t	          ||¦  «         Y nw xY w	 |                     d¦  «         n3# |j        $ r& |                     ¦   «          t          |¦  «         Y nw xY w|S ©Nr   r6   Ú	iris_view)Úadbc_driver_managerÚadbc_get_table_schemaÚProgrammingErrorÚrollbackrf   r…   )rK  rØ   Úmgrr^   s       r-   Úpostgresql_adbc_irisrT  ¾  sÒ   € à%Ð%Ð%Ð%à€Dð9Ø×"Ò" 6Ñ*Ô*Ð*Ð*øØÔð 9ð 9ð 9Ø�Š‰ŒˆÝ'¨¨iÑ8Ô8Ð8Ð8Ð8ð9øøøð(Ø×"Ò" ;Ñ/Ô/Ð/Ð/øØÔð (ð (ð (Ø�Š‰ŒˆÝ! $Ñ'Ô'Ð'Ð'Ð'ð(øøøð €Kó!   ˆ ž.AÁAÁA) Á)-BÂBc                óÀ   — dd l }| }	 |                     d¦  «         n@# |j        $ r3 |                     ¦   «          d„ |D ¦   «         }t	          ||¦  «         Y nw xY w|S )Nr   r�   c                óP   — g | ]#}t          |                     ¦   «         ¦  «        ‘Œ$S r+   ©Útuplers   ©rQ   Úentrys     r-   rS   z)postgresql_adbc_types.<locals>.<listcomp>Û  s(   € ÐBÐBÐB¨e•E˜%Ÿ,š,™.œ.Ñ)Ô)ÐBÐBÐBr,   )rO  rP  rQ  rR  r    )rK  rš   rS  r^   Únew_datas        r-   Úpostgresql_adbc_typesr]  Ñ  sŠ   € à%Ð%Ð%Ð%à€Dð9Ø×"Ò" 7Ñ+Ô+Ð+Ð+øØÔð 9ð 9ð 9Ø�Š‰ŒˆØBÐB°zÐBÑBÔBˆå(¨¨xÑ8Ô8Ð8Ð8Ð8ð	9øøøð €Ks   ˆ ž:AÁAc              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r*  r1  )r?  r^   s     r-   Úpostgresql_psycopg2_conn_irisr_  â  s‚   è è € à	(×	0Ò	0Ñ	2Ô	2ð °dØˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r3  c              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r*  r1  )rB  r^   s     r-   Úpostgresql_psycopg2_conn_typesra  è  s‚   è è € à	)×	1Ò	1Ñ	3Ô	3ð °tØˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r3  c                ó4   — t          j        d¦  «         d| › �S )Nr=   ú
sqlite:///)r   r!  )Ú	temp_files    r-   Ú
sqlite_strre  î  s!   € å
Ô˜Ñ%Ô%Ð%Ø#˜	Ð#Ð#Ð#r,   c              #  ó"  K  — t          j        d¦  «        } |j        | |j        j        ¬¦  «        }|V — t          |¦  «        D ]}t          ||¦  «         Œt          |¦  «        D ]}t          ||¦  «         Œ| 	                    ¦   «          d S )Nr=   r;  r<  )re  r=   rÒ   rö   r'  s        r-   Úsqlite_enginerg  ô  s¥   è è € åÔ$ \Ñ2Ô2€JØ%ˆZÔ% j¸J¼OÔ<TÐUÑUÔU€FØ
€L€L€LÝ˜fÑ%Ô%ð  ð  ˆÝ�$˜ÑÔÐÐÝ˜fÑ%Ô%ð  ð  ˆÝ�3˜ÑÔÐÐØ
‡N‚NÑÔÐÐÐr,   c              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r*  r1  )rg  r^   s     r-   Úsqlite_connri     s‚   è è € à	×	Ò	Ñ	 Ô	 ð  DØˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r3  c                ó´   — t          j        d¦  «        } |j        | ¦  «        }t          ||¦  «         t	          |¦  «         |                     ¦   «          | S )Nr=   )r   r!  rÍ   ry   r…   rÑ   )re  rØ   r=   rÒ   s       r-   Úsqlite_str_irisrk    sX   € åÔ$ \Ñ2Ô2€JØ%ˆZÔ% jÑ1Ô1€FÝ˜ Ñ+Ô+Ð+Ý˜fÑ%Ô%Ð%Ø
‡N‚NÑÔÐØÐr,   c                óD   — t          | |¦  «         t          | ¦  «         | S r*  r+  )rg  rØ   s     r-   Úsqlite_engine_irisrm    s&   € å˜¨	Ñ2Ô2Ð2Ý˜mÑ,Ô,Ð,ØÐr,   c              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r*  r1  )rm  r^   s     r-   Úsqlite_conn_irisro    s‚   è è € à	×	#Ò	#Ñ	%Ô	%ð ¨Øˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r3  c                ó˜   — t          j        d¦  «        } |j        | ¦  «        }t          ||d¦  «         |                     ¦   «          | S )Nr=   r%   )r   r!  rÍ   r¦   rÑ   )re  rš   r=   rÒ   s       r-   Úsqlite_str_typesrq    sL   € åÔ$ \Ñ2Ô2€JØ%ˆZÔ% jÑ1Ô1€FÝ˜& *¨hÑ7Ô7Ð7Ø
‡N‚NÑÔÐØÐr,   c                ó(   — t          | |d¦  «         | S )Nr%   r.  )rg  rš   s     r-   Úsqlite_engine_typesrs  &  s   € å˜-¨°XÑ>Ô>Ð>ØÐr,   c              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r*  r1  )rs  r^   s     r-   Úsqlite_conn_typesru  ,  s‚   è è € à	×	$Ò	$Ñ	&Ô	&ð ¨$Øˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r3  c              #  ó„  K  — t          j        d¦  «         t          j        d¦  «         ddlm} d| › �}|                     |¦  «        5 }|V — t          |¦  «        D ]}t          ||¦  «         Œt          |¦  «        D ]}t          ||¦  «         Œ| 	                    ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )NrF  Úadbc_driver_sqliter   rH  zfile:)
r   r!  rw  rI  r¥   r  r  r  r  r\   )rd  rI  rJ  r^   rö   r'  s         r-   Úsqlite_adbc_connrx  2  s%  è è € å
Ô˜	Ñ"Ô"Ð"Ý
ÔÐ,Ñ-Ô-Ð-Ø(Ð(Ð(Ð(Ð(Ð(à
�)Ð
Ð
€CØ	�Š�sÑ	Ô	ð ˜tØˆ
ˆ
ˆ
Ý! $Ñ'Ô'ð 	"ð 	"ˆDÝ�d˜DÑ!Ô!Ð!Ð!Ý! $Ñ'Ô'ð 	"ð 	"ˆCÝ�s˜DÑ!Ô!Ð!Ð!Ø�Š‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁAB5Â5B9Â<B9c                ó<  — dd l }| }	 |                     d¦  «         n4# |j        $ r' |                     ¦   «          t	          ||¦  «         Y nw xY w	 |                     d¦  «         n3# |j        $ r& |                     ¦   «          t          |¦  «         Y nw xY w|S rM  )rO  rP  rQ  rR  rc   r…   )rx  rØ   rS  r^   s       r-   Úsqlite_adbc_irisrz  B  sÒ   € à%Ð%Ð%Ð%à€Dð6Ø×"Ò" 6Ñ*Ô*Ð*Ð*øØÔð 6ð 6ð 6Ø�Š‰ŒˆÝ$ T¨9Ñ5Ô5Ð5Ð5Ð5ð6øøøð(Ø×"Ò" ;Ñ/Ô/Ð/Ð/øØÔð (ð (ð (Ø�Š‰ŒˆÝ! $Ñ'Ô'Ð'Ð'Ð'ð(øøøð €KrU  c                ó¶  — dd l }| }	 |                     d¦  «         n»# |j        $ r® |                     ¦   «          g }|D ]n}t	          |d         ¦  «        |d<   |d         �t	          |d         ¦  «        |d<   |                     t          |                     ¦   «         ¦  «        ¦  «         Œot          ||¦  «         | 	                    ¦   «          Y nw xY w|S )Nr   r�   r”   r–   )
rO  rP  rQ  rR  Úintr  rY  rs   rž   r\   )rx  rš   rS  r^   r\  r[  s         r-   Úsqlite_adbc_typesr}  T  s÷   € à%Ð%Ð%Ð%à€DðØ×"Ò" 7Ñ+Ô+Ð+Ð+øØÔð 
ð 
ð 
Ø�Š‰ŒˆØˆØð 	3ð 	3ˆEÝ" 5¨Ô#3Ñ4Ô4ˆE�)ÑØÐ&Ô'Ð3Ý+.¨uÐ5FÔ/GÑ+HÔ+H�Ð'Ñ(Ø�OŠO�E %§,¢,¡.¤.Ñ1Ô1Ñ2Ô2Ð2Ð2å% d¨HÑ5Ô5Ð5Ø�Š‰Œˆˆˆð
øøøð €Ks   ˆ žB5CÃCc               #  óÄ   K  — t          j        t          j        d¦  «        ¦  «        5 } | 5 }|V — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nú:memory:)Ú
contextlibÚclosingr‚   r¥   ©Úclosing_connr^   s     r-   Úsqlite_buildinr„  j  sã   è è € å	Ô	�GœO¨JÑ7Ô7Ñ	8Ô	8ð ¸LØð 	˜TØˆJˆJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s1   ©A¬=±A½A	ÁAÁA	ÁAÁAÁAc                óD   — t          | |¦  «         t          | ¦  «         | S r*  )rc   r…   )r„  rØ   s     r-   Úsqlite_buildin_irisr†  q  s&   € å  °Ñ;Ô;Ð;Ý˜nÑ-Ô-Ð-ØÐr,   c                ó>   — d„ |D ¦   «         }t          | |¦  «         | S )Nc                óP   — g | ]#}t          |                     ¦   «         ¦  «        ‘Œ$S r+   rX  rZ  s     r-   rS   z(sqlite_buildin_types.<locals>.<listcomp>z  s(   € Ð@Ð@Ð@¨E•%˜Ÿš™œÑ'Ô'Ð@Ð@Ð@r,   )rž   )r„  rš   s     r-   Úsqlite_buildin_typesr‰  x  s+   € à@Ð@°ZÐ@Ñ@Ô@€JÝ! .°*Ñ=Ô=Ð=ØÐr,   r(  )Úmarksr2  r,  r5  r/  r7  r=  rD  r?  r_  rB  ra  )rg  ri  re  )rm  ro  rk  )rs  ru  rq  rx  rK  rT  rz  r]  r}  r„  r†  r‰  c                ób   — |                      | ¦  «        } |                     d| dd¬¦  «         d S )NÚtestr  F©r¯   rx   Ú	if_existsr»   )ÚgetfixturevalueÚto_sql)r^   rð   Úrequests      r-   Útest_dataframe_to_sqlr’  Ø  s:   € ð ×"Ò" 4Ñ(Ô(€DØ×Ò˜F¨¸ÈÐÑNÔNÐNÐNÐNr,   c                óŠ  — | dk    rt          ¦   «         sqt          j        d¦  «        }t          |j        ¦  «        t          d¦  «        k     r8|j                             t          j                             d¬¦  «        ¦  «         | 	                    | ¦  «        } |j
        d d…         }|                     d| dd	¬
¦  «         d S )NrK  rG  z1.11z>postgres ADBC driver < 1.11 cannot insert index with null type©Úreasonr   rŒ  r  Fr�  )r   r   r!  r   r>   ÚnodeÚ
add_markerÚmarkÚxfailr�  rÀ   r�  )r^   rð   r‘  Úadbc_pgÚempty_dfs        r-   Útest_dataframe_to_sql_emptyrœ  ß  sÄ   € àÐ%Ò%Ð%Õ.@Ñ.BÔ.BÐ%ÝÔ%Ð&>Ñ?Ô?ˆÝ�7Ô&Ñ'Ô'­'°&©/¬/Ò9Ð9ØŒL×#Ò#Ý”×!Ò!àXð "ñ ô ñô ð ð ×"Ò" 4Ñ(Ô(€DØÔ   Ô#€HØ‡O‚O˜ T°XÀU€OÑKÔKÐKÐKÐKr,   c                ó¼  — t          j        d¦  «         t          t          j        dgd¬¦  «        t          j        t          ddd¦  «        gd¬¦  «        t          j        t          ddd¦  «        gd¬¦  «        t          j        t          d¦  «        gd¬¦  «        t          j        d	gd
¬¦  «        dœ¦  «        }d| v r3| dk    r|                     dg¬¦  «        }t          r
t          }d}nd }d}n	t          }d}|                     | ¦  «        } t          j        ||d¬¦  «        5  |                     d| dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrF  rJ   zint8[pyarrow]©r?   éç  útimestamp[ns][pyarrow]zdate32[day][pyarrow]zduration[ns][pyarrow]Úazstring[pyarrow])r|  r   r   r   Ústringr„   rx  r   rí   zis_sparse is deprecatedÚ zthe 'timedelta'F)ÚmatchÚcheck_stacklevelÚ
test_arrowÚreplacer�  )r   r!  r   ÚpdÚarrayr   r   r   ru   r   ÚDeprecationWarningÚUserWarningr�  rÅ   Úassert_produces_warningr�  )r^   r‘  rá   Úexp_warningÚmsgs        r-   Ú"test_dataframe_to_sql_arrow_dtypesr¯  ò  sÒ  € õ Ô˜	Ñ"Ô"Ð"Ý	å”8˜Q˜C Ð7Ñ7Ô7ÝœÝ˜$  1Ñ%Ô%Ð&Ð.Fðñ ô õ ”H�d 4¨¨AÑ.Ô.Ð/Ð7MÐNÑNÔNÝœ¥9¨Q¡<¤< .Ð8OÐPÑPÔPÝ”h ˜uÐ,=Ð>Ñ>Ô>ð	
ð 	
ñ

ô 

€Bð �€~€~ØÐ%Ò%Ð%Ø—’ + �Ñ/Ô/ˆBÝð 	Ý,ˆKØ+ˆCˆCàˆKØˆCˆCå!ˆØˆà×"Ò" 4Ñ(Ô(€DÝ	Ô	# K°sÈUÐ	SÑ	SÔ	Sð Qð QØ
�	Š	�|¨¸È%ˆ	ÑPÔPÐPðQð Qð Qñ Qô Qð Qð Qð Qð Qð Qð Qð Qøøøð Qð Qð Qð Qð Qð Qs   Ä*EÅEÅEc           
     óJ  — t          j        d¦  «         t          |t          ¦  «        rt          j        d¬¦  «         t          dt          j        t          ddd¦  «        |gd¬¦  «        i¦  «        }| 	                    | ¦  «        } | 
                    d	| d
d¬¦  «         d S )NrF  z?Decimal('NaN') not supported in constructor for timestamp dtyper”  r   rŸ  rJ   r   rž  r¦  r§  Fr�  )r   r!  r�   r   Úskipr   r¨  r©  r   r�  r�  )r^   r‘  Únulls_fixturerá   s       r-   Ú*test_dataframe_to_sql_arrow_dtypes_missingr³    s»   € õ Ô˜	Ñ"Ô"Ð"Ý�-¥Ñ)Ô)ð 
ÝŒàTð	
ñ 	
ô 	
ð 	
õ
 
à�œÝ˜$  1Ñ%Ô% }Ð5Ð=Uðñ ô ð	
ñ
ô 
€Bð ×"Ò" 4Ñ(Ô(€DØ‡I‚I�< T°YÀe€IÑLÔLÐLÐLÐLr,   ÚmethodÚmultic                ó®  — |dk    r=d| v r9|j                              t          j                             dd¬¦  «        ¦  «         |                     | ¦  «        } t          | d¬¦  «        5 }|                     |d|¬¦  «         |                     d¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          | d¦  «        t          |¦  «        k    sJ ‚d S )	Nrµ  r„   z)'method' not implemented for ADBC driversT©r•  Ústrict©Úneed_transactionÚ
test_frame©r´  )r–  r—  r   r˜  r™  r�  r!   r�  Ú	has_tablerÓ   Úlen)r^   r´  rð   r‘  Ú	pandasSQLs        r-   Útest_to_sqlrÀ  )  s-  € ð �ÒÐ˜V t˜^˜^ØŒ×ÒÝŒK×ÒØBÈ4ð ñ ô ñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DÝ	˜4°$Ð	7Ñ	7Ô	7ð 1¸9Ø×Ò˜ l¸6ÐÑBÔBÐBØ×"Ò" <Ñ0Ô0Ð0Ð0Ð0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1õ �d˜LÑ)Ô)­S°Ñ-=Ô-=Ò=Ð=Ð=Ð=Ð=Ð=s   Á*0B'Â'B+Â.B+zmode, num_row_coef))r§  rJ   )r  rK   )Údelete_rowsrJ   c                ó^  — |                      | ¦  «        } t          | d¬¦  «        5 }|                     |dd¬¦  «         |                     |d|¬¦  «         |                     d¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t	          | d¦  «        |t          |¦  «        z  k    sJ ‚d S )NTr¹  r»  Úfail©rŽ  ©r�  r!   r�  r½  rÓ   r¾  )r^   ÚmodeÚnum_row_coefrð   r‘  r¿  s         r-   Útest_to_sql_existrÈ  :  sÿ   € ð
 ×"Ò" 4Ñ(Ô(€DÝ	˜4°$Ð	7Ñ	7Ô	7ð 1¸9Ø×Ò˜ l¸fÐÑEÔEÐEØ×Ò˜ l¸dÐÑCÔCÐCØ×"Ò" <Ñ0Ô0Ð0Ð0Ð0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1õ �d˜LÑ)Ô)¨\½CÀÑ<LÔ<LÑ-LÒLÐLÐLÐLÐLÐLs   §AA<Á<B ÂB c                ó|  — |                      | ¦  «        } t          | d¬¦  «        5 }|                     |dd¬¦  «         |                     d¦  «        sJ ‚d}t	          j        t          |¬¦  «        5  |                     |dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NTr¹  r»  rÃ  rÄ  z!Table 'test_frame' already exists©r¤  )r�  r!   r�  r½  r   ÚraisesÚ
ValueError)r^   rð   r‘  r¿  r®  s        r-   Útest_to_sql_exist_failrÍ  G  sl  € à×"Ò" 4Ñ(Ô(€DÝ	˜4°$Ð	7Ñ	7Ô	7ð J¸9Ø×Ò˜ l¸fÐÑEÔEÐEØ×"Ò" <Ñ0Ô0Ð0Ð0Ð0à1ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	Jð 	JØ×Ò˜[¨,À&ÐÑIÔIÐIð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	JðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jð Jð Js6   §AB1Á4BÂB1ÂB	ÂB1Â B	Â!B1Â1B5Â8B5c                ó  — |                      | ¦  «        } t          d| ¦  «        }t          |¦  «         t          j        d| ¦  «        }t          |¦  «         t          j        d| ¦  «        }|j        dk    sJ ‚d|j        v sJ ‚d S )NúSELECT * FROM irisúSELECT * FROM iris where 0=1©r   r½   r8   )r�  r"   rÊ   r¨  Úread_sqlrÈ   rÇ   ©r^   r‘  Ú
iris_frames      r-   Útest_read_iris_queryrÕ  S  s“   € à×"Ò" 4Ñ(Ô(€DÝÐ 4°dÑ;Ô;€JÝ�ZÑ Ô Ð Ý”Ð1°4Ñ8Ô8€JÝ�ZÑ Ô Ð Ý”Ð;¸TÑBÔB€JØÔ˜vÒ%Ð%Ð%Ð%Ø˜:Ô-Ð-Ð-Ð-Ð-Ð-Ð-r,   c                óä  — d| v r9|j                              t          j                             dd¬¦  «        ¦  «         |                     | ¦  «        } t          t          d| d¬¦  «        ¦  «        }t          |¦  «         t          t          j
        d| d¬¦  «        ¦  «        }t          |¦  «         t          t          j
        d| d¬¦  «        ¦  «        }|j        d	k    sJ ‚d
|j        v sJ ‚d S )Nr„   ú,'chunksize' not implemented for ADBC driversTr·  rÏ  é   ©Ú	chunksizerÐ  rÑ  r8   )r–  r—  r   r˜  r™  r�  r   r"   rÊ   r¨  rÒ  rÈ   rÇ   rÓ  s      r-   Útest_read_iris_query_chunksizerÛ  _  s   € à�€~€~ØŒ×ÒÝŒK×ÒØEØð ñ ô ñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DÝ�Ð';¸TÈQÐOÑOÔOÑPÔP€JÝ�ZÑ Ô Ð Ý�œÐ$8¸$È!ÐLÑLÔLÑMÔM€JÝ�ZÑ Ô Ð Ý�œÐ$BÀDÐTUÐVÑVÔVÑWÔW€JØÔ˜vÒ%Ð%Ð%Ð%Ø˜:Ô-Ð-Ð-Ð-Ð-Ð-Ð-r,   c                óæ  — d| v r9|j                              t          j                             dd¬¦  «        ¦  «         |                     | ¦  «        } ddlm}m}m	}m
}  |¦   «         }t          | t          ¦  «        r || ¦  «        n| } |d||¬¦  «        }t           ||¦  «        | d	d
dœ¬¦  «        }	t          |	¦  «         t          | t          ¦  «        r|                     ¦   «          d S d S )Nr„   r×  Tr·  r   )r3   r5   rÍ   Úselectr6   )Úautoload_withrº   r¸   ©r¯   Úlength©rw   )r–  r—  r   r˜  r™  r�  r=   r3   r5   rÍ   rÝ  r�   r‡   r"   rÊ   rÑ   )
r^   r‘  r3   r5   rÍ   rÝ  r@   Úautoload_conr6   rÔ  s
             r-   Ú.test_read_iris_query_expression_with_parameterrã  r  sK  € à�€~€~ØŒ×ÒÝŒK×ÒØEØð ñ ô ñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€Dðð ð ð ð ð ð ð ð ð ð ð ð ˆx‰zŒz€HÝ*4°T½3Ñ*?Ô*?ÐI�=�= Ñ&Ô&Ð&ÀT€LØˆ5�˜°Ð>Ñ>Ô>€DÝØˆˆt‰Œ�d¨MÀSÐ#IÐ#Iðñ ô €Jõ �ZÑ Ô Ð Ý�$�ÑÔð Ø×ÒÑÔÐÐÐðð r,   c                ó^  — d| v r9|j                              t          j                             dd¬¦  «        ¦  «         |d                              ¦   «         D ]\  }}|| v r nŒt          d| › d�¦  «        ‚|                     | ¦  «        } t          || d¬	¦  «        }t          |¦  «         d S )
Nr„   r×  Tr·  r(   zNo part of z( found in sql_strings['read_parameters']©rº   r¸   rá  )
r–  r—  r   r˜  r™  ÚitemsÚKeyErrorr�  r"   rÊ   )r^   r‘  r.   r  ÚqueryrÔ  s         r-   Ú*test_read_iris_query_string_with_parameterré  Ž  sÙ   € à�€~€~ØŒ×ÒÝŒK×ÒØEØð ñ ô ñ	
ô 	
ð 	
ð !Ð!2Ô3×9Ò9Ñ;Ô;ð Uð U‰	ˆˆEØ�ˆ:ˆ:ØˆEð õ ÐS TÐSÐSÐSÑTÔTÐTØ×"Ò" 4Ñ(Ô(€DÝ  tÐ4HÐIÑIÔI€JÝ�ZÑ Ô Ð Ð Ð r,   c                ó¶   — |                      | ¦  «        } t          d| ¦  «        }t          |¦  «         t          j        d| ¦  «        }t          |¦  «         d S )Nr6   )r�  r#   rÊ   r¨  rÒ  rÓ  s      r-   Útest_read_iris_tablerë  ¢  sY   € ð ×"Ò" 4Ñ(Ô(€DÝ ¨Ñ-Ô-€JÝ�ZÑ Ô Ð Ý”˜V TÑ*Ô*€JÝ�ZÑ Ô Ð Ð Ð r,   c                ój  — d| v r8|j                              t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          t          d| d¬¦  «        ¦  «        }t          |¦  «         t          t          j
        d| d¬¦  «        ¦  «        }t          |¦  «         d S )Nr„   ú+chunksize argument NotImplemented with ADBCr”  r6   rØ  rÙ  )r–  r—  r   r˜  r™  r�  r   r#   rÊ   r¨  rÒ  rÓ  s      r-   Útest_read_iris_table_chunksizerî  ¬  s­   € à�€~€~ØŒ×ÒÝŒK×ÒÐ%RÐÑSÔSñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DÝ� v¨t¸qÐAÑAÔAÑBÔB€JÝ�ZÑ Ô Ð Ý�œ F¨D¸AÐ>Ñ>Ô>Ñ?Ô?€JÝ�ZÑ Ô Ð Ð Ð r,   c                óJ  ‡— |                      | ¦  «        } g Šˆfd„}t          | d¬¦  «        5 }|                     |d|¬¦  «         |                     d¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   ‰dgk    sJ ‚t	          | d¦  «        t          |¦  «        k    sJ ‚d S )Nc                óª   •‡— ‰                      d¦  «         ˆfd„|D ¦   «         }|                     | j                             ¦   «         |¦  «         d S )NrJ   c                óJ   •— g | ]}t          t          ‰|¦  «        ¦  «        ‘Œ S r+   rk   ©rQ   rR   rà   s     €r-   rS   z8test_to_sql_callable.<locals>.sample.<locals>.<listcomp>Á  ó)   ø€ Ð:Ð:Ð:¨••S˜˜s‘^”^Ñ$Ô$Ð:Ð:Ð:r,   )r  rU   r	  ri   )Úpd_tabler^   rà   Ú	data_iterrÖ   Úchecks     `  €r-   Úsamplez$test_to_sql_callable.<locals>.sample¿  sT   øø€ Ø�Š�Q‰ŒˆØ:Ð:Ð:Ð:°	Ð:Ñ:Ô:ˆØ�Š�X”^×*Ò*Ñ,Ô,¨dÑ3Ô3Ð3Ð3Ð3r,   Tr¹  r»  r¼  rJ   rÅ  )r^   rð   r‘  r÷  r¿  rö  s        @r-   Útest_to_sql_callablerø  ¹  s  ø€ à×"Ò" 4Ñ(Ô(€Dà€Eð4ð 4ð 4ð 4ð 4õ
 
˜4°$Ð	7Ñ	7Ô	7ð 1¸9Ø×Ò˜ l¸6ÐÑBÔBÐBØ×"Ò" <Ñ0Ô0Ð0Ð0Ð0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð �Q�CŠ<ˆ<ˆ<ˆ<Ý�d˜LÑ)Ô)­S°Ñ-=Ô-=Ò=Ð=Ð=Ð=Ð=Ð=s   ¯0A,Á,A0Á3A0c                ó6  — | }|dk    r3|                      t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          j        d| ¦  «        }t          |j        j	        j
        t          j        ¦  «        sJ ‚t          |j        j	        j
        t          j        ¦  «        sJ ‚d|v r,t          |j        j	        j
        t          j        ¦  «        sJ ‚n+t          |j        j	        j
        t          j        ¦  «        sJ ‚t          |j        j	        j
        t          j        ¦  «        sJ ‚d|v r(t          |j        j	        j
        t&          ¦  «        sJ ‚d S t          |j        j	        j
        t          j        ¦  «        sJ ‚d S )Nr‰  ú;sqlite_buildin connection does not implement read_sql_tabler”  r�   r'   )Úapplymarkerr   r˜  r™  r�  r   r#   rÂ   r’   r?   rÁ   rÃ   rÄ   r“   Úintegerr”   Úbool_r•   r–   Úobject©r^   r‘  Ú	conn_namerá   s       r-   Útest_default_type_conversionr  Ë  sz  € à€IØÐ*Ò*Ð*Ø×ÒÝŒK×ÒØTð ñ ô ñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DÝ	Ô	˜G TÑ	*Ô	*€Bå�b”kÔ'Ô,­b¬kÑ:Ô:Ð:Ð:Ð:Ý�b”i”oÔ*­B¬JÑ7Ô7Ð7Ð7Ð7ð �yÐ Ð Ý˜"œ*Ô*Ô/µ´Ñ:Ô:Ð:Ð:Ð:Ð:å˜"œ*Ô*Ô/µ´Ñ<Ô<Ð<Ð<Ð<õ �bÔ'Ô-Ô2µB´KÑ@Ô@Ð@Ð@Ð@ð �yÐ Ð Ý˜"Ô,Ô2Ô7½Ñ@Ô@Ð@Ð@Ð@Ð@Ð@å˜"Ô,Ô2Ô7½¼ÑEÔEÐEÐEÐEÐEÐEr,   c                óä  — |                      | ¦  «        } ddlm} ddlm} t          g d¢g d¢dœ¦  «        }|                     d| d¬	¦  «         d
} ||¦  «        }t          | |¦  «        rn|                      ¦   «         5 }| 	                    ¦   «         5  | 
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   nA|  	                    ¦   «         5  |  
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d| ¦  «        }t          j        ||¦  «         t          j        d| ¦  «        }t          j        ||¦  «         d S )Nr   r   r¢   ©rJ   rK   rL   ©çš™™™™™¹?r¹   ç333333Ó?©r¡  Úbr»  F©r¯   rx   r»   z}DROP PROCEDURE IF EXISTS get_testdb;

    CREATE PROCEDURE get_testdb ()

    BEGIN
        SELECT * FROM test_frame;
    ENDzCALL get_testdb();)r�  r=   r€   r¤   r£   r   r�  r�   r¥   rt   rU   r   r"   rÅ   Úassert_frame_equalrÒ  )	r^   r‘  r€   r£   rá   ÚprocÚengine_connÚres1Úres2s	            r-   Útest_read_procedurer  ë  s@  € à×"Ò" 4Ñ(Ô(€Dð
  ÐÐÐÐÐØ(Ð(Ð(Ð(Ð(Ð(å	˜˜˜¨¨¨Ð9Ð9Ñ	:Ô	:€BØ‡I‚I�< T°€IÑ7Ô7Ð7ð€Dð ˆ4�‰:Œ:€DÝ�$˜ÑÔð Ø�\Š\‰^Œ^ð 	*˜{Ø×"Ò"Ñ$Ô$ð *ð *Ø×#Ò# DÑ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*øð �ZŠZ‰\Œ\ð 	ð 	Ø�LŠL˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ÔÐ2°DÑ9Ô9€DÝÔ˜"˜dÑ#Ô#Ð#õ Œ<Ð,¨dÑ3Ô3€DÝÔ˜"˜dÑ#Ô#Ð#Ð#Ð#sH   ÂCÂB8Â,CÂ8B<	Â<CÂ?B<	Ã CÃCÃCÃ/DÄDÄDÚexpected_countrK   zSuccess!c                ó  ‡— ˆfd„}|                      | ¦  «        } t          ddgddgddgdœ¦  «        }|                     d	| d
|¬¦  «        }‰€|�J ‚n|‰k    sJ ‚t          j        d	| ¦  «        }t          j        ||¦  «         d S )Nc                óÄ  •— |j         }|                     ¦   «         5 }t          ¦   «         }t          j        |¦  «        }|                     |¦  «         |                     d¦  «         d                     d„ |D ¦   «         ¦  «        }| j        r| j        › d| j	        › �}	n| j	        }	d|	› d|› d�}
| 
                    |
|¬¦  «         d d d ¦  «         n# 1 swxY w Y   ‰S )	Nr   z, c                ó   — g | ]}d |› d �‘Œ	S )r  r+   )rQ   Úks     r-   rS   zVtest_copy_from_callable_insertion_method.<locals>.psql_insert_copy.<locals>.<listcomp>  s    € Ð 8Ð 8Ð 8¨a  Q   Ð 8Ð 8Ð 8r,   ú.zCOPY z (z) FROM STDIN WITH CSV)r   Úfile)Ú
connectionrT   r	   rW   ÚwriterÚ	writerowsÚseekÚjoinr  r¯   Úcopy_expert)r	  r^   rà   rõ  Ú
dbapi_connr`   Ús_bufr  rÇ   rË   Ú	sql_queryr  s              €r-   Úpsql_insert_copyzBtest_copy_from_callable_insertion_method.<locals>.psql_insert_copy  s)  ø€ à”_ˆ
Ø×ÒÑ Ô ð 	7 CÝ‘J”JˆEÝ”Z Ñ&Ô&ˆFØ×Ò˜YÑ'Ô'Ð'Ø�JŠJ�q‰MŒMˆMà—i’iÐ 8Ð 8°4Ð 8Ñ 8Ô 8Ñ9Ô9ˆGØŒ|ð (Ø %¤Ð;Ð;¨u¬zÐ;Ð;�
�
à"œZ�
àL 
ÐLÐL¨gÐLÐLÐLˆIØ�OŠO 	°ˆOÑ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð Ðs   �B,CÃCÃCrJ   rK   r  r¹   r¡  Ún©Úcol1Úcol2Úcol3r»  F)r¯   rx   r»   r´  ©r�  r   r�  r   r#   rÅ   r
  )r^   r  r‘  r   ÚexpectedÚresult_countÚresults    `     r-   Ú(test_copy_from_callable_insertion_methodr*    sÉ   ø€ ðð ð ð ð ð& ×"Ò" 4Ñ(Ô(€DÝ 1 a &°3¸°*ÀsÈCÀjÐQÐQÑRÔR€HØ—?’?Ø˜t¨5Ð9Ið #ñ ô €Lð ÐØÐ#Ð#Ð#Ð#à˜~Ò-Ð-Ð-Ð-ÝÔ ¨dÑ3Ô3€FÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r,   c                óÊ  ‡— |                      | ¦  «        } ddlmŠ ddlm} ddlm} ˆfd„} |d¦  «        }t          | |¦  «        rn|                      ¦   «         5 }| 	                    ¦   «         5  | 
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   nA|  	                    ¦   «         5  |  
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   t          g d¢gt          d¦  «        ¬	¦  «        }|                     d
| dd¬¦  «         t          g d¢gt          d¦  «        ¬	¦  «        }|                     d
| dd|¬¦  «        }	t          j        d
| ¦  «        }
t!          j        |
|¦  «         |	dk    sJ ‚t          j        | d¬¦  «        5 }|                     d
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   rh   r¢   r   c                óÊ   •‡— ˆfd„|D ¦   «         } ‰| j         ¦  «                             |¦  «                             dg¬¦  «        }|                     |¦  «        }|j        S )Nc                óJ   •— g | ]}t          t          ‰|¦  «        ¦  «        ‘Œ S r+   rk   rò  s     €r-   rS   z\test_insertion_method_on_conflict_do_nothing.<locals>.insert_on_conflict.<locals>.<listcomp>A  ró  r,   r¡  )Úindex_elements)r	  rs   Úon_conflict_do_nothingrU   Úrowcount©r	  r^   rà   rõ  rÖ   r_   r)  ri   s     `    €r-   Úinsert_on_conflictzHtest_insertion_method_on_conflict_do_nothing.<locals>.insert_on_conflict@  sj   øø€ Ø:Ð:Ð:Ð:°	Ð:Ñ:Ô:ˆàˆF�5”;ÑÔßŠV�D‰\Œ\ß#Ò#°C°5Ð#Ñ9Ô9ð 	ð
 —’˜dÑ#Ô#ˆØŒÐr,   zx
    CREATE TABLE test_insert_conflict (
        a  integer PRIMARY KEY,
        b  numeric,
        c  text
    );
    ©rJ   çÍÌÌÌÌÌ @r¡  Úabcrí   Útest_insert_conflictr  Fr�  ©rJ   gš™™™™™	@r  ©r¯   rx   r»   rŽ  r´  Tr¹  )r�  Úsqlalchemy.dialects.postgresqlri   r¤   r£   Úsqlalchemy.sqlr€   r�   r¥   rt   rU   r   Úlistr�  r   r#   rÅ   r
  r   r  )r^   r‘  r£   r€   r2  Ú
create_sqlrx   r'  Ú	df_insertÚinsertedr)  r¿  ri   s               @r-   Ú,test_insertion_method_on_conflict_do_nothingr?  7  s/  ø€ ð ×"Ò" 4Ñ(Ô(€Dà5Ð5Ð5Ð5Ð5Ð5Ø(Ð(Ð(Ð(Ð(Ð(Ø#Ð#Ð#Ð#Ð#Ð#ðð ð ð ð ð �ð	ñô €Jõ �$˜ÑÔð %Ø�\Š\‰^Œ^ð 	(˜sØ—’‘”ð (ð (Ø—’˜JÑ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(øð �ZŠZ‰\Œ\ð 	%ð 	%Ø�LŠL˜Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%õ ˜-˜-˜-˜µ$°u±+´+Ð>Ñ>Ô>€HØ‡O‚OØ#¨¸Èð ñ ô ð õ ˜=˜=˜=˜/µ4¸±;´;Ð?Ñ?Ô?€IØ×ÒØ#ØØØØ!ð  ñ ô €Hõ ÔÐ 6¸Ñ=Ô=€FÝÔ˜& (Ñ+Ô+Ð+Ø�qŠ=ˆ=ˆ=ˆ=õ 
Œ˜°Ð	5Ñ	5Ô	5ð 5¸Ø×ÒÐ3Ñ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð 5ð 5óZ   ÁB+Á2BÂB+ÂB	ÂB+ÂB	ÂB+Â+B/Â2B/ÃC-Ã-C1Ã4C1Æ5GÇGÇGc                óz  — d| v sd| v r3|                      t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          g d¢g d¢gt          d¦  «        ¬¦  «        }|                     d	| d
dd¬¦  «         t          j	        d	| d¬¦  «        }t          j        ||¦  «         d S )Nr%   r&   z2test for public schema only specific to postgresqlr”  r3  )rK   gÍÌÌÌÌÌ@r  r5  rí   Útest_public_schemar  FÚpublic)r¯   rx   rŽ  r»   r  ©r  )rû  r   r˜  r™  r�  r   r;  r�  r   r#   rÅ   r
  )r^   r‘  Ú	test_dataÚdf_outs       r-   Útest_to_sql_on_public_schemarG  q  sã   € à�4ÐÐ˜7 d˜?˜?Ø×ÒÝŒK×ÒØKð ñ ô ñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€Då˜=˜=˜=¨-¨-¨-Ð8Å$ÀuÁ+Ä+ÐNÑNÔN€IØ×ÒØ!ØØØØð ñ ô ð õ ÔÐ 4°dÀ8ÐLÑLÔL€FÝÔ˜) VÑ,Ô,Ð,Ð,Ð,r,   c                óÊ  ‡— |                      | ¦  «        } ddlmŠ ddlm} ddlm} ˆfd„} |d¦  «        }t          | |¦  «        rn|                      ¦   «         5 }| 	                    ¦   «         5  | 
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   nA|  	                    ¦   «         5  |  
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   t          g d¢gt          d¦  «        ¬	¦  «        }|                     d
| dd¬¦  «         t          g d¢gt          d¦  «        ¬	¦  «        }|                     d
| dd|¬¦  «        }	t          j        d
| ¦  «        }
t!          j        |
|¦  «         |	dk    sJ ‚t          j        | d¬¦  «        5 }|                     d
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   rh   r¢   r   c                óö   •‡— ˆfd„|D ¦   «         } ‰| j         ¦  «                             |¦  «        }|                     |j        j        |j        j        ¬¦  «        }|                     |¦  «        }|j        S )Nc                óJ   •— g | ]}t          t          ‰|¦  «        ¦  «        ‘Œ S r+   rk   rò  s     €r-   rS   zXtest_insertion_method_on_conflict_update.<locals>.insert_on_conflict.<locals>.<listcomp>“  ró  r,   )r  r  )r	  rs   Úon_duplicate_key_updater>  r  r  rU   r0  r1  s     `    €r-   r2  zDtest_insertion_method_on_conflict_update.<locals>.insert_on_conflict’  su   øø€ Ø:Ð:Ð:Ð:°	Ð:Ñ:Ô:ˆØˆv�e”kÑ"Ô"×)Ò)¨$Ñ/Ô/ˆØ×+Ò+¨d¬m¬oÀÄÄÐ+ÑQÔQˆØ—’˜dÑ#Ô#ˆØŒÐr,   zv
    CREATE TABLE test_insert_conflict (
        a INT PRIMARY KEY,
        b FLOAT,
        c VARCHAR(10)
    );
    r3  r5  rí   r6  r  Fr�  r7  r8  rK   Tr¹  )r�  Úsqlalchemy.dialects.mysqlri   r¤   r£   r:  r€   r�   r¥   rt   rU   r   r;  r�  r   r#   rÅ   r
  r   r  )r^   r‘  r£   r€   r2  r<  rx   rá   r'  r>  r)  r¿  ri   s               @r-   Ú(test_insertion_method_on_conflict_updaterM  ‰  s"  ø€ ð ×"Ò" 4Ñ(Ô(€Dà0Ð0Ð0Ð0Ð0Ð0Ø(Ð(Ð(Ð(Ð(Ð(Ø#Ð#Ð#Ð#Ð#Ð#ðð ð ð ð ð �ð	ñô €Jõ �$˜ÑÔð %Ø�\Š\‰^Œ^ð 	(˜sØ—’‘”ð (ð (Ø—’˜JÑ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(øð �ZŠZ‰\Œ\ð 	%ð 	%Ø�LŠL˜Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%õ 
�M�M�M�?­D°©K¬KÐ	8Ñ	8Ô	8€BØ‡I‚IÐ)¨t¸xÈu€IÑUÔUÐUå˜-˜-˜-˜µ$°u±+´+Ð>Ñ>Ô>€HØ�ŠØ#ØØØØ!ð ñ ô €Hõ ÔÐ 6¸Ñ=Ô=€FÝÔ˜& (Ñ+Ô+Ð+Ø�qŠ=ˆ=ˆ=ˆ=õ 
Œ˜°Ð	5Ñ	5Ô	5ð 5¸Ø×ÒÐ3Ñ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð 5ð 5r@  c                óÒ  — |                      | ¦  «        } ddlm} ddlm} dt          j        ¦   «         j        › �}dt          j        ¦   «         j        › �} |d|› d|› d|› d	|› d
�	¦  «        }t          | |¦  «        rn|  	                    ¦   «         5 }| 
                    ¦   «         5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   nA|  
                    ¦   «         5  |                      |¦  «         d d d ¦  «         n# 1 swxY w Y   t          || ¦  «        }t          dgddœ¦  «        }	t          j        ||	¦  «         d S )Nr   r¢   r   Úgroup_Úgroup_view_z
    CREATE TABLE zF (
        group_id INTEGER,
        name TEXT
    );
    INSERT INTO z- VALUES
        (1, 'name');
    CREATE VIEW z
    AS
    SELECT * FROM z;
    rJ   r¯   ©Úgroup_idr¯   )r�  r¤   r£   r:  r€   ÚuuidÚuuid4Úhexr�   r¥   rt   rU   r#   r   rÅ   r
  )
r^   r‘  r£   r€   rË   r
  Úsql_stmtrx   r)  r'  s
             r-   Útest_read_view_postgresrW  ¾  s\  € ð ×"Ò" 4Ñ(Ô(€Dà(Ð(Ð(Ð(Ð(Ð(Ø#Ð#Ð#Ð#Ð#Ð#à,�$œ*™,œ,Ô*Ð,Ð,€JØ0�dœj™lœlÔ.Ð0Ð0€Iàˆtð
	Øð
	ð 
	ð
 ð
	ð 
	ð ð
	ð 
	ð ð
	ð 
	ð 
	ñô €Hõ �$˜ÑÔð #Ø�\Š\‰^Œ^ð 	&˜sØ—’‘”ð &ð &Ø—’˜HÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&øð �ZŠZ‰\Œ\ð 	#ð 	#Ø�LŠL˜Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#å˜I tÑ,Ô,€FÝ q c°6Ð:Ð:Ñ;Ô;€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+sH   ÂC"Â)CÂ?C"ÃC	ÃC"ÃC	ÃC"Ã"C&Ã)C&ÄD$Ä$D(Ä+D(c                ó
  — d}d}d}|                       |¦  «         |                       |¦  «         |                       |¦  «         t          j        d| ¦  «        }t          dgddœ¦  «        }t	          j        ||¦  «         d S )Nz<
CREATE TABLE groups (
   group_id INTEGER,
   name TEXT
);
z,
INSERT INTO groups VALUES
    (1, 'name');
z1
CREATE VIEW group_view
AS
SELECT * FROM groups;
zSELECT * FROM group_viewrJ   r¯   rQ  )rU   r¨  rÒ  r   rÅ   r
  )r„  Úcreate_tableÚinsert_intoÚcreate_viewr)  r'  s         r-   Útest_read_view_sqliter\  â  s—   € ð€Lð€Kð€Kð
 ×Ò˜<Ñ(Ô(Ð(Ø×Ò˜;Ñ'Ô'Ð'Ø×Ò˜;Ñ'Ô'Ð'ÝŒ[Ð3°^ÑDÔD€FÝ q c°6Ð:Ð:Ñ;Ô;€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r,   c                óJ   — d| v rdS d| v rdS d| v rdS t          d| › �¦  «        ‚)Nr'   r%   r&   zunsupported connection: )rÌ  )r   s    r-   Úflavorr^  û  sI   € Ø�yÐ Ð Øˆ|Ø	�YÐ	Ð	ØˆxØ	�IÐ	Ð	Øˆwå
Ð;°	Ð;Ð;Ñ
<Ô
<Ð<r,   c                óÚ  — d| v r9|j                              t          j                             dd¬¦  «        ¦  «         | }|                     | ¦  «        } |d         t          |¦  «                 }d}t          | ¦  «        5 }|                     ¦   «         5  | 	                    ||¬¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          |¦  «         d S )Nr„   ú)'params' not implemented for ADBC driversTr·  r(   rå  rá  ©r–  r—  r   r˜  r™  r�  r^  r!   Úrun_transactionÚ
read_queryrÊ   ©r^   r‘  r.   r   rè  rw   r¿  rÔ  s           r-   Útest_read_sql_iris_parameterre    s’  € à�€~€~ØŒ×ÒÝŒK×ÒØBØð ñ ô ñ	
ô 	
ð 	
ð €IØ×"Ò" 4Ñ(Ô(€DØÐ)Ô*­6°)Ñ+<Ô+<Ô=€EØ!€FÝ	˜4Ñ	 Ô	 ð D IØ×&Ò&Ñ(Ô(ð 	Dð 	DØ"×-Ò-¨e¸FÐ-ÑCÔCˆJð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	DðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dõ �ZÑ Ô Ð Ð Ð ó6   ÂCÂB:Â.CÂ:B>	Â>CÃB>	ÃCÃCÃCc                óà  — d| v r9|j                              t          j                             dd¬¦  «        ¦  «         | }|                     | ¦  «        } |d         t          |¦  «                 }dddœ}t          | ¦  «        5 }|                     ¦   «         5  | 	                    ||¬	¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          |¦  «         d S )
Nr„   r`  Tr·  r)   rº   r¸   rß  rá  ra  rd  s           r-   Ú"test_read_sql_iris_named_parameterrh    sš  € à�€~€~ØŒ×ÒÝŒK×ÒØBØð ñ ô ñ	
ô 	
ð 	
ð €IØ×"Ò" 4Ñ(Ô(€DØÐ/Ô0µ¸	Ñ1BÔ1BÔC€EØ#¨sÐ3Ð3€FÝ	˜4Ñ	 Ô	 ð D IØ×&Ò&Ñ(Ô(ð 	Dð 	DØ"×-Ò-¨e¸FÐ-ÑCÔCˆJð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	DðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dõ �ZÑ Ô Ð Ð Ð s6   ÂCÂB=Â1CÂ=C	ÃCÃC	ÃCÃCÃCc                óÚ  — d| v sd| v r7d| vr3|                      t          j                             d¬¦  «        ¦  «         | }|                     | ¦  «        } |d         t          |¦  «                 }t          | ¦  «        5 }|                     ¦   «         5  |                     |d ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          |¦  «         d S )Nr&   r'   r„   zbroken testr”  r*   rá  )
rû  r   r˜  r™  r�  r^  r!   rb  rc  rÊ   )r^   r‘  r.   r   rè  r¿  rÔ  s          r-   Ú,test_read_sql_iris_no_parameter_with_percentrj  -  sŒ  € à�$€€˜<¨4Ð/Ð/°FÀ$Ð4FÐ4FØ×Ò�FœK×-Ò-°]Ð-ÑCÔCÑDÔDÐDà€IØ×"Ò" 4Ñ(Ô(€DàÐ9Ô:½6À)Ñ;LÔ;LÔM€EÝ	˜4Ñ	 Ô	 ð B IØ×&Ò&Ñ(Ô(ð 	Bð 	BØ"×-Ò-¨e¸DÐ-ÑAÔAˆJð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	BðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bõ �ZÑ Ô Ð Ð Ð rf  c                óx   — |                      | ¦  «        } t          j        d| ¦  «        }t          |¦  «         d S )NzSELECT * FROM iris_view)r�  r   r"   rÊ   rÓ  s      r-   Útest_api_read_sql_viewrl  @  s<   € à×"Ò" 4Ñ(Ô(€DÝÔ#Ð$=¸tÑDÔD€JÝ�ZÑ Ô Ð Ð Ð r,   c                óH  — d| v r8|j                              t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } d}t          j        || d¬¦  «        }t          j        || ¦  «        }t          j	        t          |¦  «        |¦  «         d S )Nr„   rí  r”  z1SELECT * FROM iris_view WHERE "SepalLength" < 0.0r½   rÙ  )r–  r—  r   r˜  r™  r�  r   r"   rÅ   r
  r   )r^   r‘  rè  Ú
with_batchÚwithout_batchs        r-   Ú*test_api_read_sql_with_chunksize_no_resultrp  G  s    € à�€~€~ØŒ×ÒÝŒK×ÒÐ%RÐÑSÔSñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DØ?€EÝÔ# E¨4¸1Ð=Ñ=Ô=€JÝÔ& u¨dÑ3Ô3€MÝÔ�& Ñ,Ô,¨mÑ<Ô<Ð<Ð<Ð<r,   c                ó:  — |                      | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |d| ¦  «         t          j        d| ¦  «        sJ ‚d S )Nrð   Tr¹  )r�  r   r½  r   r  r�  )r^   r‘  rð   r¿  s       r-   Útest_api_to_sqlrr  T  sØ   € à×"Ò" 4Ñ(Ô(€DÝ
„}�] DÑ)Ô)ð 0ÝŒ_˜T°DÐ9Ñ9Ô9ð 	0¸YØ× Ò  Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0õ „Jˆ{˜M¨4Ñ0Ô0Ð0ÝŒ=˜¨Ñ-Ô-Ð-Ð-Ð-Ð-Ð-ó   ÁA#Á#A'Á*A'c                óÚ  — |                      | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |d| d¬¦  «         t          j        d| ¦  «        sJ ‚d}t          j        t          |¬¦  «        5  t          j        |d| d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚtest_frame2Tr¹  rÃ  rÄ  z"Table 'test_frame2' already existsrÊ  )	r�  r   r½  r   r  r�  r   rË  rÌ  )r^   r‘  rð   r¿  r®  s        r-   Útest_api_to_sql_failrv  _  s‚  € à×"Ò" 4Ñ(Ô(€DÝ
„}�] DÑ)Ô)ð 0ÝŒ_˜T°DÐ9Ñ9Ô9ð 	0¸YØ× Ò  Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0õ „Jˆ{˜M¨4¸6ÐBÑBÔBÐBÝŒ=˜¨Ñ-Ô-Ð-Ð-Ð-à
.€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð Gð GÝŒ
�; ¨t¸vÐFÑFÔFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð Gð Gs$   ÁA#Á#A'Á*A'Â:C Ã C$Ã'C$c                ó¼  — |                      | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |d| d¬¦  «         t          j        |d| d¬¦  «         t          j        d| ¦  «        sJ ‚t          |¦  «        }t          | d¦  «        }||k    sJ ‚d S )Nrò   Tr¹  rÃ  rÄ  r§  ©r�  r   r½  r   r  r�  r¾  rÓ   ©r^   r‘  rð   r¿  Únum_entriesÚnum_rowss         r-   Útest_api_to_sql_replacer|  n  s#  € à×"Ò" 4Ñ(Ô(€DÝ
„}�] DÑ)Ô)ð 0ÝŒ_˜T°DÐ9Ñ9Ô9ð 	0¸YØ× Ò  Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0õ „Jˆ{˜M¨4¸6ÐBÑBÔBÐBå„Jˆ{˜M¨4¸9ÐEÑEÔEÐEÝŒ=˜¨Ñ-Ô-Ð-Ð-Ð-å�kÑ"Ô"€KÝ˜$ Ñ.Ô.€Hà�{Ò"Ð"Ð"Ð"Ð"Ð"rs  c                óÚ  — |                      | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |d| d¬¦  «        dk    sJ ‚t          j        |d| d¬¦  «        dk    sJ ‚t          j        d| ¦  «        sJ ‚dt          |¦  «        z  }t          | d¦  «        }||k    sJ ‚d S )	NÚtest_frame4Tr¹  rÃ  rÄ  rM   r  rK   rx  ry  s         r-   Útest_api_to_sql_appendr  €  s@  € à×"Ò" 4Ñ(Ô(€DÝ
„}�] DÑ)Ô)ð 0ÝŒ_˜T°DÐ9Ñ9Ô9ð 	0¸YØ× Ò  Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0õ Œ:�k =°$À&ÐIÑIÔIÈQÒNÐNÐNÐNõ Œ:�k =°$À(ÐKÑKÔKÈqÒPÐPÐPÐPÝŒ=˜¨Ñ-Ô-Ð-Ð-Ð-à•c˜+Ñ&Ô&Ñ&€KÝ˜$ Ñ.Ô.€Hà�{Ò"Ð"Ð"Ð"Ð"Ð"rs  c                ód  — |                      | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |d| d¬¦  «         t          j        d| ¦  «        }t          j        ||¦  «         d S )NÚtest_frame5Tr¹  F©r»   zSELECT * FROM test_frame5)	r�  r   r½  r   r  r�  rÒ  rÅ   r
  )r^   r‘  rò   r¿  r)  s        r-   Útest_api_to_sql_type_mappingrƒ  “  sê   € à×"Ò" 4Ñ(Ô(€DÝ
„}�] DÑ)Ô)ð 0ÝŒ_˜T°DÐ9Ñ9Ô9ð 	0¸YØ× Ò  Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0õ „Jˆ{˜M¨4°uÐ=Ñ=Ô=Ð=ÝŒ\Ð5°tÑ<Ô<€FåÔ˜+ vÑ.Ô.Ð.Ð.Ð.rs  c                óÒ  — |                      | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          j        dd¬¦  «        d¬¦  «        }t          j        |d| d	¬
¦  «         t          j	        d| ¦  «        }t          j        |                     ¦   «         |¦  «         d S )NÚtest_seriesTr¹  r½   rß   rž  Úseriesr®   Fr‚  zSELECT * FROM test_series)r�  r   r½  r   r  r   rÃ   Úaranger�  r"   rÅ   r
  Úto_frame)r^   r‘  r¿  ÚsÚs2s        r-   Útest_api_to_sql_seriesr‹     s  € à×"Ò" 4Ñ(Ô(€DÝ
„}�] DÑ)Ô)ð 0ÝŒ_˜T°DÐ9Ñ9Ô9ð 	0¸YØ× Ò  Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0õ 	�rŒy˜ 'Ð*Ñ*Ô*°Ð:Ñ:Ô:€AÝ„Jˆq�- ¨UÐ3Ñ3Ô3Ð3Ý	Ô	Ð7¸Ñ	>Ô	>€BÝÔ˜!Ÿ*š*™,œ,¨Ñ+Ô+Ð+Ð+Ð+rs  c                óÊ  — | }|                      | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |d| ¬¦  «         t          j        d| ¬¦  «        }d|v r|                     d¬¦  «        }n|                     d	¬¦  «        }t          j	        ||¦  «         d S )
NÚtest_frame_roundtripTr¹  ©rx   ú"SELECT * FROM test_frame_roundtripr„   Ú__index_level_0__rí   Úlevel_0)
r�  r   r½  r   r  r�  r"   ru   rÅ   r
  ©r^   r‘  rð   r   r¿  r)  s         r-   Útest_api_roundtripr“  ­  s*  € à€IØ×"Ò" 4Ñ(Ô(€DÝ
„}Ð+¨TÑ2Ô2ð 9ÝŒ_˜T°DÐ9Ñ9Ô9ð 	9¸YØ× Ò Ð!7Ñ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9õ „Jˆ{Ð2¸Ð=Ñ=Ô=Ð=ÝÔÐ DÈ$ÐOÑOÔO€Fð �ÐÐØ—’Ð%8�Ñ9Ô9ˆˆà—’ Y�Ñ/Ô/ˆÝÔ˜& +Ñ.Ô.Ð.Ð.Ð.ó   ÁA%Á%A)Á,A)c                óà  — d| v r8|j                              t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }| 	                    d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j
        |d| dd¬	¦  «         t          j        d
| ¬¦  «        }t          j        ||¦  «         d S )Nr„   rí  r”  r�  Tr¹  FrK   )rx   r»   rÚ  r�  rŽ  )r–  r—  r   r˜  r™  r�  r   r½  r   r  r�  r"   rÅ   r
  )r^   r‘  rð   r¿  r)  s        r-   Útest_api_roundtrip_chunksizer–  À  s=  € à�€~€~ØŒ×ÒÝŒK×ÒÐ%RÐÑSÔSñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DÝ
„}Ð+¨TÑ2Ô2ð 9ÝŒ_˜T°DÐ9Ñ9Ô9ð 	9¸YØ× Ò Ð!7Ñ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9õ „JØØØØØðñ ô ð õ ÔÐ DÈ$ÐOÑOÔO€FÝÔ˜& +Ñ.Ô.Ð.Ð.Ð.ó   Á=BÂB#Â&B#c                ó0  — |                      | ¦  «        } t          j        | ¦  «        5 }|                     d¦  «        }|                     ¦   «         }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          |¦  «        g d¢k    sJ ‚d S ©NrÏ  r·   )r�  r   r!   rU   rÎ   r[   r;  )r^   r‘  Ú
pandas_sqlÚiris_resultsrR   s        r-   Útest_api_execute_sqlrœ  Ö  s×   € ð ×"Ò" 4Ñ(Ô(€DÝ	Ô	˜tÑ	$Ô	$ð ¨
Ø!×)Ò)Ð*>Ñ?Ô?ˆØ×#Ò#Ñ%Ô%ˆØ×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �‰9Œ9Ð;Ð;Ð;Ò;Ð;Ð;Ð;Ð;Ð;s   ª>A4Á4A8Á;A8c           
     ó  — | }|                      | ¦  «        } t          j        d| ¦  «        }d|v s/d|v s+t          |j        j        j        t          j        ¦  «        rJ ‚t          j        d| dg¬¦  «        }t          |j        j        j        t          j        ¦  «        sJ ‚|j         	                    ¦   «         t          dddd	d	d	¦  «        t          ddd
d	d	d	¦  «        gk    sJ ‚t          j        d| ddi¬¦  «        }t          |j        j        j        t          j        ¦  «        sJ ‚|j         	                    ¦   «         t          dddd	d	d	¦  «        t          ddd
d	d	d	¦  «        gk    sJ ‚t          j        d| dg¬¦  «        }t          |j        j        j        t          j        ¦  «        sJ ‚|j         	                    ¦   «         t          dddd	d	d	¦  «        t          dddd	d	d	¦  «        gk    sJ ‚t          j        d| ddi¬¦  «        }t          |j        j        j        t          j        ¦  «        sJ ‚|j         	                    ¦   «         t          dddd	d	d	¦  «        t          dddd	d	d	¦  «        gk    sJ ‚t          j        d| ddi¬¦  «        }t          |j        j        j        t          j        ¦  «        sJ ‚|j         	                    ¦   «         t          d¦  «        t          d¦  «        gk    sJ ‚d S )NúSELECT * FROM typesr&   rA  r�   ©Úparse_datesiÐ  rJ   rL   r   rM   ú%Y-%m-%d %H:%M:%Sr�   iÂ  é   é   iÝ  r‰  r‘   z%Y%m%dz
2010-10-10z
2010-12-12)r�  r   r"   rÂ   r�   r?   rÁ   rÃ   Ú
datetime64Útolistr   r�   r‘   rÿ  s       r-   Útest_api_date_parsingr¦  á  sP  € à€IØ×"Ò" 4Ñ(Ô(€Dõ 
Ô	Ð1°4Ñ	8Ô	8€BØ�yÐ Ð  J°)Ð$;Ð$;Ý˜bœjÔ.Ô3µR´]ÑCÔCÐCÐCÐCå	Ô	Ð1°4ÀiÀ[Ð	QÑ	QÔ	Q€BÝ�b”jÔ&Ô+­R¬]Ñ;Ô;Ð;Ð;Ð;ØŒ:×ÒÑÔÝ�$˜˜1˜a  AÑ&Ô&Ý�$˜˜1˜a  AÑ&Ô&ð#ò ð ð ð õ
 
Ô	ØØØÐ 3Ð4ð
ñ 
ô 
€Bõ
 �b”jÔ&Ô+­R¬]Ñ;Ô;Ð;Ð;Ð;ØŒ:×ÒÑÔÝ�$˜˜1˜a  AÑ&Ô&Ý�$˜˜1˜a  AÑ&Ô&ð#ò ð ð ð õ
 
Ô	Ð1°4ÀlÀ^Ð	TÑ	TÔ	T€BÝ�b”mÔ)Ô.µ´Ñ>Ô>Ð>Ð>Ð>ØŒ=×ÒÑ!Ô!Ý�$˜˜B  1 aÑ(Ô(Ý�$˜˜1˜a  AÑ&Ô&ð&ò ð ð ð õ
 
Ô	Ø˜t°,ÀÐ1Dð
ñ 
ô 
€Bõ �b”mÔ)Ô.µ´Ñ>Ô>Ð>Ð>Ð>ØŒ=×ÒÑ!Ô!Ý�$˜˜B  1 aÑ(Ô(Ý�$˜˜1˜a  AÑ&Ô&ð&ò ð ð ð õ
 
Ô	ØØØ% xÐ0ð
ñ 
ô 
€Bõ
 �bÔ'Ô-Ô2µB´MÑBÔBÐBÐBÐBØÔ×#Ò#Ñ%Ô%Ý�,ÑÔÝ�,ÑÔð*ò ð ð ð ð ð r,   ÚerrorÚraiseÚcoercezread_sql, text, moderž  )r=   Úfallbackr�   r=   c                ó   — | }|                      | ¦  «        } |dk    r9|dk    r3|                     t          j                             d¬¦  «        ¦  «         |                     ddi¦  «        } ||| dd|ii¬¦  «        }	d	|v rF|	d
                              t          ¦  «        |	d
<   |	d                              t          ¦  «        |	d<   |dk    r|                     ddddœ¦  «        }t          j	        |	|¦  «         d S )Nr�   r‰  z failing combination of argumentsr”  r�   zdatetime64[us]r~   )rx   r   rA  r”   r–   r]  Úint32)r�   r‘   r“   )
r�  rû  r   r˜  r™  r±   r|  rO   rÅ   r
  )
r^   r‘  rÒ  r€   rÆ  r§  râ   r   r'  r)  s
             r-   Ú!test_api_custom_dateparsing_errorr­    s;  € ð$ €IØ×"Ò" 4Ñ(Ô(€DØˆw‚€˜9Ð(>Ò>Ð>Ø×ÒÝŒK×ÒÐ%GÐÑHÔHñ	
ô 	
ð 	
ð  ×&Ò&¨	Ð3CÐ'DÑEÔE€HàˆXØØà˜ %Ð(ð
ðñ ô €Fð �YÐÐà" 9Ô-×4Ò4µSÑ9Ô9ˆˆyÑØ$*Ð+<Ô$=×$DÒ$DÅUÑ$KÔ$KˆÐ Ñ!àÐ+Ò+Ð+Ø—?’?à%Ø")Ø!ðð ñ
ô 
ˆõ Ô˜& (Ñ+Ô+Ð+Ð+Ð+r,   c                ó  — |                      | ¦  «        } t          j        d| dddg¬¦  «        }t          |j        j        j        t          j        ¦  «        sJ ‚t          |j	        j        j        t          j        ¦  «        sJ ‚d S )Nrž  r�   r�   )Ú	index_colr   )
r�  r   r"   rÂ   r»   r?   rÁ   rÃ   r¤  r�   ©r^   r‘  rá   s      r-   Útest_api_date_and_indexr±  L  s†   € ð ×"Ò" 4Ñ(Ô(€DÝ	Ô	ØØØØ Ð-ð	
ñ 
ô 
€Bõ �b”h”nÔ)­2¬=Ñ9Ô9Ð9Ð9Ð9Ý�b”mÔ)Ô.µ´Ñ>Ô>Ð>Ð>Ð>Ð>Ð>r,   c           	     óº  — | }|                      | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          ddgd¬¦  «        ¦  «                             ¦   «         }|dk    r8|j         	                    t          j                             d	¬
¦  «        ¦  «         d|v rt          rt          }n
d }nt          }t!          j        |d¬¦  «        5  |                     d| ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |dk    sJ ‚t          j        d| ¦  «        }|dk    r@t          t)          j        dddd¬¦  «        t)          j        dddd¬¦  «        gd¬¦  «        }n|d                              d¦  «        }t!          j        |d         |¦  «         d S )NÚtest_timedeltaTr¹  z00:00:01z00:00:03Úfoor®   rx  z.sqlite ADBC driver doesn't implement timedeltar”  r„   F)r¥  ©r¯   rx   rK   zSELECT * FROM test_timedeltarK  r   i@B )ÚmonthsÚdaysÚmicrosecondsÚnanosecondsiÀÆ- rß   )r�  r   r½  r   r  r   r   rˆ  r–  r—  r   r˜  r™  r   rª  r«  rÅ   r¬  r�  r"   r¨  Ú
DateOffsetr±   rÆ   )	r^   r‘  r   r¿  rá   r­  r(  r)  r'  s	            r-   Útest_api_timedeltar»  [  s�  € ð €IØ×"Ò" 4Ñ(Ô(€DÝ
„}Ð% tÑ,Ô,ð 3ÝŒ_˜T°DÐ9Ñ9Ô9ð 	3¸YØ× Ò Ð!1Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3õ 
•f˜j¨*Ð5¸EÐBÑBÔBÑ	CÔ	C×	LÒ	LÑ	NÔ	N€BàÐ&Ò&Ð&ØŒ×ÒÝŒK×ÒØGð ñ ô ñ	
ô 	
ð 	
ð �ÐÐÝð 	Ý,ˆKˆKàˆKˆKå!ˆå	Ô	# KÀ%Ð	HÑ	HÔ	Hð Bð BØ—y’yÐ&6¸D�yÑAÔAˆðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bà˜1ÒÐÐÐÝÔÐ >ÀÑEÔE€FàÐ*Ò*Ð*õ å” Q¨Q¸WÐRSÐTÑTÔTÝ” Q¨Q¸WÐRSÐTÑTÔTðð ð
ñ 
ô 
ˆˆð �e”9×#Ò# GÑ,Ô,ˆÝÔ˜6 %œ=¨(Ñ3Ô3Ð3Ð3Ð3s$   ÁA%Á%A)Á,A)ÄD7Ä7D;Ä>D;c                ó  — | }|                      | ¦  «        } t          dddgi¦  «        }d|v rd}nd}t          j        t          |¬¦  «        5  |                     d| ¬	¦  «        �J ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )
Nr¡  y      ð?      ð?y               @r„   zdatatypes not supportedzComplex datatypes not supportedrÊ  Útest_complexrŽ  )r�  r   r   rË  rÌ  r�  )r^   r‘  r   rá   r®  s        r-   Útest_api_complex_raisesr¾  Š  sß   € à€IØ×"Ò" 4Ñ(Ô(€DÝ	�C˜& "˜Ð&Ñ	'Ô	'€Bà�ÐÐØ'ˆˆà/ˆÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ;ð ;Ø�yŠy˜¨TˆyÑ2Ô2Ð:Ð:Ð:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;s   ÁA7Á7A;Á>A;zindex_name,index_label,expected))NNr»   )NÚother_labelr¿  )Ú
index_nameNrÀ  )rÀ  r¿  r¿  )r   NÚ0)Nr   rÁ  c                ó0  — d| v r8|j                              t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }| 	                    d¦  «         d d d ¦  «         n# 1 swxY w Y   t          dt          d¦  «        i¦  «        }||j        _        d	}t          j        |d| |¬
¦  «         t          j        || ¦  «        }|j        d         |k    sJ ‚d S )Nr„   ú-index_label argument NotImplemented with ADBCr”  Útest_index_labelTr¹  r#  rM   úSELECT * FROM test_index_label)Úindex_labelr   )r–  r—  r   r˜  r™  r�  r   r½  r   r  r   Úranger»   r¯   r�  r"   rÇ   )	r^   r‘  rÀ  rÆ  r'  r¿  Ú
temp_framerè  rµ   s	            r-   Útest_api_to_sql_index_labelrÉ  ˜  sX  € ð& �€~€~ØŒ×ÒÝŒK×ÒÐ%TÐÑUÔUñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DÝ
„}Ð'¨Ñ.Ô.ð 5ÝŒ_˜T°DÐ9Ñ9Ô9ð 	5¸YØ× Ò Ð!3Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5õ ˜F¥E¨!¡H¤HÐ-Ñ.Ô.€JØ&€JÔÔØ,€EÝ„JˆzÐ-¨tÀÐMÑMÔMÐMÝÔ˜u dÑ+Ô+€EØŒ=˜Ô˜xÒ'Ð'Ð'Ð'Ð'Ð'r—  c                óæ  — | }d|v r5|                      t          j                             dd¬¦  «        ¦  «         n<d|v r8|j                             t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          j        d| ¦  «        rCt          j	        | d	¬
¦  «        5 }| 
                    d¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          dt          d¦  «        it          j        ddg¦  «        ¬¦  «        }t          j        |d| ¦  «        }||k    sJ ‚t          j        d| ¦  «        }|j        d         dk    sJ ‚|j        d         dk    sJ ‚t          j        |d| dddg¬¦  «        }||k    sJ ‚t          j        d| ¦  «        }|j        d d…                              ¦   «         ddgk    sJ ‚ddg|j        _        t          j        |d| d¬¦  «        }||k    sJ ‚t          j        d| ¦  «        }|j        d d…                              ¦   «         ddgk    sJ ‚t          j        |d| dddg¬¦  «        }||k    sJ ‚t          j        d| ¦  «        }|j        d d…                              ¦   «         ddgk    sJ ‚d}t          j        t,          |¬¦  «        5  t          j        |d| dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr&   z/MySQL can fail using TEXT without length as keyFr·  r„   rÃ  r”  rÄ  Tr¹  rM   r#  )ÚA0ÚA1)ÚB0ÚB1r‚  rÅ  r   r‘  rJ   Úlevel_1r§  rä   rå   )rŽ  rÆ  rK   rÄ  ræ   rç   zALength of 'index_label' should match number of levels, which is 2rÊ  )rû  r   r˜  r™  r–  r—  r�  r   r½  r   r  r   rÇ  r   Úfrom_productr�  r"   rÇ   r¥  r»   ÚnamesrË  rÌ  )	r^   r‘  r   r¿  Úexpected_row_countrÈ  r)  rµ   r®  s	            r-   Ú&test_api_to_sql_index_label_multiindexrÓ  ¼  sø  € à€IØ�)ÐÐØ×ÒÝŒK×ÒØHÐQVð ñ ô ñ	
ô 	
ð 	
ð 	
ð
 
�9Ð	Ð	ØŒ×ÒÝŒK×ÒÐ%TÐÑUÔUñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DÝ
„}Ð'¨Ñ.Ô.ð 5ÝŒ_˜T°DÐ9Ñ9Ô9ð 	5¸YØ× Ò Ð!3Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð ÐÝØ	•�q‘”ÐÝÔ% |°\Ð&BÑCÔCðñ ô €Jõ ŒZ˜
Ð$6¸Ñ=Ô=€FØÐ'Ò'Ð'Ð'Ð'ÝÔÐ?ÀÑFÔF€EØŒ=˜Ô˜yÒ(Ð(Ð(Ð(ØŒ=˜Ô˜yÒ(Ð(Ð(Ð(õ ŒZØØØØØ˜#�Jðñ ô €Fð Ð'Ò'Ð'Ð'Ð'ÝÔÐ?ÀÑFÔF€EØŒ=˜˜!˜Ô×#Ò#Ñ%Ô%¨#¨s¨Ò3Ð3Ð3Ð3ð " 3˜Z€JÔÔÝŒZ˜
Ð$6¸È	ÐRÑRÔR€FØÐ'Ò'Ð'Ð'Ð'ÝÔÐ?ÀÑFÔF€EØŒ=˜˜!˜Ô×#Ò#Ñ%Ô%¨#¨s¨Ò3Ð3Ð3Ð3õ ŒZØØØØØ˜#�Jðñ ô €Fð Ð'Ò'Ð'Ð'Ð'ÝÔÐ?ÀÑFÔF€EØŒ=˜˜!˜Ô×#Ò#Ñ%Ô%¨#¨s¨Ò3Ð3Ð3Ð3à
M€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 
ð 
ÝŒ
ØØØØØð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s$   Â8CÃCÃ!CÊ?K&Ë&K*Ë-K*c                ó¨  — |                      | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ddgg d¢ddg¬	¦  «        }|                     d| ¬
¦  «         t          j        d| ddg¬¦  «        }t          j
        ||d¬¦  «         d S )NÚtest_multiindex_roundtripTr¹  ©rJ   r4  Úline1©rK   ç      ø?Úline2©rä   rå   ræ   rä   rå   ©rÇ   r»   rµ  z'SELECT * FROM test_multiindex_roundtrip©r¯  ©Úcheck_index_type)r�  r   r½  r   r  r   Úfrom_recordsr�  r"   rÅ   r
  )r^   r‘  r¿  rá   r)  s        r-   Útest_api_multiindex_roundtriprá    s1  € à×"Ò" 4Ñ(Ô(€DÝ
„}Ð0°$Ñ7Ô7ð >ÝŒ_˜T°DÐ9Ñ9Ô9ð 	>¸YØ× Ò Ð!<Ñ=Ô=Ð=ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>õ 
Ô	Ø	Ð-Ð.Ø��Ø�Cˆjð
ñ 
ô 
€Bð ‡I‚IÐ.°D€IÑ9Ô9Ð9ÝÔØ1°4ÀCÈÀ:ðñ ô €Fõ Ô˜"˜f°tÐ<Ñ<Ô<Ð<Ð<Ð<rs  r?   ©rä   rå   c                óä  — | }|                      | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          ddgddggdd	g¬
¦  «        }|                     d| ¬¦  «        dk    sJ ‚|                     |¦  «        }d|v rd}nd}t          j        || |¬¦  «        }t          j
        ||¦  «         d S )NÚtest_dtype_argumentTr¹  ç333333ó?g333333@çffffff@g333333@rä   rå   rí   rµ  rK   rA  z(SELECT "A", "B" FROM test_dtype_argumentz$SELECT A, B FROM test_dtype_argument©rx   r?   )r�  r   r½  r   r  r   r�  r±   r"   rÅ   r
  )	r^   r‘  r?   r   r¿  rá   r'  rè  r)  s	            r-   Útest_api_dtype_argumentrè    sL  € ð €IØ×"Ò" 4Ñ(Ô(€DÝ
„}Ð*¨DÑ1Ô1ð 8ÝŒ_˜T°DÐ9Ñ9Ô9ð 	8¸YØ× Ò Ð!6Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8õ 
�S˜#�J  c 
Ð+°c¸3°ZÐ	@Ñ	@Ô	@€BØ�9Š9Ð/°Tˆ9Ñ:Ô:¸aÒ?Ð?Ð?Ð?à�yŠy˜ÑÔ€Hà�YÐÐØ:ˆˆà6ˆÝÔ ¨4°uÐ=Ñ=Ô=€FåÔ˜& (Ñ+Ô+Ð+Ð+Ð+r”  c                ó’   — |                      | ¦  «        } t          ddgddggddg¬¦  «        }t          j        |d| d¬	¦  «         d S )
NrJ   rK   rL   rM   r   rí   Útest_frame_integer_col_namesr§  rÄ  )r�  r   r   r�  r°  s      r-   Útest_api_integer_col_namesrë  :  sX   € à×"Ò" 4Ñ(Ô(€DÝ	�Q˜�F˜Q ˜FÐ#¨a°¨VÐ	4Ñ	4Ô	4€BÝ„JˆrÐ1°4À9ÐMÑMÔMÐMÐMÐMr,   c                óä   — d| v r9|j                              t          j                             dd¬¦  «        ¦  «         |                     | ¦  «        } t          j        |d| ¬¦  «        }d|v sJ ‚d S )Nr„   ú-'get_schema' not implemented for ADBC driversTr·  rŒ  rŽ  ÚCREATE©r–  r—  r   r˜  r™  r�  r   Ú
get_schema©r^   r‘  rð   r<  s       r-   Útest_api_get_schemarò  A  s‡   € à�€~€~ØŒ×ÒÝŒK×ÒØFØð ñ ô ñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DÝ” ¨V¸Ð>Ñ>Ô>€JØ�zÐ!Ð!Ð!Ð!Ð!Ð!r,   c                óæ   — d| v r9|j                              t          j                             dd¬¦  «        ¦  «         |                     | ¦  «        } t          j        |d| d¬¦  «        }d|v sJ ‚d S )	Nr„   rí  Tr·  rŒ  Úpypi)rx   r  zCREATE TABLE pypi.rï  rñ  s       r-   Útest_api_get_schema_with_schemarõ  O  s‹   € ð �€~€~ØŒ×ÒÝŒK×ÒØFØð ñ ô ñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DÝ” ¨V¸ÀfÐMÑMÔM€JØ :Ð-Ð-Ð-Ð-Ð-Ð-r,   c                óH  — d| v r9|j                              t          j                             dd¬¦  «        ¦  «         | }|                     | ¦  «        } t          ddgddgd	œ¦  «        }|d
k    rd}nddlm} |}t          j
        |d| d|i¬¦  «        }d|v sJ ‚d|v sJ ‚d S )Nr„   rí  Tr·  çš™™™™™ñ?rå  r4  çš™™™™™@r  r„  ÚINTEGERr   )rŒ   rŒ  r  rç  rî  )r–  r—  r   r˜  r™  r�  r   r=   rŒ   r   rð  )r^   r‘  r   Úfloat_framer?   rŒ   r<  s          r-   Útest_api_get_schema_dtypesrû  ^  sê   € à�€~€~ØŒ×ÒÝŒK×ÒØFØð ñ ô ñ	
ô 	
ð 	
ð €IØ×"Ò" 4Ñ(Ô(€DÝ 3¨ *°C¸°:Ð>Ð>Ñ?Ô?€KàÐ$Ò$Ð$Øˆˆà&Ð&Ð&Ð&Ð&Ð&àˆÝ” ¨V¸ÀcÈ5À\ÐRÑRÔR€JØ�zÐ!Ð!Ð!Ð!Ø˜
Ð"Ð"Ð"Ð"Ð"Ð"r,   c                óz  — d| v r9|j                              t          j                             dd¬¦  «        ¦  «         | }|                     | ¦  «        } t          ddgddgd	œ¦  «        }t          j        |d
| d¬¦  «        }d|v rd}nd}||v sJ ‚t          j        |d
| ddg¬¦  «        }d|v rd}nd}||v sJ ‚d S )Nr„   rí  Tr·  r÷  rå  r4  rø  )ÚCol1ÚCol2rŒ  rý  )rx   rà   r&   z'CONSTRAINT test_pk PRIMARY KEY (`Col1`)z'CONSTRAINT test_pk PRIMARY KEY ("Col1")rä   rå   z)CONSTRAINT test_pk PRIMARY KEY (`A`, `B`)z)CONSTRAINT test_pk PRIMARY KEY ("A", "B"))	r–  r—  r   r˜  r™  r�  r   r   rð  )r^   r‘  rð   r   rµ   r<  Úconstraint_sentences          r-   Útest_api_get_schema_keysr   v  s  € à�€~€~ØŒ×ÒÝŒK×ÒØFØð ñ ô ñ	
ô 	
ð 	
ð €IØ×"Ò" 4Ñ(Ô(€DÝ  S˜z°C¸°:Ð>Ð>Ñ?Ô?€EÝ”  v°4¸fÐEÑEÔE€Jà�)ÐÐØGÐÐàGÐØ *Ð,Ð,Ð,Ð,õ ” ¨V¸ÀSÈ#ÀJÐOÑOÔO€JØ�)ÐÐØIÐÐàIÐØ *Ð,Ð,Ð,Ð,Ð,Ð,r,   c                óÐ  — d| v r8|j                              t          j                             d¬¦  «        ¦  «         | }|                     | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }| 	                    d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          j                             d¦  «                             d¦  «        t          d	¦  «        ¬
¦  «        }|                     d| d¬¦  «         t          j        d| ¦  «        }t          ¦   «         }d}g d¢}t          j        d| d¬¦  «        D ]5}	t%          ||	gd¬¦  «        }t'          |	¦  «        ||         k    sJ ‚|dz  }Œ6t)          j        ||¦  «         |dk    rMt          j        t.          d¬¦  «        5  t          j        d| d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S t          ¦   «         }
d}g d¢}t          j        d| d¬¦  «        D ]5}	t%          |
|	gd¬¦  «        }
t'          |	¦  «        ||         k    sJ ‚|dz  }Œ6t)          j        ||
¦  «         d S )Nr„   rí  r”  Útest_chunksizeTr¹  rK   )é   r½   Úabcderí   Fr	  zselect * from test_chunksizer   )r½   r½   r½   r½   rK   r½   rÙ  ©Úignore_indexrJ   r„  z^$rÊ  )r–  r—  r   r˜  r™  r�  r   r½  r   r  r   rÃ   ÚrandomÚdefault_rngÚstandard_normalr;  r�  r"   r   r¾  rÅ   r
  rË  ÚNotImplementedErrorr#   )r^   r‘  r   r¿  rá   r  r  ÚiÚsizesÚchunkÚres3s              r-   Útest_api_chunksize_readr  “  s&  € à�€~€~ØŒ×ÒÝŒK×ÒÐ%RÐÑSÔSñ	
ô 	
ð 	
ð €IØ×"Ò" 4Ñ(Ô(€DÝ
„}Ð% tÑ,Ô,ð 3ÝŒ_˜T°DÐ9Ñ9Ô9ð 	3¸YØ× Ò Ð!1Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3õ 
Ý
Œ	×Ò˜aÑ Ô ×0Ò0°Ñ9Ô9Å4ÈÁ=Ä=ð
ñ 
ô 
€Bð ‡I‚IÐ#¨°U€IÑ;Ô;Ð;õ ÔÐ<¸dÑCÔC€Dõ ‰;Œ;€DØ	€AØˆOˆO€EåÔ#Ð$BÀDÐTUÐVÑVÔVð ð ˆÝ�t˜U�m°$Ð7Ñ7Ô7ˆÝ�5‰zŒz˜U 1œXÒ%Ð%Ð%Ð%Ø	ˆQ‰ˆˆåÔ˜$ Ñ%Ô%Ð%ð Ð$Ò$Ð$ÝŒ]Õ.°dÐ;Ñ;Ô;ð 	Dð 	DÝÔÐ/°ÀÐCÑCÔCÐCð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dõ ‰{Œ{ˆØˆØ��ˆåÔ'Ð(8¸$È!ÐLÑLÔLð 	ð 	ˆEÝ˜4 ˜-°dÐ;Ñ;Ô;ˆDÝ�u‘:”:  q¤Ò)Ð)Ð)Ð)Ø�‰FˆAˆAå
Ô˜d DÑ)Ô)Ð)Ð)Ð)s$   Á?B!Â!B%Â(B%Æ>G#Ç#G'Ç*G'c                óâ  — | dk    rqt          dd¬¦  «        }|�^t          |j        ¦  «        t          d¦  «        k     r9|j                             t
          j                             dd¬¦  «        ¦  «         |                     | ¦  «        } t          j
        d	| ¦  «        rCt          j        | d¬
¦  «        5 }|                     d	¦  «         d d d ¦  «         n# 1 swxY w Y   t          g d¢g d¢dœ¦  «        }|                     ¦   «         }|d                              d¦  «        |d<   |                     d	| d¬¦  «         t          j        d| ¦  «        }t%          j        ||¦  «         d S )NrK  rG  r|   r}   z0.9.0z:categorical dtype not implemented for ADBC postgres driverTr·  Útest_categoricalr¹  r  )úJohn P. Doez	Jane Dover  )Ú	person_idÚperson_namer  ÚcategoryFr	  zSELECT * FROM test_categorical)r   r   r>   r–  r—  r   r˜  r™  r�  r   r½  r   r  r   Úcopyr±   r�  r"   rÅ   r
  )r^   r‘  r„   r¿  rá   Údf2Úress          r-   Útest_api_categoricalr  Ä  sÀ  € àÐ%Ò%Ð%Ý)Ð*BÈ8ÐTÑTÔTˆØÐ¥¨Ô(8Ñ 9Ô 9½GÀGÑ<LÔ<LÒ LÐ LØŒL×#Ò#Ý”×!Ò!ØWØð "ñ ô ñô ð ð ×"Ò" 4Ñ(Ô(€DÝ
„}Ð'¨Ñ.Ô.ð 5ÝŒ_˜T°DÐ9Ñ9Ô9ð 	5¸YØ× Ò Ð!3Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5õ 
à"˜˜ØFÐFÐFð	
ð 	
ñ
ô 
€Bð �'Š'‰)Œ)€CØ˜]Ô+×2Ò2°:Ñ>Ô>€CˆÑà‡J‚JÐ&¨D¸€JÑ>Ô>Ð>Ý
Ô
Ð=¸tÑ
DÔ
D€CåÔ˜#˜rÑ"Ô"Ð"Ð"Ð"s   Â8CÃCÃ!Cc                óB  — |                      | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          ddgddggdd	g¬
¦  «        }|                     d| d¬¦  «         d S )NÚtest_unicodeTr¹  rJ   rK   rL   rM   õ   Ã©r  rí   Fr	  )r�  r   r½  r   r  r   r�  )r^   r‘  r¿  rá   s       r-   Útest_api_unicode_column_namer  å  sé   € ð ×"Ò" 4Ñ(Ô(€DÝ
„}�^ TÑ*Ô*ð 1ÝŒ_˜T°DÐ9Ñ9Ô9ð 	1¸YØ× Ò  Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1õ 
�Q˜�F˜Q ˜FÐ#¨f°c¨]Ð	;Ñ	;Ô	;€BØ‡I‚I�> t°5€IÑ9Ô9Ð9Ð9Ð9rs  c                ó¼  — | }|                      | ¦  «        } t          j        d| ¦  «        rCt          j        | d¬¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          g d¢dt          j        dgdœ¦  «        }|                     d| d¬	¦  «         d
|v rd}nd}t          j	        || ¦  «        }t          j        ||¦  «         d S )Nzd1187b08-4943-4c8d-a7f6Tr¹  ©r   rJ   rK   r¹   ræ  râ  Fr	  rA  z'SELECT * FROM "d1187b08-4943-4c8d-a7f6"z'SELECT * FROM `d1187b08-4943-4c8d-a7f6`)r�  r   r½  r   r  r   rÃ   Únanr�  r"   rÅ   r
  )r^   r‘  r   r¿  rá   rè  r  s          r-   Útest_api_escaped_table_namer!  ñ  s,  € ð €IØ×"Ò" 4Ñ(Ô(€DÝ
„}Ð.°Ñ5Ô5ð <ÝŒ_˜T°DÐ9Ñ9Ô9ð 	<¸YØ× Ò Ð!:Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<õ 
˜˜˜¨#­r¬v°sÐ);Ð<Ð<Ñ	=Ô	=€BØ‡I‚IÐ,°$¸e€IÑDÔDÐDà�YÐÐØ9ˆˆà9ˆÝ
Ô
˜U DÑ
)Ô
)€CåÔ˜#˜rÑ"Ô"Ð"Ð"Ð"r”  c                ó�  — | }|dk    rt          j        d¦  «         |                     | ¦  «        } d}t          g d¢g d¢dœ¦  «        }|                     || dd¬	¦  «         t          || ¦  «        }t          j        ||¦  «         |                     || dd
¬	¦  «         t          || ¦  «        }t          j        ||¦  «         d S )Nr„  rú  zmy tabler  )rM   r½   é   r  Fr§  )r»   rŽ  rÁ  )r   r±  r�  r   r�  r#   rÅ   r
  )r^   r‘  r   Útricky_namerá   r)  s         r-   Útest_api_table_name_quotedr%  	  sÛ   € ð €IØÐ$Ò$Ð$ÝŒÐQÑRÔRÐRà×"Ò" 4Ñ(Ô(€Dà€KÝ	˜˜˜¨¨¨Ð3Ð3Ñ	4Ô	4€Bð ‡I‚Iˆk˜4 u¸	€IÑBÔBÐBå˜K¨Ñ.Ô.€FÝÔ˜& "Ñ%Ô%Ð%à‡I‚Iˆk˜4 u¸€IÑFÔFÐFÝ˜K¨Ñ.Ô.€FÝÔ˜& "Ñ%Ô%Ð%Ð%Ð%r,   c                ó¾  — d| v rvt          j        d¦  «        }t          |j        ¦  «        t          d¦  «        k    r| dv s9|j                             t           j                             dd¬¦  «        ¦  «         |                     | ¦  «        } t          j
        d| ¦  «        rCt          j        | d¬	¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          g d
¢g d¢ddœ¦  «        }|                     d| d¬¦  «         t          j        d| ¦  «        }t          g d¢g d¢g d¢gg d¢¬¦  «        }t#          j        ||¦  «         d S )Nr„   rF  z16.0)rx  rK  z!pyarrow->pandas throws ValueErrorTr·  Ú
test_tabler¹  r  r  rJ   ©r¡  r  r  Fr	  z)SELECT a, b, a +1 as a, c FROM test_table)rJ   r  rK   rJ   )rK   r¹   rL   rJ   )rL   r  rM   rJ   )r¡  r  r¡  r  rí   )r   r!  r   r>   r–  r—  r˜  r™  r�  r   r½  r   r  r   r�  r¨  rÒ  rÅ   r
  )r^   r‘  Úpar¿  rá   r)  r'  s          r-   Ú#test_api_read_sql_duplicate_columnsr*  	  sº  € ð �€~€~ÝÔ  Ñ+Ô+ˆå�B”NÑ#Ô#¥w¨v¡¤Ò6Ð6ØÐDÐDÐDàŒL×#Ò#Ý”×!Ò!Ø>Àtð "ñ ô ñô ð ð
 ×"Ò" 4Ñ(Ô(€DÝ
„}�\ 4Ñ(Ô(ð /ÝŒ_˜T°DÐ9Ñ9Ô9ð 	/¸YØ× Ò  Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/õ 
˜˜˜¨¨¨¸qÐAÐAÑ	BÔ	B€BØ‡I‚I�< T°€IÑ7Ô7Ð7åŒ[ÐDÀdÑKÔK€FÝØ	ˆˆ˜˜˜¨¨¨Ð8Ø$Ð$Ð$ðñ ô €Hõ Ô˜& (Ñ+Ô+Ð+Ð+Ð+s   Â;CÃC!Ã$C!c                óF  — | }|dk    r3|                      t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          j        |d| ¦  «         ddg}t          j        d| |¬¦  «        }|j         	                    ¦   «         |k    sJ ‚d S )Nr„  úNot Implementedr”  r»  rä   rå   rí   )
rû  r   r˜  r™  r�  r   r�  r#   rÇ   r¥  )r^   r‘  rð   r   Úcolsr)  s         r-   Útest_read_table_columnsr.  <	  s©   € ð €IØÐ$Ò$Ð$Ø×Ò�FœK×-Ò-Ð5FÐ-ÑGÔGÑHÔHÐHà×"Ò" 4Ñ(Ô(€DÝ„Jˆ{˜L¨$Ñ/Ô/Ð/à�ˆ:€DåÔ ¨d¸DÐAÑAÔA€FØŒ>× Ò Ñ"Ô" dÒ*Ð*Ð*Ð*Ð*Ð*r,   c                ó"  — | }|dk    r3|                      t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          j        |d| ¦  «         t          j        d| d¬¦  «        }|j        j	        dgk    sJ ‚t          j        d| ddg¬¦  «        }|j        j	        ddgk    sJ ‚t          j        d| ddgd	d
g¬¦  «        }|j        j	        ddgk    sJ ‚|j
                             ¦   «         d	d
gk    sJ ‚d S )Nr„  r,  r”  r»  r»   rÝ  rä   rå   ræ   rç   )r¯  rÇ   )rû  r   r˜  r™  r�  r   r�  r#   r»   rÑ  rÇ   r¥  )r^   r‘  rð   r   r)  s        r-   Útest_read_table_index_colr0  L	  s5  € ð €IØÐ$Ò$Ð$Ø×Ò�FœK×-Ò-Ð5FÐ-ÑGÔGÑHÔHÐHà×"Ò" 4Ñ(Ô(€DÝ„Jˆ{˜L¨$Ñ/Ô/Ð/åÔ ¨d¸gÐFÑFÔF€FØŒ<Ô ' Ò*Ð*Ð*Ð*åÔ ¨d¸sÀC¸jÐIÑIÔI€FØŒ<Ô # s Ò+Ð+Ð+Ð+åÔØ�d s¨C j¸3À¸*ðñ ô €Fð Œ<Ô # s Ò+Ð+Ð+Ð+ØŒ>× Ò Ñ"Ô" s¨C jÒ0Ð0Ð0Ð0Ð0Ð0r,   c                óž  — | dk    r3|                      t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          j        d| ¦  «        }t          j        d| ¦  «        }t          j	        ||¦  «         t          j
        d| ¦  «        }t          j        d| ¦  «        }t          j	        ||¦  «         d S )Nr†  rú  r”  rÏ  r6   )rû  r   r˜  r™  r�  r   r"   rÒ  rÅ   r
  r#   )r^   r‘  Úiris_frame1Úiris_frame2s       r-   Útest_read_sql_delegater4  c	  sÌ   € àÐ$Ò$Ð$Ø×ÒÝŒK×ÒØTð ñ ô ñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DÝÔ$Ð%9¸4Ñ@Ô@€KÝ”,Ð3°TÑ:Ô:€KÝÔ˜+ {Ñ3Ô3Ð3åÔ$ V¨TÑ2Ô2€KÝ”,˜v tÑ,Ô,€KÝÔ˜+ {Ñ3Ô3Ð3Ð3Ð3r,   c                ó„  — | }ddl m} ddlm}  |d¦  «         |d¦  «        g}|D ]Á}t	          ||¦  «        rn|                     ¦   «         5 }|                     ¦   «         5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   Œ€|                     ¦   «         5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒÂt          j	        d ¦  «        5  t          j        d|¦  «         t          j        d|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r¢   z,CREATE TABLE invalid (x INTEGER, y UNKNOWN);z0CREATE TABLE other_table (x INTEGER, y INTEGER);Úother_tablezSELECT * FROM other_table)r=   r€   r¤   r£   r�   r¥   rt   rU   rÅ   r¬  r   r#   r"   )ri  r^   r€   r£   Ú
query_listrè  s         r-   Útest_not_reflect_all_tablesr8  v	  s_  € Ø€DØÐÐÐÐÐØ(Ð(Ð(Ð(Ð(Ð(ð 	ˆÐ;Ñ<Ô<ØˆÐ?Ñ@Ô@ð€Jð
 ð $ð $ˆÝ�d˜FÑ#Ô#ð 	$Ø—’‘”ð ( 4Ø—Z’Z‘\”\ð (ð (Ø—L’L Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (øð —’‘”ð $ð $Ø—’˜UÑ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $øõ 
Ô	# DÑ	)Ô	)ð >ð >ÝÔ˜=¨$Ñ/Ô/Ð/ÝÔÐ6¸Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >sZ   ÁBÁ"BÁ8BÂBÂBÂBÂBÂB	Â"B	Â;CÃC!	Ã$C!	Ã=+D5Ä5D9Ä<D9c                ó   — | }|dk    sd|v r3|                      t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          j        t          d¬¦  «        5  t          j	        | ¦  «        5 }| 
                    dd¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j        d ¦  «        5  |                     d	| ¬
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr„  r„   zDoes not raise warningr”  z¶The provided table name 'TABLE1' is not found exactly as such in the database after writing the table, possibly due to case sensitivity issues. Consider using lower case table names.rÊ  ÚTABLE1r£  ÚCaseSensitiverµ  )rû  r   r˜  r™  r�  rÅ   r¬  r«  r   r   Úcheck_case_sensitiver�  )r^   r‘  rð   r   r  s        r-   Ú(test_warning_case_insensitive_table_namer=  �	  sØ  € à€IØÐ$Ò$Ð$¨°)Ð(;Ð(;Ø×Ò�FœK×-Ò-Ð5MÐ-ÑNÔNÑOÔOÐOà×"Ò" 4Ñ(Ô(€Då	Ô	#ÝðJð
ñ 
ô 
ð 	2ð 	2õ Œ_˜TÑ"Ô"ð 	2 bØ×#Ò# H¨bÑ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2õ 
Ô	# DÑ	)Ô	)ð ;ð ;Ø×Ò °TÐÑ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;sH   Á0B?ÂB(ÂB?Â(B,	Â,B?Â/B,	Â0B?Â?CÃCÃDÄDÄ
Dc                óX  — |                      | ¦  «        } ddlm} t          dt	          ddgd¬¦  «        i¦  «        }t          j        | ¦  «        5 }t          j        d||¬	¦  «        }t          |j	        j
        d         j        |¦  «        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )
Nr   )Ú	TIMESTAMPr   ú2014-12-12 01:54ú2014-12-11 02:54T©ÚutcÚ	test_type©rµ   )r�  r=   r?  r   r   r   r   ÚSQLTabler�   r	  r  rÁ   )r^   r‘  r?  rá   r  r	  s         r-   Útest_sqlalchemy_type_mappingrG  §	  s  € à×"Ò" 4Ñ(Ô(€DØ$Ð$Ð$Ð$Ð$Ð$õ 
Ø	•Ð0Ð2DÐEÈ4ÐPÑPÔPÐQñ
ô 
€Bõ 
Œ˜Ñ	Ô	ð A "Ý”˜[¨"°BÐ7Ñ7Ô7ˆå˜%œ+œ-¨Ô/Ô4°iÑ@Ô@Ð@Ð@Ð@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Að Aøøøð Að Að Að Að Að As   Á?BÂB#Â&B#zinteger, expected)Úint8ÚSMALLINT)ÚInt8rI  )Úuint8rI  )ÚUInt8rI  )Úint16rI  )ÚInt16rI  )Úuint16rù  )ÚUInt16rù  )r¬  rù  )ÚInt32rù  )Úuint32ÚBIGINT)ÚUInt32rS  )rß   rS  )ÚInt64rS  rß   rS  rù  c                ó6  — |                      | ¦  «        } t          ddgdg|¬¦  «        }t          j        | ¦  «        5 }t          j        d||¬¦  «        }t          |j        j        j        j	        ¦  «        }d d d ¦  «         n# 1 swxY w Y   ||k    sJ ‚d S )Nr   rJ   r¡  ©rÇ   r?   rD  rE  )
r�  r   r   r   rF  r‡   r	  r  r¡  rÁ   )r^   r‘  rü  r'  rá   r  r	  r)  s           r-   Útest_sqlalchemy_integer_mappingrX  ¶	  sØ   € ð. ×"Ò" 4Ñ(Ô(€DÝ	�A�q�6 C 5°Ð	8Ñ	8Ô	8€BÝ	Œ˜Ñ	Ô	ð + "Ý”˜[¨"°BÐ7Ñ7Ô7ˆå�U”[”]”_Ô)Ñ*Ô*ˆð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð �XÒÐÐÐÐÐs   ¿;BÂB
ÂB
rü  Úuint64ÚUInt64c                óH  — |                      | ¦  «        } t          ddgdg|¬¦  «        }t          j        | ¦  «        5 }t	          j        t          d¬¦  «        5  t          j        d||¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )	Nr   rJ   r¡  rW  z1Unsigned 64 bit integer datatype is not supportedrÊ  rD  rE  )r�  r   r   r   r   rË  rÌ  rF  )r^   r‘  rü  rá   r  s        r-   Ú(test_sqlalchemy_integer_overload_mappingr\  Ö	  s-  € ð ×"Ò" 4Ñ(Ô(€Då	�A�q�6 C 5°Ð	8Ñ	8Ô	8€BÝ	Œ˜Ñ	Ô	ð 4 "ÝŒ]ÝÐQð
ñ 
ô 
ð 	4ð 	4õ ŒL˜ b°Ð3Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s5   ¿BÁA?Á3BÁ?B	ÂBÂB	ÂBÂBÂBc                óŒ  — t          j        d¦  «         t          | ¦  «        }d|z   }d}|                     ||dd¬¦  «         t	          j        ||¦  «        }t	          j        ||¦  «        }d}t	          j        ||¦  «        }	t          j	        ||¦  «         t          j	        ||¦  «         t          j	        ||	¦  «         d S )Nr=   rc  r6   r§  Fr�  rÏ  )
r   r!  r‡   r�  r   rÒ  r#   r"   rÅ   r
  )
rd  r‘  rð   r¯   Údb_urir	  ru  rò   rè  r~  s
             r-   Útest_database_uri_stringr_  ã	  sÅ   € Ý
Ô˜Ñ%Ô%Ð%õ
 ˆy‰>Œ>€DØ˜DÑ €FØ€EØ×Ò˜E v¸È%ÐÑPÔPÐPÝ”,˜u fÑ-Ô-€KÝÔ$ U¨FÑ3Ô3€KØ €EÝÔ$ U¨FÑ3Ô3€KÝÔ˜+ {Ñ3Ô3Ð3ÝÔ˜+ {Ñ3Ô3Ð3ÝÔ˜+ {Ñ3Ô3Ð3Ð3Ð3r,   Úpg8000c                óÄ   — t          j        d¦  «         d}t          j        t          d¬¦  «        5  t	          j        d|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr=   z)postgresql+pg8000://user:pass@host/dbnamer`  rÊ  zselect * from table)r   r!  rË  ÚImportErrorr   rÒ  )r‘  r^  s     r-   Ú(test_pg8000_sqlalchemy_passthrough_errorrc  ö	  s¦   € å
Ô˜Ñ%Ô%Ð%ð 9€FÝ	Œ•{¨(Ð	3Ñ	3Ô	3ð 4ð 4ÝŒÐ*¨FÑ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s   ²AÁAÁAc                óä   — | }|                      | ¦  «        } ddlm} d|v r |d¦  «        }n |d¦  «        }t          j        || ddi¬¦  «        }t          |d	         ¦  «        }|dhk    sJ ‚d S )
Nr   r   rA  z%select * from iris where "Name"=:namez#select * from iris where name=:namer¯   zIris-versicolorrá  r;   )r�  r=   r€   r   rÒ  Úset)r^   r‘  r   r€   Ú	name_textÚiris_dfÚ	all_namess          r-   Útest_query_by_text_objri   
  s£   € ð €IØ×"Ò" 4Ñ(Ô(€DØÐÐÐÐÐà�YÐÐØ�DÐ@ÑAÔAˆ	ˆ	à�DÐ>Ñ?Ô?ˆ	ÝŒl˜9 d°FÐ<MÐ3NÐOÑOÔO€GÝ�G˜F”OÑ$Ô$€IØÐ*Ð+Ò+Ð+Ð+Ð+Ð+Ð+r,   c                ó4  — |                      | ¦  «        } ddlm}m} t	          ¦   «         } ||¦  «                             |j        j         |d¦  «        k    ¦  «        }t          j	        || ddi¬¦  «        }t          |d         ¦  «        }|dhk    sJ ‚d S )Nr   )Ú	bindparamrÝ  r¯   rº   rá  r;   )r�  r=   rk  rÝ  rA   Úwherer  r;   r   rÒ  re  )r^   r‘  rk  rÝ  r6   Úname_selectrg  rh  s           r-   Útest_query_by_select_objrn  
  s½   € à×"Ò" 4Ñ(Ô(€Dðð ð ð ð ð ð ð õ
 Ñ Ô €DØ�&˜‘,”,×$Ò$ T¤V¤[°I°I¸fÑ4EÔ4EÒ%EÑFÔF€KÝŒl˜;¨°f¸mÐ5LÐMÑMÔM€GÝ�G˜F”OÑ$Ô$€IØ˜˜Ò'Ð'Ð'Ð'Ð'Ð'r,   c                óV  — | }|dk    r3|                      t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          g d¢g d¢dœ¦  «        }|                     d| d¬	¦  «         t          j        d| ¦  «        }t          j
        ||¦  «         d S )
Nr„  r,  r”  r  ©rL   rM   r½   )rä   z%_variationÚtest_column_percentageFr	  )rû  r   r˜  r™  r�  r   r�  r   r#   rÅ   r
  )r^   r‘  r   rá   r  s        r-   Útest_column_with_percentagerr   
  s²   € ð €IØÐ$Ò$Ð$Ø×Ò�FœK×-Ò-Ð5FÐ-ÑGÔGÑHÔHÐHà×"Ò" 4Ñ(Ô(€DÝ	˜˜˜°9°9°9Ð=Ð=Ñ	>Ô	>€BØ‡I‚IÐ+°¸U€IÑCÔCÐCå
Ô
Ð5°tÑ
<Ô
<€CåÔ˜#˜rÑ"Ô"Ð"Ð"Ð"r,   c                ó�  — t          j        t          j        | ¦  «        ¦  «        5 }t	          j        |d|d¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        t          j        | ¦  «        ¦  «        5 }t	          j        d|¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        ||¦  «         d S )NÚtest_frame3_legacyFr‚  rM   z!SELECT * FROM test_frame3_legacy;)	r€  r�  r‚   r¥   r   r�  r"   rÅ   r
  )rd  rò   r^   r)  s       r-   Útest_sql_open_closeru  0
  sW  € õ 
Ô	�GœO¨IÑ6Ô6Ñ	7Ô	7ð U¸4ÝŒz˜+Ð';¸TÈÐOÑOÔOÐSTÒTÐTÐTÐTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uõ 
Ô	�GœO¨IÑ6Ô6Ñ	7Ô	7ð O¸4ÝÔ#Ð$GÈÑNÔNˆðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oõ Ô˜+ vÑ.Ô.Ð.Ð.Ð.s#   §AÁAÁAÂB&Â&B*Â-B*c                 ó    — d} d}t          j        t          |¬¦  «        5  t          j        d| ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzmysql://root@localhost/pandasz-Using URI string without sqlalchemy installedrÊ  rÏ  )r   rË  rb  r   rÒ  )r^   r®  s     r-   Útest_con_string_import_errorrw  =
  s˜   € à*€DØ
9€CÝ	Œ•{¨#Ð	.Ñ	.Ô	.ð 1ð 1ÝŒÐ)¨4Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1s    AÁAÁ
Ac                 ó  —  G d„ d¦  «        } t          j         | d¦  «        ¦  «        5 }t          j        t          d¬¦  «        5  t          j        d|¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó"   — e Zd Zdd„Zd„ Zd„ ZdS )úhtest_con_unknown_dbapi2_class_does_not_error_without_sql_alchemy_installed.<locals>.MockSqliteConnectionÚreturnÚNonec                ó2   — t          j        |i |¤Ž| _        d S r*  )r‚   rƒ   r^   )ÚselfÚargsÚkwargss      r-   Ú__init__zqtest_con_unknown_dbapi2_class_does_not_error_without_sql_alchemy_installed.<locals>.MockSqliteConnection.__init__H
  s   € ÝÔ*¨DÐ;°FÐ;Ð;ˆDŒIˆIˆIr,   c                ó,   — t          | j        |¦  «        S r*  )Úgetattrr^   )r~  r¯   s     r-   Ú__getattr__zttest_con_unknown_dbapi2_class_does_not_error_without_sql_alchemy_installed.<locals>.MockSqliteConnection.__getattr__K
  s   € Ý˜4œ9 dÑ+Ô+Ð+r,   c                ó8   — | j                              ¦   «          d S r*  )r^   r[   )r~  s    r-   r[   zntest_con_unknown_dbapi2_class_does_not_error_without_sql_alchemy_installed.<locals>.MockSqliteConnection.closeN
  s   € ØŒI�OŠOÑÔÐÐÐr,   N)r{  r|  )Ú__name__Ú
__module__Ú__qualname__r�  r„  r[   r+   r,   r-   ÚMockSqliteConnectionrz  G
  sF   € € € € € ð	<ð 	<ð 	<ð 	<ð	,ð 	,ð 	,ð	ð 	ð 	ð 	ð 	r,   r‰  r  zonly supports SQLAlchemyrÊ  zSELECT 1)r€  r�  rÅ   r¬  r«  r   rÒ  )r‰  r^   s     r-   ÚJtest_con_unknown_dbapi2_class_does_not_error_without_sql_alchemy_installedrŠ  E
  s(  € ðð ð ð ð ñ ô ð õ 
Ô	Ð0Ð0°Ñ<Ô<Ñ	=Ô	=ð +ÀÝÔ'­Ð;UÐVÑVÔVð 	+ð 	+ÝŒL˜ TÑ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s5   «BÁA)ÁBÁ)A-	Á-BÁ0A-	Á1BÂBÂBc                ó(  — | }t          j        d|¦  «        }t          j        d|¦  «        }t          j        ||¦  «         d}t          j        t           j        |¬¦  «        5  t          j        d|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÏ  z9Execution failed on sql 'iris': near "iris": syntax errorrÊ  r6   )r   r"   rÒ  rÅ   r
  r   rË  ÚDatabaseError)r†  r^   r2  r3  r®  s        r-   Útest_sqlite_read_sql_delegater�  V
  sÒ   € Ø€DÝÔ$Ð%9¸4Ñ@Ô@€KÝ”,Ð3°TÑ:Ô:€KÝÔ˜+ {Ñ3Ô3Ð3à
G€CÝ	Œ•sÔ(°Ð	4Ñ	4Ô	4ð #ð #ÝŒ�V˜TÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   Á$BÂBÂBc                ó<   — t          j        | d¦  «        }d|v sJ ‚d S )NrŒ  rî  )r   rð  )rð   r<  s     r-   Útest_get_schema2r�  a
  s*   € å” ¨VÑ4Ô4€JØ�zÐ!Ð!Ð!Ð!Ð!Ð!r,   c                óž  — | }t          dt          ddgd¬¦  «        i¦  «        }t          j        |¦  «        }t          j        d||¬¦  «        }|                     ¦   «         }|                     d¦  «        D ]S}|                     ¦   «         d	                              d
¦  «        dk    r |                     ¦   «         d         dk    sJ ‚ŒTd S )Nr   r@  rA  TrB  rD  rE  ú
r   r  rJ   r?  )r   r   r   r   ÚSQLiteTableÚ
sql_schemaÚsplitÚstrip)r„  r^   rá   r  r	  r  Úcols          r-   Útest_sqlite_type_mappingr—  g
  sÓ   € à€DÝ	Ø	•Ð0Ð2DÐEÈ4ÐPÑPÔPÐQñ
ô 
€Bõ 
Ô	˜DÑ	!Ô	!€BÝŒO˜K¨°2Ð6Ñ6Ô6€EØ×ÒÑÔ€FØ�|Š|˜DÑ!Ô!ð 1ð 1ˆØ�9Š9‰;Œ;�qŒ>×Ò Ñ$Ô$¨Ò.Ð.Ø—9’9‘;”;˜q”> [Ò0Ð0Ð0Ð0øð1ð 1r,   c                óþ  — | dk    rt          j        d¦  «         |                     | ¦  «        } ddlm} t          g d¢g d¢dœ¦  «        }t          j        | d¬	¦  «        5 }|                     |d
¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y    || ¦  «        }| 	                    d
¦  «        sJ ‚t          j        | d¬	¦  «        5 }| 
                    d
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nre  ú#sqlite_str has no inspection systemr   rü   ©ç      ð?ç       @ç      @ç      @©rž  r�  rœ  r›  ©ÚoneÚtwoTr¹  rÈ  rM   )r   r±  r�  r=   rý   r   r   r   r�  r½  r  ©r^   r‘  rý   rÈ  r¿  Úinsps         r-   Útest_create_tabler¥  y
  s¤  € àˆ|ÒÐÝŒÐ9Ñ:Ô:Ð:à×"Ò" 4Ñ(Ô(€Dà"Ð"Ð"Ð"Ð"Ð"åÐ#7Ð#7Ð#7Ð@TÐ@TÐ@TÐUÐUÑVÔV€JÝ	Œ˜°Ð	5Ñ	5Ô	5ð ?¸Ø×Ò 
¨LÑ9Ô9¸QÒ>Ð>Ð>Ð>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð ˆ7�4‰=Œ=€DØ�>Š>˜,Ñ'Ô'Ð'Ð'Ð'õ 
Œ˜°Ð	5Ñ	5Ô	5ð +¸Ø×Ò˜\Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s$   Á"BÂBÂBÃC2Ã2C6Ã9C6c                óÊ  — | dk    rt          j        d¦  «         |                     | ¦  «        } ddlm} t          g d¢g d¢dœ¦  «        }t          j        | ¦  «        5 }|                     ¦   «         5  | 	                    |d¦  «        d	k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y    || ¦  «        }| 
                    d¦  «        sJ ‚|                     ¦   «         5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   	 |                     ¦   «          n# t          $ r Y nw xY w| 
                    d¦  «        rJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )
Nre  r™  r   rü   rš  rŸ  r   rÈ  rM   )r   r±  r�  r=   rý   r   r   r   rb  r�  r½  r  Úclear_cacheÚAttributeErrorr£  s         r-   Útest_drop_tabler©  Ž
  sj  € àˆ|ÒÐÝŒÐ9Ñ:Ô:Ð:à×"Ò" 4Ñ(Ô(€Dà"Ð"Ð"Ð"Ð"Ð"åÐ#7Ð#7Ð#7Ð@TÐ@TÐ@TÐUÐUÑVÔV€JÝ	Œ˜Ñ	Ô	ð 0 )Ø×&Ò&Ñ(Ô(ð 	Cð 	CØ×#Ò# J°Ñ=Ô=ÀÒBÐBÐBÐBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð ˆw�t‰}Œ}ˆØ�~Š~˜lÑ+Ô+Ð+Ð+Ð+à×&Ò&Ñ(Ô(ð 	/ð 	/Ø× Ò  Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð	Ø×ÒÑÔÐÐøÝð 	ð 	ð 	ØˆDð	øøøà—>’> ,Ñ/Ô/Ð/Ð/Ð/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s~   Á EÁ5BÂEÂB#	Â#EÂ&B#	Â'9EÃ DÃ6EÄD	ÄEÄ	D	Ä
EÄD#Ä"EÄ#
D0Ä-EÄ/D0Ä0EÅEÅEr   c                ó  — d}|                      | ¦  «        }t          |¦  «        5 }|                     ¦   «         5  |                     ||¦  «        |j        d         k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         5  |                     |¦  «        �J ‚	 d d d ¦  «         n# 1 swxY w Y   t          ||¦  «        dk    sJ ‚|                     |¦  «        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NÚtemp_delete_rows_framer   )r�  r!   rb  r�  rÈ   rÁ  rÓ   r½  )r   rð   r‘  rË   r^   r¿  s         r-   Útest_delete_rows_successr¬  ¨
  sî  € à)€JØ×"Ò" 9Ñ-Ô-€Då	˜4Ñ	 Ô	 ð / IØ×&Ò&Ñ(Ô(ð 	Uð 	UØ×#Ò# K°Ñ<Ô<ÀÔ@QÐRSÔ@TÒTÐTÐTÐTÐTð	Uð 	Uð 	Uñ 	Uô 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uøøøð 	Uð 	Uð 	Uð 	Uð ×&Ò&Ñ(Ô(ð 	=ð 	=Ø×(Ò(¨Ñ4Ô4Ð<Ð<Ð<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=õ ˜$ 
Ñ+Ô+¨qÒ0Ð0Ð0Ð0Ø×"Ò" :Ñ.Ô.Ð.Ð.Ð.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /sX   §C;¼(A1Á%C;Á1A5	Á5C;Á8A5	Á9C;ÂB5Â)C;Â5B9	Â9C;Â<B9	Â=0C;Ã;C?ÄC?c           	     ó  — t          j        d¦  «        }d}d|› d�}| dk    rd| vr |j        |¦  «        }t          ddgd	d
gdœd¬¦  «        }t          g d¢g d¢dœd¬¦  «        }|                     | ¦  «        }t          |¦  «        5 }|                     ¦   «         5 }	|	                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         5  |                     ||dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        t          j        j        ¦  «        5  |                     ¦   «         5  |                     ||dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         5  |                     d|› �d¬¦  «        }
t          j        |
|¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr=   Útemp_delete_rows_atomic_framezCREATE TABLE z' (a INTEGER, b INTEGER UNIQUE NOT NULL)r„  r„   rJ   rK   rL   rM   r  r¬  rž  )r½   r#  rØ  )r¾   r¾   r¾   r  F©rŽ  r»   rÁ  úSELECT * FROM )r   r!  r€   r   r�  r!   rb  rU   r�  rË  r¨  r~   rŒ  rc  rÅ   r
  )r   r‘  r=   rË   Ú
table_stmtÚoriginal_dfÚreplacing_dfr^   r¿  r`   Ú	result_dfs              r-   Útest_delete_rows_is_atomicrµ  ¸
  sÂ  € åÔ$ \Ñ2Ô2€Jà0€JØT ÐTÐTÐT€JàÐ$Ò$Ð$¨°yÐ)@Ð)@Ø$�Z”_ ZÑ0Ô0ˆ
õ  1 a &°°1¨vÐ6Ð6¸gÐFÑFÔF€KÝ 9 9 9°9°9°9Ð=Ð=ÀWÐMÑMÔM€Là×"Ò" 9Ñ-Ô-€DÝ	˜4Ñ	 Ô	 ð : IØ×&Ò&Ñ(Ô(ð 	$¨CØ�KŠK˜
Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð ×&Ò&Ñ(Ô(ð 	Wð 	WØ×Ò˜[¨*ÀÐPUÐÑVÔVÐVð	Wð 	Wð 	Wñ 	Wô 	Wð 	Wð 	Wð 	Wð 	Wð 	Wð 	Wøøøð 	Wð 	Wð 	Wð 	Wõ Œ]�2œ9Ô2Ñ3Ô3ð 	ð 	Ø×*Ò*Ñ,Ô,ð ð Ø× Ò Ø  *¸ÈUð !ñ ô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×&Ò&Ñ(Ô(ð 	:ð 	:Ø!×,Ò,Ø- Ð-Ð-°Wð -ñ ô ˆIõ Ô! )¨[Ñ9Ô9Ð9ð		:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :sÆ   ÂG:Â CÂ6G:ÃC	ÃG:Ã	C	Ã
G:Ã!DÃ;G:ÄD	ÄG:ÄD	Ä&G:Ä5FÅ
E0Å$FÅ0E4Å4FÅ7E4Å8FÅ;G:ÆF	ÆG:ÆF	ÆG:Æ&0G"ÇG:Ç"G&	Ç&G:Ç)G&	Ç*G:Ç:G>ÈG>c                ó  — | dk    rt          j        d¦  «         | }|                     | ¦  «        } t          | ¦  «        5 }|                     ¦   «         5  |                     |d¦  «        dk    sJ ‚|                     d¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d|v r|                     ddi¬	¦  «        }|                     dd
¬¦  «         d |j	        _
        t          j        ||¦  «         d S )Nre  r™  r�  rM   r�  r„   r�  r‘  rí   T)Úinplace)r   r±  r�  r!   rb  r�  rc  ÚrenameÚ	set_indexr»   r¯   rÅ   r
  r’  s         r-   Útest_roundtriprº  Ý
  s¸  € àˆ|ÒÐÝŒÐ9Ñ:Ô:Ð:à€IØ×"Ò" 4Ñ(Ô(€DÝ	˜4Ñ	 Ô	 ð P IØ×&Ò&Ñ(Ô(ð 	Pð 	PØ×#Ò# KÐ1GÑHÔHÈAÒMÐMÐMÐMØ×)Ò)Ð*NÑOÔOˆFð	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	PðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð Pð
 �ÐÐØ—’Ð(;¸YÐ'G�ÑHÔHˆØ
×Ò�Y¨ÐÑ-Ô-Ð-ð €F„LÔåÔ˜& +Ñ.Ô.Ð.Ð.Ð.s6   ÁB+Á2BÂB+ÂB	ÂB+ÂB	ÂB+Â+B/Â2B/c                ó~  — |                      | ¦  «        } t          | ¦  «        5 }|                     ¦   «         5  |                     d¦  «        }|                     ¦   «         }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          |¦  «        g d¢k    sJ ‚d S r™  )r�  r!   rb  rU   rÎ   r[   r;  )r^   r‘  r¿  r›  rR   s        r-   Útest_execute_sqlr¼  ó
  s9  € à×"Ò" 4Ñ(Ô(€DÝ	˜4Ñ	 Ô	 ð ! IØ×&Ò&Ñ(Ô(ð 	!ð 	!Ø$×,Ò,Ð-AÑBÔBˆLØ×'Ò'Ñ)Ô)ˆCØ×ÒÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ
 �‰9Œ9Ð;Ð;Ð;Ò;Ð;Ð;Ð;Ð;Ð;s4   ¥Bº>BÁ8BÂB	ÂBÂB	ÂBÂBÂ"Bc                óz   — |                      | ¦  «        } t          j        d| ¬¦  «        }t          |¦  «         d S )Nr6   rŽ  )r�  r   r#   rÊ   rÓ  s      r-   Útest_sqlalchemy_read_tabler¾  þ
  s>   € à×"Ò" 4Ñ(Ô(€DÝÔ# F°Ð5Ñ5Ô5€JÝ�ZÑ Ô Ð Ð Ð r,   c                ó´   — |                      | ¦  «        } t          j        d| ddg¬¦  «        }t          j        |j        t          ddg¦  «        ¦  «         d S )Nr6   r7   )rx   rÇ   ÚSepalLength__1)r�  r   r#   rÅ   Úassert_index_equalrÇ   r   rÓ  s      r-   Ú"test_sqlalchemy_read_table_columnsrÂ    sd   € à×"Ò" 4Ñ(Ô(€DÝÔ#Ø�D =°-Ð"@ðñ ô €Jõ Ô˜*Ô,­e°]ÐDTÐ4UÑ.VÔ.VÑWÔWÐWÐWÐWr,   c                óÈ   — |                      | ¦  «        } d}t          j        t          |¬¦  «        5  t	          j        d| ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz!Table this_doesnt_exist not foundrÊ  Úthis_doesnt_existrŽ  )r�  r   rË  rÌ  r   r#   )r^   r‘  r®  s      r-   Útest_read_table_absent_raisesrÅ    sª   € à×"Ò" 4Ñ(Ô(€DØ
-€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð :ð :ÝÔÐ.°DÐ9Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :s   ³AÁAÁAc                ó®  — | }|dk    rt          j        d¦  «         n;d|v sd|v r3|                     t           j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          j        d| ¦  «        }t          |j	        j
        j        t          j        ¦  «        sJ ‚t          |j        j
        j        t          j        ¦  «        sJ ‚t          |j        j
        j        t          j        ¦  «        sJ ‚t          |j        j
        j        t          j        ¦  «        sJ ‚t          |j        j
        j        t(          ¦  «        sJ ‚d S )Nre  ú.types tables not created in sqlite_str fixturer&   r%   z#boolean dtype not inferred properlyr”  r�   )r   r±  rû  r˜  r™  r�  r   r#   rÂ   r’   r?   rÁ   rÃ   rÄ   r“   rü  r”   rý  r•   r–   rþ  rÿ  s       r-   Ú'test_sqlalchemy_default_type_conversionrÈ    s8  € à€IØ�LÒ Ð ÝŒÐDÑEÔEÐEÐEØ	�IÐ	Ð	 ¨YÐ!6Ð!6Ø×ÒÝŒK×ÒÐ%JÐÑKÔKñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DÝ	Ô	˜G TÑ	*Ô	*€Bå�b”kÔ'Ô,­b¬kÑ:Ô:Ð:Ð:Ð:Ý�b”i”oÔ*­B¬JÑ7Ô7Ð7Ð7Ð7Ý�b”jÔ&Ô+­R¬XÑ6Ô6Ð6Ð6Ð6õ �bÔ'Ô-Ô2µB´KÑ@Ô@Ð@Ð@Ð@å�bÔ(Ô.Ô3µVÑ<Ô<Ð<Ð<Ð<Ð<Ð<r,   c                óæ   — |                      | ¦  «        } t          ddgi¬¦  «        }|                     d| d¬¦  «        dk    sJ ‚t          j        d| ¦  «        }t          j        ||¦  «         d S )NÚi64l            )rÖ   Útest_bigintFr	  rJ   r&  ©r^   r‘  rá   r)  s       r-   rË  rË  -  s|   € ð ×"Ò" 4Ñ(Ô(€DÝ	˜  Ð(Ð	)Ñ	)Ô	)€BØ�9Š9˜-¨T¸ˆ9Ñ?Ô?À1ÒDÐDÐDÐDÝÔ ¨tÑ4Ô4€FåÔ˜"˜fÑ%Ô%Ð%Ð%Ð%r,   c                óX  — | }|dk    rt          j        d¦  «         n7d|v r3|                     t           j                             d¬¦  «        ¦  «         |                     | ¦  «        } t          j        d| ¦  «        }t          |j	        j
        j        t          j        ¦  «        sJ ‚d S )Nre  rÇ  r%   z"sqlite does not read date properlyr”  r�   )r   r±  rû  r˜  r™  r�  r   r#   rÂ   r�   r?   rÁ   rÃ   r¤  rÿ  s       r-   Útest_default_date_loadrÎ  8  s­   € à€IØ�LÒ Ð ÝŒÐDÑEÔEÐEÐEØ	�YÐ	Ð	Ø×ÒÝŒK×ÒÐ%IÐÑJÔJñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DÝ	Ô	˜G TÑ	*Ô	*€Bå�b”jÔ&Ô+­R¬]Ñ;Ô;Ð;Ð;Ð;Ð;Ð;r,   r   r©   c                óª   — |                      | ¦  «        } t          | ¦  «        }t          d| |¬¦  «        }|j        }t	          j        ||¦  «         d S )Núselect * from datetzrŸ  )r�  r´   r"   r©   rÅ   rÆ   )r^   r‘  r   r'  rá   r–  s         r-   Ú!test_datetime_with_timezone_queryrÑ  H  s\   € ð ×"Ò" 4Ñ(Ô(€DÝ.¨tÑ4Ô4€Hõ 
Ð.°À+Ð	NÑ	NÔ	N€BØ
Ô
€CÝÔ˜3 Ñ)Ô)Ð)Ð)Ð)r,   c           	     óâ   — |                      | ¦  «        } t          | ¦  «        }t          t          t	          d| d¬¦  «        ¦  «        d¬¦  «        }|j        }t          j        ||¦  «         d S )NrÐ  rJ   rÙ  Tr  )r�  r´   r   r;  r"   r©   rÅ   rÆ   )r^   r‘  r'  rá   r–  s        r-   Ú+test_datetime_with_timezone_query_chunksizerÓ  W  sw   € à×"Ò" 4Ñ(Ô(€DÝ.¨tÑ4Ô4€Hå	Ý�^Ð2°DÀAÐFÑFÔFÑGÔGØð
ñ 
ô 
€Bð Ô
€CÝÔ˜3 Ñ)Ô)Ð)Ð)Ð)r,   c                óÊ   — |                      | ¦  «        } t          | ¦  «        }t          j        d| ¦  «        }|                     ¦   «         }t          j        ||¦  «         d S )Nr¨   )r�  r´   r   r#   rˆ  rÅ   r
  )r^   r‘  r'  r)  Ú	exp_frames        r-   Ú!test_datetime_with_timezone_tablerÖ  d  s^   € à×"Ò" 4Ñ(Ô(€DÝ.¨tÑ4Ô4€HÝÔ ¨$Ñ/Ô/€Fà×!Ò!Ñ#Ô#€IÝÔ˜& )Ñ,Ô,Ð,Ð,Ð,r,   c           	     óž  — | }|                      | ¦  «        } t          dt          dddd¬¦  «        i¦  «        }|                     d| d¬	¦  «        dk    sJ ‚d
|v r$|d         j                             d¦  «        |d<   n#|d         j                             d ¦  «        |d<   t          j        d| ¦  «        }t          j
        ||¦  «         t          j        d| ¦  «        }d|v rRt          |j        d         t          ¦  «        sJ ‚t          |d         ¦  «        j                             d¦  «        |d<   t          j
        ||¦  «         d S )Nrä   ú2013-01-01 09:00:00rL   ú
US/PacificÚus)Úperiodsr­   ÚunitÚtest_datetime_tzFr	  r'   r«   zSELECT * FROM test_datetime_tzr%   ©r   rä   )r�  r   r   r�  ÚdtÚ
tz_convertÚtz_localizer   r#   rÅ   r
  r"   r�   Úlocr‡   r   Úas_unit)r^   r‘  r   r'  r)  s        r-   Ú%test_datetime_with_timezone_roundtriprä  n  sW  € à€IØ×"Ò" 4Ñ(Ô(€Dõ
 Ø	�jÐ.¸¸lÐQUÐVÑVÔVÐWñô €Hð �?Š?Ð 2¸ÀEˆ?ÑJÔJÈaÒOÐOÐOÐOà�yÐ Ð à  œÔ(×3Ò3°EÑ:Ô:ˆ�‰ˆð ! œÔ(×4Ò4°TÑ:Ô:ˆ�‰åÔÐ 2°DÑ9Ô9€FÝÔ˜& (Ñ+Ô+Ð+åÔÐ @À$ÑGÔG€FØ�9ÐÐå˜&œ* VÔ,­cÑ2Ô2Ð2Ð2Ð2Ý! &¨¤+Ñ.Ô.Ô1×9Ò9¸$Ñ?Ô?ˆˆs‰ÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r,   c           	     ór  — |                      | ¦  «        } t          dt          ddd¦  «        idg¬¦  «        }|                     d| d¬¦  «        dk    sJ ‚t	          j        d| ¦  «        }t          t          j        t          ddd¦  «        gd	¬
¦  «        dg¬¦  «        }t          j	        ||¦  «         d S )Nr   i'  rJ   r   r‚  Útest_datetime_obbFr	  úM8[us]rž  rí   )
r�  r   r   r�  r   r#   rÃ   r©  rÅ   r
  )r^   r‘  rÖ   r)  r'  s        r-   Útest_out_of_bounds_datetimerè  �  sÇ   € ð ×"Ò" 4Ñ(Ô(€DÝ�f�h t¨Q°Ñ2Ô2Ð3¸A¸3Ð?Ñ?Ô?€DØ�;Š;Ð/°TÀˆ;ÑGÔGÈ1ÒLÐLÐLÐLÝÔÐ 3°TÑ:Ô:€FÝÝ
Œ•(˜4  AÑ&Ô&Ð'¨xÐ8Ñ8Ô8À6À(ðñ ô €Hõ Ô˜& (Ñ+Ô+Ð+Ð+Ð+r,   c                óT  — |                      | ¦  «        } t          dddd¬¦  «                             d ¦  «        }t          dt	          d¦  «        i|¬¦  «        }|                     d| d	¬
¦  «        dk    sJ ‚t          j        d| d	¬¦  «        }t          j	        ||d¬¦  «         d S )Nz
2018-01-01r½   Ú6hrÚ  )rÛ  ÚfreqrÜ  Únumsr‚  Ú	foo_tableÚ	info_date)r¯   rx   rÆ  rÝ  F)Úcheck_names)
r�  r   Ú
_with_freqr   rÇ  r�  r   r#   rÅ   r
  )r^   r‘  Údatesr'  r)  s        r-   Ú"test_naive_datetimeindex_roundtriprò  š  s²   € ð ×"Ò" 4Ñ(Ô(€DÝ�|¨Q°TÀÐEÑEÔE×PÒPÐQUÑVÔV€EÝ˜&¥%¨¡(¤(Ð+°5Ð9Ñ9Ô9€HØ�?Š? °À;ˆ?ÑOÔOÐSTÒTÐTÐTÐTÝÔ ¨T¸[ÐIÑIÔI€FåÔ˜& (¸Ð>Ñ>Ô>Ð>Ð>Ð>r,   c                ó  — | }|                      | ¦  «        } t          j        d| ¦  «        }d|v rt          nt          j        }t          |j        j        j	        |¦  «        sJ ‚t          j        d| dg¬¦  «        }t          |j        j        j	        t          j        ¦  «        sJ ‚t          j        d| ddi¬¦  «        }t          |j        j        j	        t          j        ¦  «        sJ ‚t          j        d| dddii¬¦  «        }t          |j        j        j	        t          j        ¦  «        sJ ‚t          j        d| dg¬¦  «        }t          |j
        j        j	        t          j        ¦  «        sJ ‚t          j        d| ddi¬¦  «        }t          |j
        j        j	        t          j        ¦  «        sJ ‚t          j        d| dd	dii¬¦  «        }t          |j
        j        j	        t          j        ¦  «        sJ ‚d S )
Nr�   r%   r�   rŸ  r¡  Úformatr�   r‰  rÜ  )r�  r   r#   rþ  rÃ   r¤  rÂ   r�   r?   rÁ   r�   )r^   r‘  r   rá   Úexpected_types        r-   Útest_date_parsingrö  §  sß  € ð €IØ×"Ò" 4Ñ(Ô(€DÝ	Ô	˜G TÑ	*Ô	*€BØ&¨)Ð3Ð3•F�F½¼€MÝ�b”jÔ&Ô+¨]Ñ;Ô;Ð;Ð;Ð;å	Ô	˜G T¸	°{Ð	CÑ	CÔ	C€BÝ�b”jÔ&Ô+­R¬]Ñ;Ô;Ð;Ð;Ð;å	Ô	˜G T¸	ÐCVÐ7WÐ	XÑ	XÔ	X€BÝ�b”jÔ&Ô+­R¬]Ñ;Ô;Ð;Ð;Ð;å	Ô	ØØØ Ð+>Ð ?Ð@ð
ñ 
ô 
€Bõ
 �b”jÔ&Ô+­R¬]Ñ;Ô;Ð;Ð;Ð;å	Ô	˜G T¸°~Ð	FÑ	FÔ	F€BÝ�b”mÔ)Ô.µ´Ñ>Ô>Ð>Ð>Ð>å	Ô	˜G T¸ÀcÐ7JÐ	KÑ	KÔ	K€BÝ�b”mÔ)Ô.µ´Ñ>Ô>Ð>Ð>Ð>å	Ô	˜G T¸ÀvÈsÀmÐ7TÐ	UÑ	UÔ	U€BÝ�b”mÔ)Ô.µ´Ñ>Ô>Ð>Ð>Ð>Ð>Ð>r,   c                ó¤  — | }|                      | ¦  «        } t          t          dd¬¦  «        t          j        d¦  «        dœ¦  «        }|                     d| ¬¦  «        dk    sJ ‚t          j        d| ¦  «        }|                     dd	¬
¦  «        }|d d …         }|d          	                    d¦  «        |d<   t          j        ||¦  «         t          j        d| ¦  «        }|                     dd	¬
¦  «        }d|v r:t          |j        d         t          ¦  «        sJ ‚t!          |d         ¦  «        |d<   t          j        ||¦  «         d S )NrØ  rL   ©rÛ  r�  râ  Útest_datetimerµ  r»   rJ   )Úaxisrä   rç  úSELECT * FROM test_datetimer%   rÞ  )r�  r   r   rÃ   r‡  r�  r   r#   ru   r±   rÅ   r
  r"   r�   râ  r‡   r   ©r^   r‘  r   rá   r)  r'  s         r-   rù  rù  Ç  sQ  € à€IØ×"Ò" 4Ñ(Ô(€DÝ	ÝÐ.¸Ð:Ñ:Ô:ÅÄÈ3ÁÄÐPÐPñ
ô 
€Bð �9Š9˜/¨tˆ9Ñ4Ô4¸Ò9Ð9Ð9Ð9õ Ô °Ñ6Ô6€FØ�[Š[˜ qˆ[Ñ)Ô)€Fà�!�!�!Œu€HØ˜S”M×(Ò(¨Ñ2Ô2€HˆS�MÝÔ˜& (Ñ+Ô+Ð+õ ÔÐ =¸tÑDÔD€FØ�[Š[˜ qˆ[Ñ)Ô)€FØ�9ÐÐÝ˜&œ* VÔ,­cÑ2Ô2Ð2Ð2Ð2Ý! &¨¤+Ñ.Ô.ˆˆs‰ÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r,   c                óv  — | }|                      | ¦  «        } t          t          dd¬¦  «        t          j        d¦  «        dœ¦  «        }t          j        |j        d<   |                     d| d¬	¦  «        dk    sJ ‚t          j	        d| ¦  «        }|d d …         }|d
          
                    d¦  «        |d
<   t          j        ||¦  «         t          j        d| ¦  «        }d|v r<t          |j        d         t          ¦  «        sJ ‚t!          |d
         d¬¦  «        |d
<   t          j        ||¦  «         d S )NrØ  rL   rø  r�  râ  ©rJ   rä   rù  Fr	  rä   rç  rû  r%   rÞ  r©  r}   )r�  r   r   rÃ   r‡  r   râ  r�  r   r#   r±   rÅ   r
  r"   r�   r‡   r   rü  s         r-   Útest_datetime_NaTrÿ  á  s;  € à€IØ×"Ò" 4Ñ(Ô(€DÝ	ÝÐ.¸Ð:Ñ:Ô:ÅÄÈ3ÁÄÐPÐPñ
ô 
€Bõ ”V€B„Fˆ6�NØ�9Š9˜/¨t¸5ˆ9ÑAÔAÀQÒFÐFÐFÐFõ Ô °Ñ6Ô6€FØ�!�!�!Œu€HØ˜S”M×(Ò(¨Ñ2Ô2€HˆS�MÝÔ˜& (Ñ+Ô+Ð+õ ÔÐ =¸tÑDÔD€FØ�9ÐÐÝ˜&œ* VÔ,­cÑ2Ô2Ð2Ð2Ð2Ý! &¨¤+°hÐ?Ñ?Ô?ˆˆs‰åÔ˜& (Ñ+Ô+Ð+Ð+Ð+r,   c                óT  — |                      | ¦  «        } t          t          ddd¦  «        t          ddd¦  «        gdg¬¦  «        }|                     d| d¬¦  «        dk    sJ ‚t	          d| ¦  «        }|d         }t          |d         ¦  «        }t          j        ||¦  «         d S )	NéÞ  rJ   rK   r¡  rí   Ú	test_dateFr	  )r�  r   r   r�  r#   r   rÅ   rÆ   )r^   r‘  rá   r  r)  r'  s         r-   Útest_datetime_dater  ú  s­   € ð ×"Ò" 4Ñ(Ô(€DÝ	•D˜˜q !Ñ$Ô$¥d¨4°°AÑ&6Ô&6Ð7À#ÀÐ	GÑ	GÔ	G€BØ�9Š9˜+¨4°uˆ9Ñ=Ô=ÀÒBÐBÐBÐBÝ
˜ dÑ
+Ô
+€CØ�ŒX€FÝ˜2˜cœ7Ñ#Ô#€HåÔ˜6 8Ñ,Ô,Ð,Ð,Ð,r,   c                óö  — | }|                      | ¦  «        } t          t          ddd¦  «        t          ddd¦  «        gdg¬¦  «        }|                     d| d¬	¦  «        d
k    sJ ‚t	          d| ¦  «        }t          j        ||¦  «         |}t          j        |d|d¬¦  «        d
k    sJ ‚t          j        d|¦  «        }| 	                    d„ ¦  «        }t          j        ||¦  «         t          j        |d| d¬¦  «        d
k    sJ ‚d|v r@t          j        d| ¦  «        }| 	                    d„ ¦  «        }t          j        ||¦  «         t          j        d| ¦  «        }t          j        ||¦  «         d S )Né	   r   rJ   é   r¡  rí   Ú	test_timeFr	  rK   Ú
test_time2r‚  zSELECT * FROM test_time2c                ó,   — |                       d¦  «        S ©Nz%H:%M:%S.%f©Ústrftime©Ú_s    r-   ú<lambda>z$test_datetime_time.<locals>.<lambda>  s   € ˜1Ÿ:š: mÑ4Ô4€ r,   Ú
test_time3r%   zSELECT * FROM test_time3c                ó,   — |                       d¦  «        S r
  r  r  s    r-   r  z$test_datetime_time.<locals>.<lambda>  s   € ˜qŸzšz¨-Ñ8Ô8€ r,   )
r�  r   r   r�  r#   rÅ   r
  r   r"   Úmap)r^   r‘  r„  r   rá   r  ri  Úrefs           r-   Útest_datetime_timer    s‰  € ð €IØ×"Ò" 4Ñ(Ô(€DÝ	•D˜˜A˜q‘M”M¥4¨¨1¨b¡>¤>Ð2¸S¸EÐ	BÑ	BÔ	B€BØ�9Š9˜+¨4°uˆ9Ñ=Ô=ÀÒBÐBÐBÐBÝ
˜ dÑ
+Ô
+€CÝÔ˜#˜rÑ"Ô"Ð"ð !€KÝŒ:�b˜,¨¸5ÐAÑAÔAÀQÒFÐFÐFÐFÝ
Ô
Ð7¸Ñ
EÔ
E€CØ
�&Š&Ð4Ð4Ñ
5Ô
5€CÝÔ˜#˜sÑ#Ô#Ð#åŒ:�b˜,¨°EÐ:Ñ:Ô:¸aÒ?Ð?Ð?Ð?Ø�9ÐÐÝÔ Ð!;¸TÑBÔBˆØ�fŠfÐ8Ð8Ñ9Ô9ˆÝ
Ô˜c 3Ñ'Ô'Ð'Ý
Ô
˜\¨4Ñ
0Ô
0€CÝÔ˜"˜cÑ"Ô"Ð"Ð"Ð"r,   c                óV  — |                      | ¦  «        } t          dt          j        ¬¦  «        }t          dt          j        ¬¦  «        }t          ||dœ¦  «        }|                     d| d¬¦  «        dk    sJ ‚t          j        d| ¦  «        }t          j
        ||dd	¬
¦  «         d S )Ni  rž  g        )Ús1rŠ  Útest_read_writeFr	  rJ   T)Úcheck_dtypeÚcheck_exact)r�  r   rÃ   r¬  Úfloat32r   r�  r   r#   rÅ   r
  )r^   r‘  r  rŠ  rá   r  s         r-   Útest_mixed_dtype_insertr  "  s­   € ð ×"Ò" 4Ñ(Ô(€DÝ	�	¥¤Ð	*Ñ	*Ô	*€BÝ	��2œ:Ð	&Ñ	&Ô	&€BÝ	˜" BÐ'Ð'Ñ	(Ô	(€Bð �9Š9Ð+°¸Uˆ9ÑCÔCÀqÒHÐHÐHÐHÝ
Ô
Ð.°Ñ
5Ô
5€CåÔ˜"˜c¨uÀ$ÐGÑGÔGÐGÐGÐGr,   c                óV  — |                      | ¦  «        } t          g d¢dt          j        dgdœ¦  «        }|                     d| d¬¦  «        dk    sJ ‚t          j        d| ¦  «        }t          j        ||¦  «         t          j	        d	| ¦  «        }t          j        ||¦  «         d S )
Nr  r¹   ræ  râ  Útest_nanFr	  rL   úSELECT * FROM test_nan)
r�  r   rÃ   r   r�  r   r#   rÅ   r
  r"   rÌ  s       r-   Útest_nan_numericr  1  s±   € ð ×"Ò" 4Ñ(Ô(€DÝ	˜˜˜¨#­r¬v°sÐ);Ð<Ð<Ñ	=Ô	=€BØ�9Š9˜*¨$°eˆ9Ñ<Ô<ÀÒAÐAÐAÐAõ Ô 
¨DÑ1Ô1€FÝÔ˜& "Ñ%Ô%Ð%õ ÔÐ 8¸$Ñ?Ô?€FÝÔ˜& "Ñ%Ô%Ð%Ð%Ð%r,   c                óÄ  — |                      | ¦  «        } t          g d¢t          j        t          j        t          j        gdœ¦  «        }|                     d| d¬¦  «        dk    sJ ‚t          j        d| ¦  «        }t          j        ||¦  «         |d          	                    d¦  «        |d<   d |d<   t          j
        d	| ¦  «        }t          j        ||¦  «         d S )
Nr  râ  r  Fr	  rL   rå   rþ  r  )r�  r   rÃ   r   r�  r   r#   rÅ   r
  r±   r"   rÌ  s       r-   Útest_nan_fullcolumnr!  A  s×   € ð ×"Ò" 4Ñ(Ô(€DÝ	˜˜˜­"¬&µ"´&½"¼&Ð)AÐBÐBÑ	CÔ	C€BØ�9Š9˜*¨$°eˆ9Ñ<Ô<ÀÒAÐAÐAÐAõ Ô 
¨DÑ1Ô1€FÝÔ˜& "Ñ%Ô%Ð%ð �Œg�nŠn˜XÑ&Ô&€B€s�GØ€B€s�GÝÔÐ 8¸$Ñ?Ô?€FÝÔ˜& "Ñ%Ô%Ð%Ð%Ð%r,   c                ój  — |                      | ¦  «        } t          g d¢ddt          j        gdœ¦  «        }|                     d| d¬¦  «        dk    sJ ‚d |j        d	<   t          j        d| ¦  «        }t          j	        ||¦  «         t          j
        d
| ¦  «        }t          j	        ||¦  «         d S )Nr  r¡  r  râ  r  Fr	  rL   ©rK   rå   r  )r�  r   rÃ   r   r�  râ  r   r#   rÅ   r
  r"   rÌ  s       r-   Útest_nan_stringr$  S  s¾   € ð ×"Ò" 4Ñ(Ô(€DÝ	˜˜˜¨#¨sµB´FÐ);Ð<Ð<Ñ	=Ô	=€BØ�9Š9˜*¨$°eˆ9Ñ<Ô<ÀÒAÐAÐAÐAð €B„Fˆ6�Nõ Ô 
¨DÑ1Ô1€FÝÔ˜& "Ñ%Ô%Ð%õ ÔÐ 8¸$Ñ?Ô?€FÝÔ˜& "Ñ%Ô%Ð%Ð%Ð%r,   c                ó   — d| v r9|j                              t          j                             dd¬¦  «        ¦  «         | }|                     | ¦  «        } t          j        ddgg d¢dg¬	¦  «        }d
}t          | ¦  «        5 }| 	                    ¦   «         5  | 
                    ||¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |dv rkt          j        d|› d�| ¦  «        }g }|j        D ]G}t          j        d|› d�| ¦  «        }	|                     |	j                             ¦   «         ¦  «         ŒHn2ddlm}
  |
| ¦  «        }|                     |¦  «        }d„ |D ¦   «         }|dggk    sJ ‚d S )Nr„   z)ADBC implementation does not create indexTr·  rÖ  rØ  rÛ  rä   rÜ  Útest_to_sql_saves_indexrK   >   re  r„  zASELECT * FROM sqlite_master WHERE type = 'index' AND tbl_name = 'ú'zPRAGMA index_info(ú)r   rü   c                ó   — g | ]
}|d          ‘ŒS )Úcolumn_namesr+   )rQ   r  s     r-   rS   z*test_to_sql_save_index.<locals>.<listcomp>‰  s   € Ð2Ð2Ð2¨�1�^Ô$Ð2Ð2Ð2r,   )r–  r—  r   r˜  r™  r�  r   rà  r!   rb  r�  r   r"   r¯   r  r¥  r=   rý   Úget_indexes)r^   r‘  r   rá   Útbl_namer¿  ÚixsÚix_colsÚix_nameÚix_inforý   r¤  s               r-   Útest_to_sql_save_indexr1  f  su  € à�€~€~ØŒ×ÒÝŒK×ÒØBÈ4ð ñ ô ñ	
ô 	
ð 	
ð
 €IØ×"Ò" 4Ñ(Ô(€DÝ	Ô	Ø	Ð-Ð.¸¸¸ÐPSÈuð
ñ 
ô 
€Bð )€HÝ	˜4Ñ	 Ô	 ð 7 IØ×&Ò&Ñ(Ô(ð 	7ð 	7Ø×#Ò# B¨Ñ1Ô1°QÒ6Ð6Ð6Ð6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð Ð4Ð4Ð4ÝÔ ð+Ø'ð+ð +ð +àñ
ô 
ˆð
 ˆØ”xð 	2ð 	2ˆGÝÔ(Ð)H¸gÐ)HÐ)HÐ)HÈ$ÑOÔOˆGØ�NŠN˜7œ<×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ð1ð	2ð 	'Ð&Ð&Ð&Ð&Ð&àˆw�t‰}Œ}ˆà×Ò˜xÑ(Ô(ˆØ2Ð2¨cÐ2Ñ2Ô2ˆà˜�u�gÒÐÐÐÐÐs6   ÂCÂCÂ5CÃC	ÃCÃC	Ã	CÃCÃCc                ó@  — | }|                      | ¦  «        } d}|dk    rd|vrddlm}  ||¦  «        }t          | ¦  «        5 }|                     ¦   «         5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nú'CREATE TABLE test_trans (A INT, B TEXT)r„  r„   r   r   )r�  r=   r€   r!   rb  rU   )r^   r‘  r   r_   r€   r¿  Útranss          r-   Útest_transactionsr5  Ž  s9  € à€IØ×"Ò" 4Ñ(Ô(€Dà4€DØÐ$Ò$Ð$¨°yÐ)@Ð)@Ø#Ð#Ð#Ð#Ð#Ð#àˆt�D‰zŒzˆå	˜4Ñ	 Ô	 ð   IØ×&Ò&Ñ(Ô(ð 	 ¨EØ�MŠM˜$ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s6   ÁBÁA;Á/BÁ;A?	Á?BÂA?	ÂBÂBÂBc                ó  — | }|                      | ¦  «        } t          | ¦  «        5 }|                     ¦   «         5 }d}d|v st          |t          ¦  «        r|                     |¦  «         n&ddlm}  ||¦  «        }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y    G d„ dt          ¦  «        }d}t          |t          ¦  «        rddlm}  ||¦  «        }	 |                     ¦   «         5 }|                     |¦  «          |d¦  «        ‚# 1 swxY w Y   n# |$ r Y nw xY w|                     ¦   «         5  | 
                    d	¦  «        }	d d d ¦  «         n# 1 swxY w Y   t          |	¦  «        dk    sJ ‚|                     ¦   «         5 }|                     |¦  «         | 
                    d	¦  «        }
d d d ¦  «         n# 1 swxY w Y   t          |
¦  «        d
k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr3  r„   r   r   c                  ó   — e Zd ZdS )ú1test_transaction_rollback.<locals>.DummyExceptionN)r†  r‡  rˆ  r+   r,   r-   ÚDummyExceptionr8  ­  s   € € € € € ØˆDr,   r9  z/INSERT INTO test_trans (A,B) VALUES (1, 'blah')r§  zSELECT * FROM test_transrJ   )r�  r!   rb  r�   r   rU   r=   r€   Ú	Exceptionr   rc  r¾  )r^   r‘  r   r¿  r4  r_   r€   r9  Úins_sqlr  r  s              r-   Útest_transaction_rollbackr<  ž  s™  € à€IØ×"Ò" 4Ñ(Ô(€DÝ	˜4Ñ	 Ô	 ð # IØ×&Ò&Ñ(Ô(ð 	$¨EØ<ˆDØ˜Ð"Ð"¥j°½NÑ&KÔ&KÐ"Ø—’˜dÑ#Ô#Ð#Ð#à+Ð+Ð+Ð+Ð+Ð+à�t˜D‘z”z�Ø—’˜dÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð	ð 	ð 	ð 	ð 	�Yñ 	ô 	ð 	ð DˆÝ�i¥Ñ-Ô-ð 	$Ø'Ð'Ð'Ð'Ð'Ð'à�d˜7‘m”mˆGð	Ø×*Ò*Ñ,Ô,ð .°Ø—’˜gÑ&Ô&Ð&Ø$�n WÑ-Ô-Ð-ð.ð .ð .ð .øøøð .ð .ð .ð .ð .øð ð 	ð 	ð 	àˆDð	øøøð ×&Ò&Ñ(Ô(ð 	Cð 	CØ×&Ò&Ð'AÑBÔBˆCð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cå�3‰xŒx˜1Š}ˆ}ˆ}ˆ}ð ×&Ò&Ñ(Ô(ð 	D¨EØ�MŠM˜'Ñ"Ô"Ð"Ø×'Ò'Ð(BÑCÔCˆDð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dõ �4‰yŒy˜AŠ~ˆ~ˆ~ˆ~ˆ~ðG#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s¿   §H¼AB ÂHÂ B$	Â$HÂ'B$	Â(>HÃ'D(Ã;!DÄD 	Ä D(Ä#D 	Ä$D(Ä'HÄ(D0Ä-HÄ/D0Ä0HÅE)ÅHÅ)E-	Å-HÅ0E-	Å1,HÆ+GÇHÇG	ÇHÇG	ÇHÈHÈ	Hc                óž  — | dk    r3|                      t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } ddlm} ddlm} d}t          j
        ||| ¬¦  «        }|j        d d…         } ||¦  «        }t          | |¦  «        rn|                      ¦   «         5 }|                     ¦   «         5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   n|                      |¦  «         t          j        || ¦  «        }	t#          j        |	|d	¬
¦  «         d S )Nre  z(test does not support sqlite_str fixturer”  r   r   r¢   Útest_get_schema_create_tablerŽ  FrÞ  )rû  r   r˜  r™  r�  r=   r€   r¤   r£   r   rð  rÀ   r�   r¥   rt   rU   r#   rÅ   r
  )
r^   r‘  rò   r€   r£   r'  r<  Úblank_test_dfÚnewconÚreturned_dfs
             r-   r>  r>  È  sÞ  € ð
 ˆ|ÒÐØ×ÒÝŒK×ÒÐ%OÐÑPÔPñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DàÐÐÐÐÐØ(Ð(Ð(Ð(Ð(Ð(à
(€CÝ” ¨S°dÐ;Ñ;Ô;€JØÔ$ R a RÔ(€Mà��jÑ!Ô!€JÝ�$˜ÑÔð !Ø�\Š\‰^Œ^ð 	+˜vØ—’‘”ð +ð +Ø—’˜zÑ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+øð 	�Š�ZÑ Ô Ð ÝÔ$ S¨$Ñ/Ô/€KÝÔ˜+ }ÀuÐMÑMÔMÐMÐMÐMs6   Â2D ÃC)ÃD Ã)C-	Ã-D Ã0C-	Ã1D Ä DÄDc                óŒ  — | dk    rt          j        d¦  «         |                     | ¦  «        } ddlm}m} ddlm} ddg}dd	g}t          ||¬
¦  «        }| 	                    d| ¬¦  «        dk    sJ ‚| 	                    d| d|i¬¦  «        dk    sJ ‚ |¦   «         }| 
                    | ¬¦  «         |j        d         j        d         j        }	t          |	|¦  «        sJ ‚d}
t          j        t           |
¬¦  «        5  | 	                    d| dt"          i¬¦  «         d d d ¦  «         n# 1 swxY w Y   | 	                    d| d |d¦  «        i¬¦  «        dk    sJ ‚| 
                    | ¬¦  «         |j        d         j        d         j        }	t          |	|¦  «        sJ ‚|	j        dk    sJ ‚| 	                    d| |¬¦  «        dk    sJ ‚| 
                    | ¬¦  «         |j        d         j        d         j        }|j        d         j        d         j        }t          ||¦  «        sJ ‚t          ||¦  «        sJ ‚d S )Nre  r™  r   )r‰   r4   ©r3   rä   rå   ©gš™™™™™é?T©gÍÌÌÌÌÌì?Nrí   Ú
dtype_testrµ  rK   Údtype_test2©r¯   rx   r?   rq   z&The type of B is not a SQLAlchemy typerÊ  r§  Údtype_test3é
   Úsingle_dtype_test)r   r±  r�  r=   r‰   r4   Úsqlalchemy.schemar3   r   r�  ÚreflectÚtablesrÇ   rÁ   r�   rË  rÌ  r‡   rà  )r^   r‘  r‰   r4   r3   r-  rÖ   rá   ÚmetaÚsqltyper®  ÚsqltypeaÚsqltypebs                r-   Ú
test_dtyperS  æ  sÓ  € àˆ|ÒÐÝŒÐ9Ñ:Ô:Ð:à×"Ò" 4Ñ(Ô(€Dðð ð ð ð ð ð ð ð +Ð*Ð*Ð*Ð*Ð*à�ˆ:€DØ˜Ð%€DÝ	�4 Ð	&Ñ	&Ô	&€BØ�9Š9˜,¨Dˆ9Ñ1Ô1°QÒ6Ð6Ð6Ð6Ø�9Š9˜-¨T¸#¸t¸ˆ9ÑEÔEÈÒJÐJÐJÐJØˆ8‰:Œ:€DØ‡L‚L�d€LÑÔÐØŒk˜-Ô(Ô0°Ô5Ô:€GÝ�g˜tÑ$Ô$Ð$Ð$Ð$Ø
2€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð <ð <Ø
�	Š	�w D°µc°
ˆ	Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð �9Š9˜-¨T¸#¸v¸vÀb¹z¼zÐ9Jˆ9ÑKÔKÈqÒPÐPÐPÐPØ‡L‚L�d€LÑÔÐØŒk˜-Ô(Ô0°Ô5Ô:€GÝ�g˜vÑ&Ô&Ð&Ð&Ð&ØŒ>˜RÒÐÐÐð �9Š9Ð-°4¸tˆ9ÑDÔDÈÒIÐIÐIÐIØ‡L‚L�d€LÑÔÐØŒ{Ð.Ô/Ô7¸Ô<ÔA€HØŒ{Ð.Ô/Ô7¸Ô<ÔA€HÝ�h Ñ%Ô%Ð%Ð%Ð%Ý�h Ñ%Ô%Ð%Ð%Ð%Ð%Ð%s   Ä  D,Ä,D0Ä3D0c                ó  — | dk    rt          j        d¦  «         | }|                     | ¦  «        } ddlm}m}m}m} ddlm	} t          dd g¦  «        t          t          ddd	¦  «        d g¦  «        t          d	d gd
¬¦  «        t          dd g¦  «        dœ}t          |¦  «        }	d}
|	                     |
| ¬¦  «        dk    sJ ‚t          j        |
| ¦  «        } |¦   «         }|                     | ¬¦  «         d|v r|n|}|j        |
         j        }t'          |d         j        |¦  «        sJ ‚t'          |d         j        |¦  «        sJ ‚t'          |d         j        |¦  «        sJ ‚t'          |d         j        |¦  «        sJ ‚d S )Nre  r™  r   )rŠ   r‹   r2   rŒ   rC  TéÜ  r½   rJ   rþ  rž  r÷  ©ÚBoolÚDateÚIntr2   Únotna_dtype_testrµ  rK   rq   r&   rW  rX  rY  r2   )r   r±  r�  r=   rŠ   r‹   r2   rŒ   rL  r3   r   r   r   r�  r   r#   rM  rN  rÇ   r�   rÁ   )r^   r‘  r   rŠ   r‹   r2   rŒ   r3   r-  rá   r'  r  rO  Úmy_typeÚcol_dicts                  r-   Útest_notna_dtyper]    så  € àˆ|ÒÐÝŒÐ9Ñ:Ô:Ð:à€IØ×"Ò" 4Ñ(Ô(€Dðð ð ð ð ð ð ð ð ð ð ð ð +Ð*Ð*Ð*Ð*Ð*õ ˜˜d�|Ñ$Ô$Ý�  q¨!Ñ,Ô,¨dÐ3Ñ4Ô4Ý�q˜$�i xÐ0Ñ0Ô0Ý˜˜d˜Ñ$Ô$ð	ð €Dõ 
�4‰Œ€Bà
€CØ�9Š9˜# 4ˆ9Ñ(Ô(¨AÒ-Ð-Ð-Ð-ÝÔ˜3 Ñ%Ô%€AØˆ8‰:Œ:€DØ‡L‚L�d€LÑÔÐØ  IÐ-Ð-ˆgˆg°7€GØŒ{˜3ÔÔ'€HÝ�h˜vÔ&Ô+¨WÑ5Ô5Ð5Ð5Ð5Ý�h˜vÔ&Ô+¨XÑ6Ô6Ð6Ð6Ð6Ý�h˜u”oÔ*¨GÑ4Ô4Ð4Ð4Ð4Ý�h˜wÔ'Ô,¨eÑ4Ô4Ð4Ð4Ð4Ð4Ð4r,   c           
     ó0  — | dk    rt          j        d¦  «         |                     | ¦  «        } ddlm}m}m} ddlm} d}t          t          |gd¬¦  «        t          |gd	¬¦  «        t          |gd	¬¦  «        t          d
gd¬¦  «        t          d
gd¬¦  «        dœ¦  «        }|                     d| ddd |d¬¦  «        i¬¦  «        dk    sJ ‚t          j        d| ¦  «        }t          j        |d         j        d         d¦  «        t          j        |d         j        d         d¦  «        k    sJ ‚ |¦   «         }	|	                     | ¬¦  «         |	j        d         j        }
t)          |
d         j        ¦  «        t)          |
d         j        ¦  «        k    sJ ‚t-          |
d         j        |¦  «        sJ ‚t-          |
d         j        |¦  «        sJ ‚t-          |
d         j        |¦  «        sJ ‚t-          |
d         j        |¦  «        sJ ‚d S )Nre  r™  r   )Ú
BigIntegerr2   rŒ   rC  gñYÉBÊÀó?r  rž  Úfloat64r½   r¬  rß   )Úf32Úf64Ú
f64_as_f32Úi32rÊ  Útest_dtypesFr§  rc  é   )Ú	precision)r¯   rx   r»   rŽ  r?   rJ   rb  é   rq   ra  rd  rÊ  )r   r±  r�  r=   r_  r2   rŒ   rL  r3   r   r   r�  r   r#   rÃ   ÚroundrÀ   rM  rN  rÇ   r‡   rÁ   r�   )r^   r‘  r_  r2   rŒ   r3   ÚVrá   r  rO  r\  s              r-   Útest_double_precisionrk  5  sp  € àˆ|ÒÐÝŒÐ9Ñ:Ô:Ð:à×"Ò" 4Ñ(Ô(€Dðð ð ð ð ð ð ð ð ð ð
 +Ð*Ð*Ð*Ð*Ð*à€Aå	å˜1˜# YÐ/Ñ/Ô/Ý˜1˜# YÐ/Ñ/Ô/Ý  ! ¨IÐ6Ñ6Ô6Ý˜1˜# WÐ-Ñ-Ô-Ý˜1˜# WÐ-Ñ-Ô-ð	
ð 	
ñ
ô 
€Bð 	�	Š	ØØØØØ  °Ð!4Ñ!4Ô!4Ð5ð 	ñ 	
ô 	
ð ò	ð 	ð 	ð 	õ Ô
˜]¨DÑ
1Ô
1€Cõ Œ8�B�u”I”N 1Ô% rÑ*Ô*­b¬h°s¸5´z´ÀqÔ7IÈ2Ñ.NÔ.NÒNÐNÐNÐNð ˆ8‰:Œ:€DØ‡L‚L�d€LÑÔÐØŒ{˜=Ô)Ô1€HÝˆx˜ŒÔ#Ñ$Ô$­¨H°\Ô,BÔ,GÑ(HÔ(HÒHÐHÐHÐHÝ�h˜u”oÔ*¨EÑ2Ô2Ð2Ð2Ð2Ý�h˜u”oÔ*¨EÑ2Ô2Ð2Ð2Ð2Ý�h˜u”oÔ*¨GÑ4Ô4Ð4Ð4Ð4Ý�h˜u”oÔ*¨JÑ7Ô7Ð7Ð7Ð7Ð7Ð7r,   c                óÚ   ‡‡‡‡— |                      | ¦  «        } ddlmŠ d„ Šd„ Šˆˆfd„Šˆˆfd„}t          dg d¢i¦  «                             d| ¬	¦  «        d
k    sJ ‚ || ¦  «         d S )Nr   r¢   c                ó2   — d}t          j        || ¬¦  «        S )Nz'SELECT test_foo_data FROM test_foo_datarŽ  )r   r"   )r  rè  s     r-   Útest_selectz3test_connectable_issue_example.<locals>.test_selectq  s   € Ø9ˆÝÔ! %¨ZÐ8Ñ8Ô8Ð8r,   c                ó6   — |                      d| d¬¦  «         d S )NÚtest_foo_datar  )r¯   rx   rŽ  )r�  )r  rÖ   s     r-   Útest_appendz3test_connectable_issue_example.<locals>.test_appendu  s    € Ø�Š˜¨jÀHˆÑMÔMÐMÐMÐMr,   c                ó6   •—  ‰| ¦  «        } ‰| |¦  «         d S r*  r+   )r^   Úfoo_datarq  rn  s     €€r-   Útest_connectablez8test_connectable_issue_example.<locals>.test_connectablex  s,   ø€ ð �;˜tÑ$Ô$ˆØˆ�D˜(Ñ#Ô#Ð#Ð#Ð#r,   c                ó
  •— t          | ‰¦  «        rf|                      ¦   «         5 }|                     ¦   «         5   ‰|¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S  ‰| ¦  «         d S r*  )r�   r¥   rt   )Úconnectabler^   r£   rt  s     €€r-   Úmainz,test_connectable_issue_example.<locals>.main~  s  ø€ Ý�k 6Ñ*Ô*ð 	*Ø×$Ò$Ñ&Ô&ð +¨$Ø—Z’Z‘\”\ð +ð +Ø$Ð$ TÑ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +ð Ð˜[Ñ)Ô)Ð)Ð)Ð)s4   ¦A+»AÁA+ÁA	ÁA+ÁA	ÁA+Á+A/Á2A/rp  r  rµ  rL   )r�  r¤   r£   r   r�  )r^   r‘  rw  r£   rq  rt  rn  s      @@@@r-   Útest_connectable_issue_examplerx  i  sÞ   øøøø€ à×"Ò" 4Ñ(Ô(€Dð )Ð(Ð(Ð(Ð(Ð(ð9ð 9ð 9ðNð Nð Nð$ð $ð $ð $ð $ð $ð*ð *ð *ð *ð *ð *õ 	�? I I IÐ.Ñ/Ô/×6Ò6¸OÐQUÐ6ÑVÔVØò	ð 	ð 	ð 	ð 	€Dˆ�J„J€J€J€Jr,   Úinputr´  Úbar)r´  Úinfe0c                óž  — t          |¦  «        }| }|                     | ¦  «        } d|v rZd}t          j        t          j        j        |¬¦  «        5  |                     d| d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S |                     d| d¬¦  «        dk    sJ ‚t          j	        d| ¦  «        }t          j        ||¦  «         d S )Nr&   úExecution failed on sqlrÊ  ÚfoobarFr	  rJ   )r   r�  r   rË  r¨  r~   rŒ  r�  r   r#   rÅ   Úassert_equal)r^   r‘  ry  rá   r   r®  r  s          r-   Útest_to_sql_with_negative_npinfr€  �  s   € õ 
�5Ñ	Ô	€BØ€IØ×"Ò" 4Ñ(Ô(€Dà�)ÐÐð (ˆÝŒ]�2œ9Ô2¸#Ð>Ñ>Ô>ð 	<ð 	<Ø�IŠI˜8¨°UˆIÑ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð �yŠy˜h¨D¸ˆyÑ>Ô>À!ÒCÐCÐCÐCÝÔ  ¨4Ñ0Ô0ˆÝ
Œ˜˜CÑ Ô Ð Ð Ð s   ÁA8Á8A<Á?A<c                óÄ  ‡‡‡— | dk    rt          j        d¦  «         |                     | ¦  «        } ddlmŠmŠmŠm} ddlm	}m
} d}t          d|gi¦  «        } |¦   «         } G ˆˆˆfd„d	|¦  «        } || ¦  «        5 }	|	                     ¦   «         5  |	                     ¦   «         } |j                             | ¦  «         |	                      ||¬
¦  «        ¦  «         |	                     ¦   «          t%          j         ||j        ¦  «        | ¬¦  «        }
d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t+          j        |
|¦  «         d S )Nre  z&test does not work with str connectionr   )r0   rŒ   ÚUnicoderÝ  )ÚSessionÚdeclarative_basezHello, World!Úspamc                  ód   •— e Zd ZdZddgiZ ” ”d¬¦  «        Z ”  ”d¦  «        d¬¦  «        Zd	S )
ú'test_temporary_table.<locals>.TemporaryÚ	temp_testÚprefixesÚ	TEMPORARYT©Úprimary_keyr  F)ÚnullableN)r†  r‡  rˆ  Ú__tablename__Ú__table_args__Úidr…  )r0   rŒ   r‚  s   €€€r-   Ú	Temporaryr‡  ¼  sP   ø€ € € € € Ø#ˆØ$ { mÐ4ˆØˆV�G¨Ð.Ñ.Ô.ˆØˆv�g�g˜b‘k”k¨EÐ2Ñ2Ô2ˆˆˆr,   r‘  )r…  )r   rx   )r   r±  r�  r=   r0   rŒ   r‚  rÝ  Úsqlalchemy.ormrƒ  r„  r   rt   r  Ú	__table__rv   ÚaddÚflushr   r"   r…  rÅ   r
  )r^   r‘  rÝ  rƒ  r„  rE  r'  ÚBaser‘  Úsessionrá   r0   rŒ   r‚  s              @@@r-   Útest_temporary_tabler˜  ¦  su  øøø€ àˆ|ÒÐÝŒÐ<Ñ=Ô=Ð=à×"Ò" 4Ñ(Ô(€Dðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð
  €IÝ˜& 9 +Ð.Ñ/Ô/€HØÐÑÔ€Dð3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3�Dñ 3ô 3ð 3ð 
ˆ�‰Œð J˜'Ø�]Š]‰_Œ_ð 	Jð 	JØ×%Ò%Ñ'Ô'ˆDØÔ×&Ò& tÑ,Ô,Ð,Ø�KŠK˜	˜	 yÐ1Ñ1Ô1Ñ2Ô2Ð2Ø�MŠM‰OŒOˆOÝÔ#¨¨¨y¬~Ñ(>Ô(>ÀDÐIÑIÔIˆBð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	JðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jõ Ô˜"˜hÑ'Ô'Ð'Ð'Ð's7   ÂE ÂBD)ÄE Ä)D-	Ä-E Ä0D-	Ä1E Å EÅEc                ó”  — | dk    sd| v r3|                      t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } d}t          | ¦  «        5 }t          j        t          |¬¦  «        5  |                     |dd¬	¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )
Nr„  r„   z9SQLiteDatabase/ADBCDatabase does not raise for bad enginer”  z*engine must be one of 'auto', 'sqlalchemy'rÊ  rð   Ú
bad_engine©rÒ   )	rû  r   r˜  r™  r�  r!   rË  rÌ  r�  )r^   r‘  rð   r®  r¿  s        r-   Útest_invalid_enginerœ  Ì  s}  € àÐÒÐ 6¨T > >Ø×ÒÝŒK×ÒØRð ñ ô ñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DØ
6€CÝ	˜4Ñ	 Ô	 ð N IÝŒ]�:¨SÐ1Ñ1Ô1ð 	Nð 	NØ×Ò˜[¨-ÀÐÑMÔMÐMð	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	NðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nð Nð Ns6   Á$B=Â B%ÂB=Â%B)	Â)B=Â,B)	Â-B=Â=CÃCc                ó�  — |                      | ¦  «        } t          | ¦  «        5 }|                     ¦   «         5  |                     |dd¬¦  «        dk    sJ ‚|                     d¦  «        sJ ‚	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   t          |¦  «        }t          | d¦  «        }||k    sJ ‚dS )z `to_sql` with the `engine` paramrð   Úautor›  rM   N)r�  r!   rb  r�  r½  r¾  rÓ   ry  s         r-   Útest_to_sql_with_sql_enginerŸ  Ü  sW  € ð ×"Ò" 4Ñ(Ô(€DÝ	˜4Ñ	 Ô	 ð 6 IØ×&Ò&Ñ(Ô(ð 	6ð 	6Ø×#Ò# K°ÀvÐ#ÑNÔNÐRSÒSÐSÐSÐSØ×&Ò& }Ñ5Ô5Ð5Ð5Ð5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6õ
 �kÑ"Ô"€KÝ˜$ Ñ.Ô.€HØ�{Ò"Ð"Ð"Ð"Ð"Ð"s4   ¥Bº6A=Á1BÁ=B	ÂBÂB	ÂBÂBÂBc                óê  — |                      | ¦  «        } t          j        dd¦  «        5  t          | ¦  «        5 }|                     ¦   «         5  |                     |d¦  «        dk    sJ ‚|                     d¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }t          | d¦  «        }||k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Núio.sql.enginer=   rð   rM   ©	r�  r¨  Úoption_contextr!   rb  r�  r½  r¾  rÓ   ry  s         r-   Útest_options_sqlalchemyr¤  ë  sÅ  € ð ×"Ò" 4Ñ(Ô(€DÝ	Ô	˜?¨LÑ	9Ô	9ð 'ð 'Ý˜tÑ$Ô$ð 	:¨	Ø×*Ò*Ñ,Ô,ð :ð :Ø ×'Ò'¨°]ÑCÔCÀqÒHÐHÐHÐHØ ×*Ò*¨=Ñ9Ô9Ð9Ð9Ð9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:õ
 ˜+Ñ&Ô&ˆÝ˜d MÑ2Ô2ˆØ˜;Ò&Ð&Ð&Ð&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'óX   «C(»B(Á4BÂB(ÂBÂB(ÂBÂB(ÂC(Â(B,	Â,C(Â/B,	Â0*C(Ã(C,Ã/C,c                óê  — |                      | ¦  «        } t          j        dd¦  «        5  t          | ¦  «        5 }|                     ¦   «         5  |                     |d¦  «        dk    sJ ‚|                     d¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }t          | d¦  «        }||k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr¡  rž  rð   rM   r¢  ry  s         r-   Útest_options_autor§  ú  sÅ  € ð ×"Ò" 4Ñ(Ô(€DÝ	Ô	˜?¨FÑ	3Ô	3ð 'ð 'Ý˜tÑ$Ô$ð 	:¨	Ø×*Ò*Ñ,Ô,ð :ð :Ø ×'Ò'¨°]ÑCÔCÀqÒHÐHÐHÐHØ ×*Ò*¨=Ñ9Ô9Ð9Ð9Ð9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:õ
 ˜+Ñ&Ô&ˆÝ˜d MÑ2Ô2ˆØ˜;Ò&Ð&Ð&Ð&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'r¥  c                 óP  — t          j        d¦  «         t          t          d¦  «        t          ¦  «        sJ ‚t          j        dd¦  «        5  t          t          d¦  «        t          ¦  «        sJ ‚t          t          d¦  «        t          ¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        dd¦  «        5  t          t          d¦  «        t          ¦  «        sJ ‚t          t          d¦  «        t          ¦  «        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr=   r¡  rž  )r   r!  r�   r    r   r¨  r£  r+   r,   r-   Útest_options_get_enginer©  	  sº  € Ý
Ô˜Ñ%Ô%Ð%Ý•j Ñ.Ô.Õ0@ÑAÔAÐAÐAÐAå	Ô	˜?¨LÑ	9Ô	9ð Fð FÝ�* VÑ,Ô,Õ.>Ñ?Ô?Ð?Ð?Ð?Ý�* \Ñ2Ô2Õ4DÑEÔEÐEÐEÐEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fõ 
Ô	˜?¨FÑ	3Ô	3ð Fð FÝ�* VÑ,Ô,Õ.>Ñ?Ô?Ð?Ð?Ð?Ý�* \Ñ2Ô2Õ4DÑEÔEÐEÐEÐEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð Fs&   ÁA	B$Â$B(Â+B(ÃA	DÄDÄ"DÚfuncrÒ  r"   c                ó¸  — | }|                      | ¦  «        } d}|}	|	                     || dd¬¦  «         t          j        d|¦  «        5   t	          t          |¦  «        d|› �| |¬¦  «        }
 ||||¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        |
|¦  «         d|v r3|                     t          j	         
                    d	¬
¦  «        ¦  «         t          j        d|¦  «        5   t	          t          |¦  «        d|› �| |d¬¦  «        } ||||¦  «        }|D ]}
t          j        |
|¦  «         Œ	 d d d ¦  «         d S # 1 swxY w Y   d S )NrŒ  Fr§  ©r¯   rx   r»   rŽ  úmode.string_storageúSelect * from ©Údtype_backendr„   z(adbc does not support chunksize argumentr”  rL   )rx   r°  rÚ  )r�  r�  r¨  r£  rƒ  rÅ   r
  rû  r   r˜  r™  ©r^   r‘  Ústring_storagerª  r°  Údtype_backend_dataÚdtype_backend_expectedr   r	  rá   r)  r'  Úiterators                r-   Útest_read_sql_dtype_backendr¶    s<  € ð €IØ×"Ò" 4Ñ(Ô(€DØ€EØ	€BØ‡I‚I�5˜d¨%¸9€IÑEÔEÐEå	Ô	Ð0°.Ñ	AÔ	Að Tð TØ"•�˜TÑ"Ô"Ø$˜UÐ$Ð$ d¸-ð
ñ 
ô 
ˆð *Ð)¨.¸-ÈÑSÔSˆð	Tð Tð Tñ Tô Tð Tð Tð Tð Tð Tð Tøøøð Tð Tð Tð Tõ Ô˜& (Ñ+Ô+Ð+à�ÐÐà×ÒÝŒK×ÒÐ%OÐÑPÔPñ	
ô 	
ð 	
õ 
Ô	Ð0°.Ñ	AÔ	Að 	4ð 	4Ø$•7�2˜tÑ$Ô$Ø$˜UÐ$Ð$ØØ'Øð	
ñ 
ô 
ˆð *Ð)¨.¸-ÈÑSÔSˆØð 	4ð 	4ˆFÝÔ! &¨(Ñ3Ô3Ð3Ð3ð	4ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s%   Á
2BÂBÂBÃ4AEÅEÅEr#   c                óÀ  — d| v r7d| vr3|                      t          j                             d¬¦  «        ¦  «         | }|                     | ¦  «        } d}|}	|	                     || dd¬¦  «         t          j        d	|¦  «        5   t          t          |¦  «        || |¬
¦  «        }
 ||||¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j
        |
|¦  «         d|v rd S t          j        d	|¦  «        5   t          t          |¦  «        || |d¬¦  «        } ||||¦  «        }|D ]}
t          j
        |
|¦  «         Œ	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr%   r„   zhSQLite actually returns proper boolean values via read_sql_table, but before pytest refactor was skippedr”  rŒ  Fr§  r¬  r­  r¯  rL   )r°  rÚ  )rû  r   r˜  r™  r�  r�  r¨  r£  rƒ  rÅ   r
  r±  s                r-   Ú!test_read_sql_dtype_backend_tabler¸  B  sF  € ð �4ÐÐ˜F¨$Ð.Ð.Ø×ÒÝŒK×ÒðMð ñ ô ñ	
ô 	
ð 	
ð €IØ×"Ò" 4Ñ(Ô(€DØ€EØ	€BØ‡I‚I�5˜d¨%¸9€IÑEÔEÐEå	Ô	Ð0°.Ñ	AÔ	Að Tð TØ"•�˜TÑ"Ô" 5¨$¸mÐLÑLÔLˆØ)Ð)¨.¸-ÈÑSÔSˆðTð Tð Tñ Tô Tð Tð Tð Tð Tð Tð Tøøøð Tð Tð Tð Tõ Ô˜& (Ñ+Ô+Ð+à�ÐÐàˆå	Ô	Ð0°.Ñ	AÔ	Að 	4ð 	4Ø$•7�2˜tÑ$Ô$ØØØ'Øð	
ñ 
ô 
ˆð *Ð)¨.¸-ÈÑSÔSˆØð 	4ð 	4ˆFÝÔ! &¨(Ñ3Ô3Ð3Ð3ð	4ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s%   Â/C Ã CÃCÃ;A
EÅEÅE)rÒ  r#   r"   c                ó  — |                      | ¦  «        } d}|}|                     || dd¬¦  «         d}t          j        t          |¬¦  «        5   t          t          |¦  «        || d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrŒ  Fr§  r¬  zPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rÊ  Únumpyr¯  )r�  r�  r   rË  rÌ  rƒ  r¨  )r^   r‘  rª  r³  r	  rá   r®  s          r-   Ú)test_read_sql_invalid_dtype_backend_tabler»  r  sá   € ð ×"Ò" 4Ñ(Ô(€DØ€EØ	€BØ‡I‚I�5˜d¨%¸9€IÑEÔEÐEð	!ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð >ð >Ø�•�DÑÔ˜% °WÐ=Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >s   Á"A?Á?BÂBr{  c                 óö   — t          t          dt          j        dgd¬¦  «        t          g d¢d¬¦  «        t          dt          j        dgd¬¦  «        t          g d	¢d¬¦  «        g d
¢g d¢g d¢g d¢dœ¦  «        S )NrJ   rL   rU  rž  r  rÙ  ç      @ÚFloat64©rÙ  rœ  r½  )TFN©TFTr(  ©r¡  r  N©r¡  r  r  ÚdÚeÚfÚgÚh)r   r   r¨  ÚNAr+   r,   r-   r³  r³  ‚  s™   € åå˜�BœE 1˜¨WÐ5Ñ5Ô5Ý˜	˜	˜	¨Ð1Ñ1Ô1Ý˜�bœe SÐ)°Ð;Ñ;Ô;Ý˜˜˜¨yÐ9Ñ9Ô9Ø$Ð$Ð$Ø$Ð$Ð$Ø ��Ø!Ð!Ð!ð		
ð 		
ñô ð r,   c                 ó   — dd„} | S )Nr{  r   c                ó:  ‡‡‡— |dk    r;t          j        d¦  «        Št          j        ‰                     ¦   «         ¦  «        }nt          j        | ¦  «        }t          t          dt          j        dgd¬¦  «        t          g d¢d¬¦  «        t          dt          j        dgd	¬¦  «        t          g d
¢d	¬¦  «        t          ddt          j        gd¬¦  «        t          g d¢d¬¦  «        t          g d¢|¬¦  «        t          g d¢|¬¦  «        dœ¦  «        Š|dk    r<t          j        d¦  «        Šddl	m
Š t          ˆˆˆfd„‰j        D ¦   «         ¦  «        Šd|v sd|v r7|dk    r‰                     dddœ¦  «        Šn‰                     dddœ¦  «        Š‰S )NrF  rJ   rL   rU  rž  r  rÙ  r½  r¾  r¿  TFÚbooleanrÀ  r(  rÁ  rÂ  r   )ÚArrowExtensionArrayc           	     ó^   •— i | ])}| ‰‰                      ‰|         d ¬¦  «        ¦  «        “Œ*S )T)Úfrom_pandas)r©  )rQ   r–  rÌ  rá   r)  s     €€€r-   ú
<dictcomp>z8dtype_backend_expected.<locals>.func.<locals>.<dictcomp>®  sK   ø€ ð ð ð àð Ð,Ð,¨R¯XªX°b¸´gÈ4¨XÑ-PÔ-PÑQÔQðð ð r,   r&   r%   Únumpy_nullable)rÄ  rÅ  zint64[pyarrow])r   r!  r¨  Ú
ArrowDtyper¢  ÚStringDtyper   r   rÈ  Úpandas.arraysrÌ  rÇ   r±   )r²  r°  r   Ústring_dtyperÌ  rá   r)  s       @@@r-   rª  z$dtype_backend_expected.<locals>.func”  sã  øøø€ à˜IÒ%Ð%ÝÔ$ YÑ/Ô/ˆBÝœ=¨¯ª©¬Ñ5Ô5ˆLˆLåœ>¨.Ñ9Ô9ˆLåå˜Q¥¤ q˜M°Ð9Ñ9Ô9Ý˜I˜I˜I¨WÐ5Ñ5Ô5Ý˜S¥"¤%¨Ð-°YÐ?Ñ?Ô?Ý˜O˜O˜O°9Ð=Ñ=Ô=Ý˜T 5­"¬%Ð0¸	ÐBÑBÔBÝÐ/Ð/Ð/°yÐAÑAÔAÝ˜O˜O˜O°<Ð@Ñ@Ô@ÝÐ,Ð,Ð,°LÐAÑAÔAð	ð 	ñ
ô 
ˆð ˜IÒ%Ð%ÝÔ$ YÑ/Ô/ˆBà9Ð9Ð9Ð9Ð9Ð9åðð ð ð ð ð à!œzðñ ô ñô ˆBð �iÐÐ 8¨yÐ#8Ð#8ØÐ 0Ò0Ð0Ø—Y’Y W°7Ð;Ð;Ñ<Ô<��à—Y’YÐ%5Ð<LÐMÐMÑNÔN�àˆ	r,   ©r{  r   r+   )rª  s    r-   r´  r´  ’  s   € ð&ð &ð &ð &ðP €Kr,   c                ó¬  — d| v r8|j                              t          j                             d¬¦  «        ¦  «         |                     | ¦  «        } dddœ}t          ddg¬	¦  «                             |¦  «        }|                     ¦   «         }| 	                    d
| dd¬¦  «         t          d| |d¬¦  «        D ]}t          j        ||¦  «         Œd S )Nr„   rí  r”  rß   rþ  r  r¡  r  rí   rŒ  Fr§  r¬  zSELECT * FROM testrJ   )r?   rÚ  )r–  r—  r   r˜  r™  r�  r   r±   r  r�  r"   rÅ   r
  )r^   r‘  r¿   rá   r'  r)  s         r-   Útest_chunksize_empty_dtypesr×  ¿  sõ   € ð �€~€~ØŒ×ÒÝŒK×ÒÐ%RÐÑSÔSñ	
ô 	
ð 	
ð ×"Ò" 4Ñ(Ô(€DØ Ð*Ð*€FÝ	˜C ˜:Ð	&Ñ	&Ô	&×	-Ò	-¨fÑ	5Ô	5€BØ�wŠw‰yŒy€HØ‡I‚I�6˜t¨5¸I€IÑFÔFÐFå ØØØØð	ñ ô ð 0ð 0ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/ð0ð 0r,   r°  rÐ  c                ó¦  — |                      | ¦  «        } d}t          g d¢ddœ¦  «        }|                     || dd¬¦  «          t          t          |¦  «        d|› �| d	t
          j        i|¬
¦  «        }t          t          g d¢t
          j        ¬¦  «        t          g d¢|dk    sdnd¬¦  «        dœ¦  «        }t          j	        ||¦  «         d S )NrŒ  r  r½   r  Fr§  r¬  r®  r¡  )r?   r°  rž  )r½   r½   r½   rÐ  rß   rU  )
r�  r   r�  rƒ  r¨  rÃ   r`  r   rÅ   r
  )r^   r‘  rª  r°  r	  rá   r)  r'  s           r-   Útest_read_sql_dtyperÙ  Õ  s  € ð
 ×"Ò" 4Ñ(Ô(€DØ€EÝ	˜˜˜¨Ð+Ð+Ñ	,Ô	,€BØ‡I‚I�5˜d¨%¸9€IÑEÔEÐEà�W•R˜ÑÔØ ˜Ð Ð ØØ•B”JÐØ#ð	ñ ô €Fõ å˜	˜	˜	­¬Ð4Ñ4Ô4ÝØ�	�	Ø%2Ð6FÒ%FÐ%F�g�gÈGðñ ô ð	
ð 	
ñô €Hõ Ô˜& (Ñ+Ô+Ð+Ð+Ð+r,   c                óô   — | }t          dddgid¬¦  «        }|                     d|d¬¦  «        dk    sJ ‚t          j        d ¦  «        5  t	          j        d|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nr¡  rJ   rK   rß   rž  Útest_bigintwarningFr	  )r   r�  rÅ   r¬  r   r#   ©rg  r^   rá   s      r-   Útest_bigint_warningrÝ  ñ  sÎ   € Ø€Då	�C˜!˜Q˜�=¨Ð	0Ñ	0Ô	0€BØ�9Š9Ð.°DÀˆ9ÑFÔFÈ!ÒKÐKÐKÐKå	Ô	# DÑ	)Ô	)ð 7ð 7ÝÔÐ/°Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7s   Á
A-Á-A1Á4A1c                óÐ   — | }t          ddgddgdœ¦  «        }t          j        t          d¬¦  «        5  |                     d|d	d
¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrJ   rK   rL   rM   ©r#  r$  zEmpty table name specifiedrÊ  r£  r§  Fr�  )r   r   rË  rÌ  r�  rÜ  s      r-   Útest_valueerror_exceptionrà  û  sÌ   € Ø€DÝ	˜Q ˜F¨Q°¨FÐ3Ð3Ñ	4Ô	4€BÝ	Œ•zÐ)EÐ	FÑ	FÔ	Fð Gð GØ
�	Š	�r˜t¨yÀˆ	ÑFÔFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð Gð Gs   ´AÁAÁ"Ac                ó|  ‡
‡‡— | }ddl mŠ
mŠmŠ ddlm}m}  |¦   «         } G ˆ
ˆˆfd„d|¦  «        }|                     ¦   «         5  |j         	                    |¦  «         d d d ¦  «         n# 1 swxY w Y    ||¬¦  «        } |¦   «         5 }t          ddgdd	gd
œ¦  «        }|                     d|dd¬¦  «        dk    sJ ‚|                     ¦   «          |                     |j        |j        ¦  «        }	t          |	¦  «        }d d d ¦  «         n# 1 swxY w Y   t!          |j        ¦  «        ddgk    sJ ‚d S )Nr   ©r0   rŒ   r4   )r„  Úsessionmakerc                  óV   •— e Zd ZdZ ” ”d¬¦  «        Z ”  ”d¦  «        ¦  «        ZdS )ú,test_row_object_is_named_tuple.<locals>.Testr»  Tr‹  é2   N)r†  r‡  rˆ  rŽ  r�  Ústring_columnrâ  s   €€€r-   ÚTestrå    s?   ø€ € € € € Ø$ˆØˆV�G¨Ð.Ñ.Ô.ˆØ˜˜v˜v b™zœzÑ*Ô*ˆˆˆr,   rè  rq   rJ   ÚhelloÚworld)r�  rç  r»  Fr§  r¬  rK   r�  rç  )r=   r0   rŒ   r4   r’  r„  rã  rt   r@   Ú
create_allr   r�  r\   rè  r�  rç  r;  rÇ   )rg  r^   r„  rã  Ú	BaseModelrè  rƒ  r—  rá   Ú
test_queryr0   rŒ   r4   s             @@@r-   Útest_row_object_is_named_tuplerî    sI  øøø€ Ø€Dð
ð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð
 !Ð Ñ"Ô"€Ið+ð +ð +ð +ð +ð +ð +ð +ð +ˆyñ +ô +ð +ð
 
�Š‰Œð ,ð ,ØÔ×%Ò% dÑ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,àˆl Ð%Ñ%Ô%€GØ	ˆ‰Œð #�gÝ˜q !˜f¸ÀÐ7IÐJÐJÑKÔKˆà�IŠI˜<¨T¸È)ˆIÑTÔTØòð ð ð ð 	�ŠÑÔÐØ—]’] 4¤7¨DÔ,>Ñ?Ô?ˆ
Ý�zÑ"Ô"ˆð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ �”
ÑÔ  oÐ6Ò6Ð6Ð6Ð6Ð6Ð6s%   ÁA/Á/A3Á6A3ÂA9DÄDÄDc                ó”  — | }d}t          dddgi¦  «        }|                     ||dd¬¦  «         t          j        dd	¦  «        5  t	          ||¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        t          j        ¬
¦  «        }t          dddgi|t          dg|¬¦  «        ¬¦  «        }t          j
        ||¦  «         d S )NrŒ  r¡  ÚxÚyFr§  )rx   r»   rŽ  zfuture.infer_stringT)Úna_valuerž  )r?   rÇ   )r   r�  r¨  r£  r#   rÒ  rÃ   r   r   rÅ   r
  )rg  r^   r	  rá   r)  r?   r'  s          r-   Útest_read_sql_string_inferenceró  )  s  € Ø€Dà€EÝ	�C˜#˜s˜Ð$Ñ	%Ô	%€BØ‡I‚Iˆe˜ U°i€IÑ@Ô@Ð@å	Ô	Ð0°$Ñ	7Ô	7ð -ð -Ý  tÑ,Ô,ˆð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ ŒN¥B¤FÐ+Ñ+Ô+€EÝØ	ˆs�CˆjÐ µ°s°eÀ5Ð0IÑ0IÔ0Iðñ ô €Hõ Ô˜& (Ñ+Ô+Ð+Ð+Ð+s   ÁA#Á#A'Á*A'c           	     óÔ   — | }t          dt          dddd¦  «        gid¬¦  «        }|                     d|dd	¬
¦  «         t          j        d|¦  «        j        d         }|dk    sJ ‚d S ©NÚtiä  r¢  é   zdatetime64[ns]rž  rŒ  r§  Fr¯  úselect * from test©r   r   z2020-12-31 12:00:00.000000)r   r   r�  r¨  rÒ  rÀ   )rg  r^   rá   r)  s       r-   Útest_roundtripping_datetimesrú  ;  s|   € Ø€Då	�C�( 4¨¨R°Ñ4Ô4Ð5Ð6Ð>NÐ	OÑ	OÔ	O€BØ‡I‚Iˆf�d i°u€IÑ=Ô=Ð=ÝŒ[Ð-¨tÑ4Ô4Ô9¸$Ô?€FØÐ1Ò1Ð1Ð1Ð1Ð1Ð1r,   c               #  óÜ   K  — t          j        t          j        dt          j        ¬¦  «        ¦  «        5 } | 5 }|V — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr  )Údetect_types)r€  r�  r‚   r¥   ÚPARSE_DECLTYPESr‚  s     r-   Úsqlite_builtin_detect_typesrþ  D  sñ   è è € å	Ô	ÝŒ˜
µÔ1HÐIÑIÔIñ
ô 
ð à	Øð 	˜TØˆJˆJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s3   µA!¸A	½A!Á	A	ÁA!ÁA	ÁA!Á!A%Á(A%c           	     óî   — | }t          dt          dddd¦  «        gid¬¦  «        }|                     d|dd	¬
¦  «         t          j        d|¦  «        j        d         }|t          d¦  «        k    sJ ‚d S rõ  )r   r   r�  r¨  rÒ  rÀ   r   )rþ  r^   rá   r)  s       r-   Ú)test_roundtripping_datetimes_detect_typesr   M  s„   € à&€DÝ	�C�( 4¨¨R°Ñ4Ô4Ð5Ð6Ð>NÐ	OÑ	OÔ	O€BØ‡I‚Iˆf�d i°u€IÑ=Ô=Ð=ÝŒ[Ð-¨tÑ4Ô4Ô9¸$Ô?€FØ•YÐ;Ñ<Ô<Ò<Ð<Ð<Ð<Ð<Ð<r,   c                ó  — | }t          ddgddgddgdœ¦  «        }|                     ¦   «         5 }|                     ¦   «         5  |                     d¦  «         |                     d	¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                     d
|d¬¦  «        dk    sJ ‚|                     d|dd¬¦  «        dk    sJ ‚|                     d|dd¬¦  «        dk    sJ ‚t          j        d
|¦  «        }t          j        ||¦  «         t          j        d|¦  «        }t          j        ||¦  «         t          j        d|d¬¦  «        }t          j        ||¦  «         t          j        d|d¬¦  «        }t          j        ||¦  «         d}t          j
        t          |¬¦  «        5  t          j        d|d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         5 }|                     ¦   «         5  |                     d¦  «         |                     d	¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                     d|dd¬¦  «        dk    sJ ‚|                     d|ddd¬¦  «         |                     d|ddd¬¦  «        dk    sJ ‚t          j        d|d¬¦  «        }	t          j        t          ||gd¬¦  «        |	¦  «         d S )NrJ   rK   r  r¹   r¡  r!  r"  z$DROP SCHEMA IF EXISTS other CASCADE;zCREATE SCHEMA other;Útest_schema_publicFr	  Útest_schema_public_explicitrC  )r¯   rx   r»   r  Útest_schema_otherÚotherrD  z!Table test_schema_other not foundrÊ  )r¯   rx   r  r»   r§  )r¯   rx   r  r»   rŽ  r  Tr  )r   r¥   rt   rÏ   r�  r   r#   rÅ   r
  r   rË  rÌ  r   )
r=  r^   rá   rx   r  r  r  Úres4r®  r  s
             r-   Útest_psycopg2_schema_supportr  V  s¨  € à%€Dõ 
˜Q ˜F¨S°#¨JÀÀcÀ
ÐKÐKÑ	LÔ	L€Bð 
�Š‰Œð 8˜3Ø�YŠY‰[Œ[ð 	8ð 	8Ø×ÒÐ FÑGÔGÐGØ×ÒÐ 6Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð �9Š9Ð.°DÀˆ9ÑFÔFÈ!ÒKÐKÐKÐKà
�	Š	Ø.ØØØð	 	ñ 	
ô 	
ð ò	ð 	ð 	ð 	ð 	�	Š	Ð*°¸EÈ'ˆ	ÑRÔRÐVWÒWÐWÐWÐWõ ÔÐ2°DÑ9Ô9€DÝÔ˜"˜dÑ#Ô#Ð#ÝÔÐ;¸TÑBÔB€DÝÔ˜"˜dÑ#Ô#Ð#ÝÔÐ;¸TÈ(ÐSÑSÔS€DÝÔ˜"˜dÑ#Ô#Ð#ÝÔÐ1°4ÀÐHÑHÔH€DÝÔ˜"˜dÑ#Ô#Ð#Ø
-€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð Gð GÝÔÐ.°¸XÐFÑFÔFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð 
�Š‰Œð 8˜3Ø�YŠY‰[Œ[ð 	8ð 	8Ø×ÒÐ FÑGÔGÐGØ×ÒÐ 6Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð 	�	Š	Ð*°¸WÈEˆ	ÑRÔRÐVWÒWÐWÐWÐWà‡I‚IØ ØØØØð ñ ô ð ð 	�	Š	Ø$ØØØØð 	ñ 	
ô 	
ð ò	ð 	ð 	ð 	õ Ô
Ð0°$¸wÐ
GÑ
GÔ
G€CÝÔ�& " b ¸Ð=Ñ=Ô=¸sÑCÔCÐCÐCÐCs}   °BÁ+A<Á0BÁ<B 	Â BÂB 	ÂBÂBÂBÇG'Ç'G+Ç.G+ÈI)È+IÉI)ÉI	ÉI)ÉI	ÉI)É)I-É0I-c                óx  — | }ddl m}  |d¦  «        }|                     ¦   «         5 }|                     ¦   «         5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d}t          j        ||¦  «        }t          dt          dd¬¦  «        gd	z  gd
dgd	z  ¬¦  «        }|d          	                    d¦  «        |d<   t          j        ||¦  «         t          j        |d¬¦  «        5 }|                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   zÐ
    CREATE TABLE person
    (
        id serial constraint person_pkey primary key,
        created_dt timestamp with time zone
    );

    INSERT INTO person
        VALUES (1, '2021-01-01T00:00:00Z');
    zHSELECT * FROM "person" AS p1 INNER JOIN "person" AS p2 ON p1.id = p2.id;rJ   Ú2021r«   r¬   rK   r�  Ú
created_dtrí   r°   Tr¹  Úperson)r:  r€   r¥   rt   rU   r¨  rÒ  r   r   r±   rÅ   r
  r   r   r  )	r=  r^   r€   rY  rx   r  r)  r'  r¿  s	            r-   Útest_self_join_date_columnsr  ¡  s!  € ð &€DØ#Ð#Ð#Ð#Ð#Ð#à�4ð		ñô €Lð 
�Š‰Œð &˜3Ø�YŠY‰[Œ[ð 	&ð 	&Ø�KŠK˜Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð
 	Sð õ Œ[˜ DÑ)Ô)€FÝØ
�Y�v %Ð(Ñ(Ô(Ð	)¨AÑ	-Ð.¸¸|Ð8LÈqÑ8Pðñ ô €Hð & lÔ3×:Ò:¸=ÑIÔI€Hˆ\ÑÝÔ˜& (Ñ+Ô+Ð+õ 
Œ˜°Ð	5Ñ	5Ô	5ð '¸Ø×Ò˜XÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'sF   ¨A6½AÁA6ÁA#	Á#A6Á&A#	Á'A6Á6A:Á=A:ÄD/Ä/D3Ä6D3c                ó  — | }t          g d¢g d¢dœ¦  «        }t          j        |¦  «        5 }|                     ¦   «         5  |                     |d¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   |                     d¦  «        sJ ‚|                     ¦   «         5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d¦  «        rJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nrš  rŸ  r   Údrop_test_framerM   )r   r   r   rb  r�  r½  r  )rg  r^   rÈ  r¿  s       r-   Útest_create_and_drop_tabler  Æ  sñ  € Ø€DÝÐ#7Ð#7Ð#7Ð@TÐ@TÐ@TÐUÐUÑVÔV€JÝ	Œ˜Ñ	Ô	ð 	: )Ø×&Ò&Ñ(Ô(ð 	Hð 	HØ×#Ò# JÐ0AÑBÔBÀaÒGÐGÐGÐGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hð ×"Ò"Ð#4Ñ5Ô5Ð5Ð5Ð5à×&Ò&Ñ(Ô(ð 	4ð 	4Ø× Ò Ð!2Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð ×&Ò&Ð'8Ñ9Ô9Ð9Ð9Ð9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:sY   ­C4ÁA,Á C4Á,A0	Á0C4Á3A0	Á4.C4Â"CÂ8C4ÃC	ÃC4ÃC	ÃC4Ã4C8Ã;C8c                ó$  — | }t          t          ddd¦  «        t          ddd¦  «        gdg¬¦  «        }|                     d|d¬¦  «        dk    sJ ‚t          d	|¦  «        }t	          j        ||                     t          ¦  «        ¦  «         d S )
Nr  rJ   rK   r¡  rí   r  Fr	  zSELECT * FROM test_date)r   r   r�  r"   rÅ   r
  r±   r‡   )r„  r^   rá   r  s       r-   Útest_sqlite_datetime_dater  Õ  sŽ   € Ø€DÝ	•D˜˜q !Ñ$Ô$¥d¨4°°AÑ&6Ô&6Ð7À#ÀÐ	GÑ	GÔ	G€BØ�9Š9˜+¨4°uˆ9Ñ=Ô=ÀÒBÐBÐBÐBÝ
Ð2°DÑ
9Ô
9€CåÔ˜#˜rŸyšy­™~œ~Ñ.Ô.Ð.Ð.Ð.r,   Útz_awareFTc                ó¸  — |}| s#t          ddd¦  «        t          ddd¦  «        g}nGt          ddd¬¦  «        }t          |                     ¦   «         ¦  «                             d	„ ¦  «        }t          |d
g¬¦  «        }|                     d|d¬¦  «        dk    sJ ‚t          d|¦  «        }|                     d„ ¦  «        }t          j	        ||¦  «         d S )Nr  r   rJ   r  rØ  rK   rÙ  )rÛ  r­   c                ó*   — |                       ¦   «         S r*  )Útimetz)rß  s    r-   r  z+test_sqlite_datetime_time.<locals>.<lambda>æ  s   € ÀÇ	Â	ÁÄ€ r,   r¡  rí   r  Fr	  zSELECT * FROM test_timec                ó,   — |                       d¦  «        S r
  r  r  s    r-   r  z+test_sqlite_datetime_time.<locals>.<lambda>í  s   €  §
¢
¨=Ñ 9Ô 9€ r,   )
r   r   r   Úto_pydatetimer  r   r�  r"   rÅ   r
  )r  r„  r^   Útz_timesÚtz_dtrá   r  r'  s           r-   Útest_sqlite_datetime_timer  Þ  så   € à€Dàð MÝ˜˜A˜q‘M”M¥4¨¨1¨b¡>¤>Ð2ˆˆåÐ0¸!ÀÐMÑMÔMˆÝ˜%×-Ò-Ñ/Ô/Ñ0Ô0×4Ò4Ð5KÐ5KÑLÔLˆå	�8 c UÐ	+Ñ	+Ô	+€Bà�9Š9˜+¨4°uˆ9Ñ=Ô=ÀÒBÐBÐBÐBÝ
Ð2°DÑ
9Ô
9€Cà�vŠvÐ9Ð9Ñ:Ô:€HÝÔ˜#˜xÑ(Ô(Ð(Ð(Ð(r,   c                óŒ   — |                       d|› d�¦  «        }|D ]\  }}}}}}	||k    r|c S Œt          d|› d|› d�¦  «        ‚)NzPRAGMA table_info(r(  zTable z	, column z
 not found)rU   rÌ  )
r^   r	  ÚcolumnÚrecsÚcidr¯   ÚctypeÚnot_nullÚdefaultÚpks
             r-   Úget_sqlite_column_typer#  ñ  st   € Ø�<Š<Ð5¨UÐ5Ð5Ð5Ñ6Ô6€DØ37ð ð Ñ/ˆˆT�5˜( G¨RØ�6Š>ˆ>ØˆLˆLˆLð å
Ð@˜eÐ@Ð@¨fÐ@Ð@Ð@Ñ
AÔ
AÐAr,   c                óR  — | }ddg}ddg}t          ||¬¦  «        }|                     d|¬¦  «        dk    sJ ‚|                     d	|dd
i¬¦  «        dk    sJ ‚t          |dd¦  «        dk    sJ ‚t          |d	d¦  «        d
k    sJ ‚d}t          j        t
          |¬¦  «        5  |                     d|dt          i¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d|d
¬¦  «        dk    sJ ‚t          |dd¦  «        d
k    sJ ‚t          |dd¦  «        d
k    sJ ‚d S )Nrä   rå   rD  rE  rí   rF  rµ  rK   rG  ÚSTRINGrH  rù  z!B \(<class 'bool'>\) not a stringrÊ  r§  rK  )r   r�  r#  r   rË  rÌ  Úbool)r„  r^   r-  rÖ   rá   r®  s         r-   Útest_sqlite_test_dtyper'  ù  s£  € Ø€DØ�ˆ:€DØ˜Ð%€DÝ	�4 Ð	&Ñ	&Ô	&€BØ�9Š9˜,¨Dˆ9Ñ1Ô1°QÒ6Ð6Ð6Ð6Ø�9Š9˜-¨T¸#¸x¸ˆ9ÑIÔIÈQÒNÐNÐNÐNõ " $¨°cÑ:Ô:¸iÒGÐGÐGÐGå! $¨°sÑ;Ô;¸xÒGÐGÐGÐGØ
.€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð =ð =Ø
�	Š	�w D°µd°ˆ	Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð �9Š9Ð-°4¸xˆ9ÑHÔHÈAÒMÐMÐMÐMÝ! $Ð(;¸SÑAÔAÀXÒMÐMÐMÐMÝ! $Ð(;¸SÑAÔAÀXÒMÐMÐMÐMÐMÐMs   Â$ CÃCÃCc                óÆ  — | }t          dd g¦  «        t          t          ddd¦  «        d g¦  «        t          dd gd¬¦  «        t          dd g¦  «        dœ}t          |¦  «        }d	}|                     ||¬
¦  «        dk    sJ ‚t	          ||d¦  «        dk    sJ ‚t	          ||d¦  «        dk    sJ ‚t	          ||d¦  «        dk    sJ ‚t	          ||d¦  «        dk    sJ ‚d S )NTrU  r½   rJ   rþ  rž  r÷  rV  rZ  rµ  rK   rW  rù  rX  r?  rY  r2   ÚREAL)r   r   r   r�  r#  )r„  r^   r-  rá   r'  s        r-   Útest_sqlite_notna_dtyper*    s  € Ø€Då˜˜d�|Ñ$Ô$Ý�  q¨!Ñ,Ô,¨dÐ3Ñ4Ô4Ý�q˜$�i xÐ0Ñ0Ô0Ý˜˜d˜Ñ$Ô$ð	ð €Dõ 
�4‰Œ€Bà
€CØ�9Š9˜# 4ˆ9Ñ(Ô(¨AÒ-Ð-Ð-Ð-å! $¨¨VÑ4Ô4¸	ÒAÐAÐAÐAÝ! $¨¨VÑ4Ô4¸ÒCÐCÐCÐCÝ! $¨¨UÑ3Ô3°yÒ@Ð@Ð@Ð@Ý! $¨¨WÑ5Ô5¸Ò?Ð?Ð?Ð?Ð?Ð?r,   c                ó  — | }t          ddgddggddg¬¦  «        }d}t          j        t          |¬	¦  «        5  |                     d
|¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          g d¢¦  «        D ]ˆ\  }}|                     ||¬¦  «        dk    sJ ‚t          j        ||¦  «         t          ddgddggd|g¬¦  «        }d|d›�}|                     ||¬¦  «        dk    sJ ‚t          j        ||¦  «         Œ‰d S )NrJ   rK   rL   rM   r¡  r  rí   z$Empty table or column name specifiedrÊ  r£  rµ  )
ztest_weird_name]ztest_weird_name[ztest_weird_name`ztest_weird_name"ztest_weird_name'z_b.test_weird_name_01-30z"_b.test_weird_name_01-30"Ú99beginswithnumberÚ12345r  Útest_weird_col_namerÃ  )r   r   rË  rÌ  r�  Ú	enumerater   Útable_exists)r„  r^   rá   r®  ÚndxÚ
weird_namer  Úc_tbls           r-   Útest_sqlite_illegal_namesr4  "  sˆ  € à€DÝ	�Q˜�F˜Q ˜FÐ#¨c°3¨ZÐ	8Ñ	8Ô	8€Bà
0€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð %ð %Ø
�	Š	�r˜tˆ	Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %õ %ð	
ð 	
ð 	
ñô ð &ð &‰ˆˆZð �yŠy˜j¨dˆyÑ3Ô3°qÒ8Ð8Ð8Ð8ÝÔ˜ TÑ*Ô*Ð*å˜!˜Q˜ ! Q Ð(°3¸
Ð2CÐDÑDÔDˆØ- cÐ-Ð-Ð-ˆØ�zŠz˜u¨$ˆzÑ/Ô/°1Ò4Ð4Ð4Ð4ÝÔ˜ Ñ%Ô%Ð%Ð%ð)&ð &s   ¹AÁA!Á$A!c                óÞ  — t           dj        t          dj        t          j        dj        t
          dj        t          dj        t          dj        t          d ¦  «        d„ t          j	        dj        t          dj        i	}g }|D ][}t          |t          ¦  «        rt          |¦  «        rd }|t          |¦  «                 }|                      ||¦  «        ¦  «         Œ\| t          |¦  «        z  S )Nz'{}'z{:.8f}z{:d}c                ó   — dS )NÚNULLr+   )rð  s    r-   r  zformat_query.<locals>.<lambda>J  s   € ˜f€ r,   z{:.10f}z'{!s}')r   rô  r‡   rÃ   Ústr_ÚbytesrO   r|  rÁ   r`  r&  r�   r   r  rY  )r   r  Ú_formattersÚprocessed_argsÚargÚ	formatters         r-   Úformat_queryr>  B  sÑ   € å�&”-ÝˆVŒ]Ý
Œ�”ÝˆvŒ}ÝˆxŒÝˆVŒ]ÝˆT‰
Œ
Ð$Ð$Ý
Œ
�IÔ$ÝˆhŒoð
€Kð €NØð .ð .ˆÝ�c�5Ñ!Ô!ð 	¥d¨3¡i¤ið 	ØˆCà¥ S¡	¤	Ô*ˆ	Ø×Ò˜i˜i¨™nœnÑ-Ô-Ð-Ð-à•�~Ñ&Ô&Ñ&Ð&r,   c                óÎ   — t          j        |¦  «        5 }|                     | ¦  «                             ¦   «         }ddd¦  «         n# 1 swxY w Y   |€dnt	          |¦  «        S )z#Replace removed sql.tquery functionN)r   r!   rU   rþ   r;  )rè  rx   rš  r  s       r-   Útqueryr@  Y  s˜   € å	Ô	˜sÑ	#Ô	#ð 3 zØ× Ò  Ñ'Ô'×0Ò0Ñ2Ô2ˆð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3à�;ˆ4ˆ4¥D¨¡I¤IÐ-s   •(A	Á	AÁAc           	     óh  — t          t          j                             d¦  «                             d¦  «        t          t          d¦  «        ¦  «        t          ddd¬¦  «        ¬¦  «        }t          j	        |d	| d
¬¦  «        dk    sJ ‚t          j
        d| ¦  «        }|j        |_        |}t          j        ||¦  «         dgt          |¦  «        z  |d<   |                     ¦   «         }t          t          j        t          |¦  «        ¦  «        t          j        ¬¦  «        dz   }|                     ¦   «         |d<   t          j	        |d| d
¬¦  «        dk    sJ ‚t          j
        d| d¬¦  «        }|                     ¦   «         }||_        d|j        _        t          j        ||¦  «         d S )NrK   ©rJ  rM   ÚABCDú
2000-01-01rJ  rå   ©rÛ  rë  rÜ  r'  Fr	  zselect * from test_tabler¡  Útxtrž  ÚIdxÚtest_table2zselect * from test_table2rÝ  )r   rÃ   r  r  r	  r   r;  r   r   r�  rÒ  r»   rÅ   r
  r¾  r  r‡  rß   r¯   )r„  rµ   r)  r'  Úframe2Únew_idxs         r-   Útest_xsqlite_basicrK  `  s‡  € ÝÝ
Œ	×Ò˜aÑ Ô ×0Ò0°Ñ9Ô9Ý•d˜6‘l”lÑ#Ô#Ý˜¨r¸Ð<Ñ<Ô<ðñ ô €Eõ
 Œ:�e ,°NÈ%ÐPÑPÔPÐTVÒVÐVÐVÐVÝŒ\Ð4°nÑEÔE€Fð ”;€F„Là€HÝÔ˜& %Ñ(Ô(Ð(à�5�3˜u™:œ:Ñ%€Eˆ%�LØ�ZŠZ‰\Œ\€FÝ•B”I�c &™kœkÑ*Ô*µ"´(Ð;Ñ;Ô;¸bÑ@€GØ—L’L‘N”N€Fˆ5�MÝŒ:�f =°nÈEÐRÑRÔRÐVXÒXÐXÐXÐXÝŒ\Ð5°~ÐQVÐWÑWÔW€FØ�zŠz‰|Œ|€HØ€H„NØ€H„NÔÝÔ˜( FÑ+Ô+Ð+Ð+Ð+r,   c           	     ó�  — t          t          j                             d¦  «                             d¦  «        t          t          d¦  «        ¦  «        t          ddd¬¦  «        ¬¦  «        }t          j        |j	        d	<   t          j        |d
¦  «        }|                      ¦   «         }|                     |¦  «         d}|                     ¦   «         D ]#\  }}t          |g|¢R Ž }t!          || ¬¦  «         Œ$|                      ¦   «          t          j        d| ¬¦  «        }|j        |_        t)          j        ||d¬¦  «         d S )NrK   rB  rC  rD  rJ  rå   rE  rÜ  rù  rŒ  z(INSERT INTO test VALUES (%s, %s, %s, %s)rŽ  rø  gü©ñÒMbP?)Úrtol)r   rÃ   r  r  r	  r   r;  r   r   rÀ   r   rð  rT   rU   Úiterrowsr>  r@  r\   rÒ  r»   rÅ   r
  )	r„  rµ   r<  r`   Úinsr  rR   Úfmt_sqlr)  s	            r-   Útest_xsqlite_write_row_by_rowrQ  {  s9  € ÝÝ
Œ	×Ò˜aÑ Ô ×0Ò0°Ñ9Ô9Ý•d˜6‘l”lÑ#Ô#Ý˜¨r¸Ð<Ñ<Ô<ðñ ô €Eõ
 ”v€E„JˆtÑÝ”  vÑ.Ô.€JØ
×
Ò
Ñ
!Ô
!€CØ‡K‚K�
ÑÔÐà
4€CØ—.’.Ñ"Ô"ð ,ð ,‰ˆˆ3Ý˜sÐ) SÐ)Ð)Ð)ˆÝˆw˜NÐ+Ñ+Ô+Ð+Ð+à×ÒÑÔÐåŒ\Ð.°NÐCÑCÔC€FØ”;€F„LÝÔ˜& %¨dÐ3Ñ3Ô3Ð3Ð3Ð3r,   c           	     óÊ  — t          t          j                             d¦  «                             d¦  «        t          t          d¦  «        ¦  «        t          ddd¬¦  «        ¬¦  «        }t          j	        |d	¦  «        }|  
                    ¦   «         }|                     |¦  «         d
}|j        d         }t          j        | ¦  «        5 }|                     |t          |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      ¦   «          t          j        d| ¦  «        }|j        d d…         |_        t%          j        ||d d…         ¦  «         d S )NrK   rB  rC  rD  rJ  rå   rE  rÜ  rŒ  z$INSERT INTO test VALUES (?, ?, ?, ?)r   rø  rJ   )r   rÃ   r  r  r	  r   r;  r   r   rð  rT   rU   rÀ   r!   rY  r\   rÒ  r»   rÅ   r
  )r„  rµ   r<  r`   rO  rR   rš  r)  s           r-   Útest_xsqlite_executerS  ’  su  € ÝÝ
Œ	×Ò˜aÑ Ô ×0Ò0°Ñ9Ô9Ý•d˜6‘l”lÑ#Ô#Ý˜¨r¸Ð<Ñ<Ô<ðñ ô €Eõ
 ”  vÑ.Ô.€JØ
×
Ò
Ñ
!Ô
!€CØ‡K‚K�
ÑÔÐØ
0€Cà
Œ*�QŒ-€CÝ	Ô	˜~Ñ	.Ô	.ð ,°*Ø×Ò˜3¥ c¡
¤
Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,à×ÒÑÔÐåŒ\Ð.°Ñ?Ô?€FØ”;˜r ˜r”?€F„LÝÔ˜& %¨¨¨¤)Ñ,Ô,Ð,Ð,Ð,s   Ã$C>Ã>DÄDc           	     óv  — t          t          j                             d¦  «                             d¦  «        t          t          d¦  «        ¦  «        t          ddd¬¦  «        ¬¦  «        }t          j	        |d	¦  «        }| 
                    ¦   «         }|D ]D}|                     d
¦  «        }t          |¦  «        dk    r|d         dk    r|d         dk    sJ ‚ŒEt          j	        |d	ddg¬¦  «        }| 
                    ¦   «         }d|v sJ ‚|                      ¦   «         }|                     |¦  «         d S )NrK   rB  rC  rD  rJ  rå   rE  rÜ  rŒ  ú r   rä   rJ   ÚDATETIME)rà   zPRIMARY KEY ("A", "B"))r   rÃ   r  r  r	  r   r;  r   r   rð  Ú
splitlinesr”  r¾  rT   rU   )r„  rµ   r<  ÚlinesÚlineÚtokensr`   s          r-   Útest_xsqlite_schemar[  §  s6  € ÝÝ
Œ	×Ò˜aÑ Ô ×0Ò0°Ñ9Ô9Ý•d˜6‘l”lÑ#Ô#Ý˜¨r¸Ð<Ñ<Ô<ðñ ô €Eõ
 ”  vÑ.Ô.€JØ×!Ò!Ñ#Ô#€EØð +ð +ˆØ—’˜C‘”ˆÝˆv‰;Œ;˜!ÒÐ  q¤	¨SÒ 0Ð 0Ø˜!”9 
Ò*Ð*Ð*Ð*øå”  v°S¸#°JÐ?Ñ?Ô?€JØ×!Ò!Ñ#Ô#€EØ# zÐ1Ð1Ð1Ð1Ø
×
Ò
Ñ
!Ô
!€CØ‡K‚K�
ÑÔÐÐÐr,   c                ó¤  — d}|                       ¦   «         }|                     |¦  «         t          j        | ¦  «        5 }|                     d¦  «         |                     d¦  «         t	          j        t          j        d¬¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Núc
    CREATE TABLE test
    (
    a TEXT,
    b TEXT,
    c REAL,
    PRIMARY KEY (a, b)
    );
    ú,INSERT INTO test VALUES('foo', 'bar', 1.234)z,INSERT INTO test VALUES('foo', 'baz', 2.567)r}  rÊ  z(INSERT INTO test VALUES('foo', 'bar', 7))rT   rU   r   r!   r   rË  rŒ  )r„  r<  r`   rš  s       r-   Útest_xsqlite_execute_failr_  »  sq  € ð€Jð ×
Ò
Ñ
!Ô
!€CØ‡K‚K�
ÑÔÐå	Ô	˜~Ñ	.Ô	.ð K°*Ø×ÒÐIÑJÔJÐJØ×ÒÐIÑJÔJÐJåŒ]�3Ô,Ð4MÐNÑNÔNð 	Kð 	KØ×ÒÐIÑJÔJÐJð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kð	Kð Kð Kñ Kô Kð Kð Kð Kð Kð Kð Kð Køøøð Kð Kð Kð Kð Kð Ks7   Á ACÂB-Â!CÂ-B1	Â1CÂ4B1	Â5CÃC	ÃC	c                 óò  — d} t          j        t          j        d¦  «        ¦  «        5 }|                     ¦   «         }|                     | ¦  «         t          j        |¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d}t          j	        t          j
        |¬¦  «        5  t          d|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr]  r  r^  z$Cannot operate on a closed database.rÊ  rø  rŽ  )r€  r�  r‚   r¥   rT   rU   r   r!   r   rË  rQ  r@  )r<  r^   r`   rš  r®  s        r-   Ú&test_xsqlite_execute_closed_connectionra  Ð  sÆ  € ð€Jõ 
Ô	�GœO¨JÑ7Ô7Ñ	8Ô	8ð O¸DØ�kŠk‰mŒmˆØ�Š�JÑÔÐåÔ" 4Ñ(Ô(ð 	O¨JØ×ÒÐMÑNÔNÐNð	Oð 	Oð 	Oñ 	Oô 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oøøøð 	Oð 	Oð 	Oð 	Oð	Oð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oð 1€CÝ	Œ•wÔ/°sÐ	;Ñ	;Ô	;ð /ð /ÝÐ#¨Ð.Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /sG   ©>B Á'B	Á=B Â	B	ÂB ÂB	ÂB Â B$Â'B$ÃC,Ã,C0Ã3C0c                óˆ   — t          dt          j        d¦  «        i¦  «        }t          j        || dd¬¦  «        dk    sJ ‚d S )NÚFromr½   ÚtestkeywordsF©rx   r¯   r»   )r   rÃ   Úonesr   r�  )r„  rá   s     r-   Ú$test_xsqlite_keyword_as_column_namesrg  æ  sG   € Ý	�F�BœG A™JœJÐ'Ñ	(Ô	(€BÝŒ:�b˜n°>ÈÐOÑOÔOÐSTÒTÐTÐTÐTÐTÐTr,   c                ó*  — t          ddgdg¬¦  «        }t          j        || dd¬¦  «        dk    sJ ‚| }t          d„ |                     d	¦  «        D ¦   «         ¦  «        }|d
k    sJ ‚t          j        d	|¦  «        }t          j        ||¦  «         d S )NrJ   rK   Úc0rí   Úmono_dfFre  c              3  ó&   K  — | ]}|d          V — ŒdS )r   Nr+   )rQ   Úmy_c0s     r-   ú	<genexpr>z4test_xsqlite_onecolumn_of_integer.<locals>.<genexpr>ó  s&   è è € ÐOÐO˜u�%˜”(ÐOÐOÐOÐOÐOÐOr,   zselect * from mono_dfrL   )r   r   r�  ÚsumrU   rÒ  rÅ   r
  )r„  rj  Úcon_xÚthe_sumr)  s        r-   Ú!test_xsqlite_onecolumn_of_integerrq  ë  s§   € õ ˜˜A˜¨¨Ð/Ñ/Ô/€GÝŒ:�g >¸	ÈÐOÑOÔOÐSTÒTÐTÐTÐTà€EÝÐOÐO¨¯ªÐ6MÑ(NÔ(NÐOÑOÔOÑOÔO€Gà�aŠ<ˆ<ˆ<ˆ<åŒ\Ð1°5Ñ9Ô9€FÝÔ˜& 'Ñ*Ô*Ð*Ð*Ð*r,   c                óä  — t          ddgddgdœ¦  «        }t          g d¢g d¢dœ¦  «        }d}d	|› �}d
}t          j        t          |¬¦  «        5  t	          j        || |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          || ¦  «         t	          j        || |d¬¦  «         d}t          j        t          |¬¦  «        5  t	          j        || |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        || |dd¬¦  «         t          || ¬¦  «        ddgk    sJ ‚t	          j        || |dd¬¦  «        dk    sJ ‚t          || ¬¦  «        g d¢k    sJ ‚t          || ¦  «         t	          j        || |dd¬¦  «        dk    sJ ‚t          || ¬¦  «        ddgk    sJ ‚t	          j        || |dd¬¦  «        dk    sJ ‚t          || ¬¦  «        g d¢k    sJ ‚t          || ¦  «         d S )NrJ   rK   rä   rå   rß  rp  )ræ   rç   ÚEÚtable_if_existsr°  z*'notvalidvalue' is not valid for if_existsrÊ  Únotvalidvalue)rµ   rx   r¯   rŽ  rÃ  z&Table 'table_if_exists' already existsr§  F)rµ   rx   r¯   rŽ  r»   rŽ  rþ  r#  rL   )©rL   ræ   ©rM   rç   ©r½   rs  r  )rþ  r#  rv  rw  rx  )r   r   rË  rÌ  r   r�  r  r@  )r„  Údf_if_exists_1Údf_if_exists_2rË   Ú
sql_selectr®  s         r-   Útest_xsqlite_if_existsr|  û  s\  € Ý¨¨A¨¸¸c¸
ÐCÐCÑDÔD€NÝ¨	¨	¨	¸?¸?¸?ÐKÐKÑLÔL€NØ"€JØ. *Ð.Ð.€Jà
6€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 
ð 
ÝŒ
Ø ØØØ%ð		
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ ˆz˜>Ñ*Ô*Ð*õ „JØ .°zÈVðñ ô ð ð 3€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 
ð 
ÝŒ
Ø ØØØð		
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ „JØØØØØðñ ô ð õ �* .Ð1Ñ1Ô1°hÀÐ5IÒIÐIÐIÐIåŒ
Ø ØØØØð	
ñ 	
ô 	
ð ò	ð 	ð 	ð 	õ �* .Ð1Ñ1Ô1Ð5SÐ5SÐ5SÒSÐSÐSÐSÝˆz˜>Ñ*Ô*Ð*õ 	Œ
Ø ØØØØð	
ñ 	
ô 	
ð ò	ð 	ð 	ð 	õ �* .Ð1Ñ1Ô1°hÀÐ5IÒIÐIÐIÐIåŒ
Ø ØØØØð	
ñ 	
ô 	
ð ò	ð 	ð 	ð 	õ �* .Ð1Ñ1Ô1ð 6ð 6ð 6ò ð ð ð õ ˆz˜>Ñ*Ô*Ð*Ð*Ð*s$   ÁA6Á6A:Á=A:ÃC+Ã+C/Ã2C/)rB   r   )r†   r‡   )rš   r›   )rš   r›   r†   r‡   )rµ   r   )rË   r‡   )rË   r‡   r^   r  )r
  r‡   r^   r  rÕ  r*  (+  Ú
__future__r   r€  rW   r   r   r   r   Údecimalr   rÕ   r	   Úpathlibr   r‚   Útypingr   rS  rº  rÃ   r   Úpandas._configr   Úpandas._libsr   Úpandas.compatr   Úpandas.compat._optionalr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr¨  r   r   r   r   r   r   r   r   r   r   Úpandas._testingÚ_testingrÅ   Úpandas.util.versionr   Ú	pandas.ior   Úpandas.io.sqlr   r   r   r    r!   r"   r#   r=   r˜  ÚfilterwarningsÚ
single_cpuÚ
pytestmarkÚfixturer.   rA   rc   rf   ry   r…   r™   rž   r    r¦   r´   rÊ   rÓ   rØ   rš   râ   rð   rò   r  r  r  r  r(  r,  r/  r2  r5  r7  r=  r?  rB  rD  rK  rT  r]  r_  ra  re  rg  ri  rk  rm  ro  rq  rs  ru  rx  rz  r}  r„  r†  r‰  Úparamr  Úmysql_connectableÚmysql_connectable_irisÚmysql_connectable_typesÚpostgresql_connectableÚpostgresql_connectable_irisÚpostgresql_connectable_typesÚsqlite_connectableÚsqlite_connectable_irisÚsqlite_connectable_typesÚsqlalchemy_connectableÚsqlalchemy_connectable_irisÚsqlalchemy_connectable_typesÚadbc_connectableÚadbc_connectable_irisÚadbc_connectable_typesÚall_connectableÚall_connectable_irisÚall_connectable_typesÚparametrizer’  rœ  r¯  r³  rÀ  rÈ  rÍ  rÕ  rÛ  rã  ré  rë  rî  rø  r  r  r*  r?  rG  rM  rW  r\  r^  re  rh  rj  rl  rp  rr  rv  r|  r  rƒ  r‹  r“  r–  rœ  r¦  rÒ  r­  r±  r»  r¾  rÉ  rÓ  rá  r|  rO   rè  rë  rò  rõ  rû  r   r  r  r  r!  r%  r*  r.  r0  r4  r8  r=  rG  r?   r¯   rX  r\  r_  Úskip_if_installedrc  ri  rn  rr  ru  rw  rŠ  r�  r�  r—  r¥  r©  r¬  rµ  rº  r¼  r¾  rÂ  rÅ  rÈ  rË  rÎ  rÑ  rÓ  rÖ  rä  rè  rò  rö  rù  rÿ  r  r  r  r  r!  r$  r1  r5  r<  r>  rS  r]  rk  rx  Úinfr€  r˜  rœ  rŸ  r¤  r§  r©  r¶  r¸  r»  r³  r´  r×  Ú
no_defaultrÙ  rÝ  rà  rî  ró  rú  rþ  r   r  r  r  r  r  r#  r'  r*  r4  r>  r@  rK  rQ  rS  r[  r_  ra  rg  rq  r|  r+   r,   r-   ú<module>rª     so%  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 
€
€
€
ðð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø  Ð  Ð  Ð  Ð  Ð  Ø €€€à Ð Ð Ð Ø €€€à -Ð -Ð -Ð -Ð -Ð -à Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ø >Ð >Ð >Ð >Ð >Ð >Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ØÐÐÐð „K×ÒØGñô ð „KÔð	€
ð „ðð ñ „ðð8ð ð ñ2ð ð ð ñDð ð ð ñ>ð ð ð ð "ð "ð "ñ&ð ð ð ñDð ð ð ñ<ð ð ð ñ2ð ð ð ð(*Mð *Mð *MñZ-ð -ð -ð -ñ;ð ;ð ;ð ;ð8 „ðð ñ „ðð
 „ðð ñ „ðð6 „ð,ð ,ñ „ð,ð  „ð ,ð  ,ñ „ð ,ðF „ð,ð ,ñ „ð,ð2ð 2ð 2ð23ð 3ð 3ñ0.ð .ð .ð .ñ&"ð "ð "ð "ð. „ðð ñ „ðð  „ð ð  ñ „ð ð „ð ð  ñ „ð ð
 „ðð ñ „ðð
 „ðð ñ „ðð
 „ðð ñ „ðð
 „ðð ñ „ðð „ð&ð &ñ „ð&ð „ð&ð &ñ „ð&ð
 „ðð ñ „ðð
 „ðð ñ „ðð „ðð ñ „ðð$ „ðð ñ „ðð  „ðð ñ „ðð
 „ðð ñ „ðð
 „ð$ð $ñ „ð$ð
 „ðð ñ „ðð „ðð ñ „ðð
 „ðð ñ „ðð „ðð ñ „ðð „ðð ñ „ðð
 „ðð ñ „ðð „ðð ñ „ðð
 „ðð ñ „ðð
 „ðð ñ „ðð „ðð ñ „ðð" „ðð ñ „ðð* „ðð ñ „ðð „ðð ñ „ðð „ðð ñ „ðð €F„LÐ'¨v¬{¬~Ð>Ñ>Ô>Ø€F„LÐ%¨V¬[¬^Ð<Ñ<Ô<ðÐ ð €F„LÐ,°F´K´NÐCÑCÔCØ€F„LÐ*°&´+´.ÐAÑAÔAðÐ ð €F„LÐ-°V´[´^ÐDÑDÔDØ€F„LÐ+°6´;´>ÐBÑBÔBðÐ ð €F„LÐ-°V´[´^ÐDÑDÔDØ€F„LÐ+°6´;´>ÐBÑBÔBðÐ ð €F„LÐ2¸&¼+¼.ÐIÑIÔIØ€F„LÐ0¸¼¼ÐGÑGÔGðÐ ð €F„LÐ3¸6¼;¼>ÐJÑJÔJØ€F„LÐ1¸¼¼ÐHÑHÔHð Ð ð
ð ð Ð ðð ð Ð ðð ð Ð ð +Ð-CÑCÐFXÑXÐ ð Ð8Ñ8Ð;RÑRð ð
 Ð:Ñ:Ð=UÑUð ð
 Ø€F„LÐ'¨v¬{¬~Ð>Ñ>Ô>ðÐ ð €F„LÐ'¨v¬{¬~Ð>Ñ>Ô>ØðÐ ð €F„LÐ(°´´Ð?Ñ?Ô?ØðÐ ð QÐ*ÐPÐ,<ÐPÐ?OÐP€ðØ ðàðð ðÐ ðØ!ðàðð ðÐ ð „×Ò˜ Ñ1Ô1ðOð Oñ 2Ô1ðOð „×Ò˜ Ñ1Ô1ðLð Lñ 2Ô1ðLð$ „×Ò˜ Ñ1Ô1ðQð Qñ 2Ô1ðQðB „×Ò˜ Ñ1Ô1ðMð Mñ 2Ô1ðMð( „×Ò˜ Ñ1Ô1Ø„×Ò˜ D¨' ?Ñ3Ô3ð>ð >ñ 4Ô3ñ 2Ô1ð>ð „×Ò˜ Ñ1Ô1Ø„×ÒØÐMÐMÐMñô ðMð Mñô ñ 2Ô1ðMð „×Ò˜ Ñ1Ô1ðJð Jñ 2Ô1ðJð „×Ò˜Ð!5Ñ6Ô6ð.ð .ñ 7Ô6ð.ð „×Ò˜Ð!5Ñ6Ô6ð.ð .ñ 7Ô6ð.ð$ „×Ò˜Ð!<Ñ=Ô=ðð ñ >Ô=ðð6 „×Ò˜Ð!5Ñ6Ô6ð!ð !ñ 7Ô6ð!ð& „×Ò˜Ð!<Ñ=Ô=ð!ð !ñ >Ô=ð!ð „×Ò˜Ð!<Ñ=Ô=ð	!ð 	!ñ >Ô=ð	!ð „×Ò˜Ð!7Ñ8Ô8ð>ð >ñ 9Ô8ð>ð" „×Ò˜Ð!6Ñ7Ô7ðFð Fñ 8Ô7ðFð> „×Ò˜Ð!2Ñ3Ô3ð!$ð !$ñ 4Ô3ð!$ðH „×Ò˜Ð!7Ñ8Ô8Ø„×ÒÐ)¨A¨z¨?Ñ;Ô;ð",ð ",ñ <Ô;ñ 9Ô8ð",ðJ „×Ò˜Ð!7Ñ8Ô8ð65ð 65ñ 9Ô8ð65ðr „×Ò˜ Ñ1Ô1ð-ð -ñ 2Ô1ð-ð. „×Ò˜Ð!2Ñ3Ô3ð15ð 15ñ 4Ô3ð15ðh „×Ò˜Ð!7Ñ8Ô8ð ,ð  ,ñ 9Ô8ð ,ðF,ð ,ð ,ð2=ð =ð =ð „×Ò˜Ð!5Ñ6Ô6ð!ð !ñ 7Ô6ð!ð$ „×Ò˜Ð!5Ñ6Ô6ð!ð !ñ 7Ô6ð!ð& „×Ò˜Ð!5Ñ6Ô6ð!ð !ñ 7Ô6ð!ð$ „×Ò˜Ð!5Ñ6Ô6ð!ð !ñ 7Ô6ð!ð „×Ò˜Ð!5Ñ6Ô6ð	=ð 	=ñ 7Ô6ð	=ð „×Ò˜ Ñ1Ô1ð.ð .ñ 2Ô1ð.ð „×Ò˜ Ñ1Ô1ðGð Gñ 2Ô1ðGð „×Ò˜ Ñ1Ô1ð#ð #ñ 2Ô1ð#ð" „×Ò˜ Ñ1Ô1ð#ð #ñ 2Ô1ð#ð$ „×Ò˜ Ñ1Ô1ð	/ð 	/ñ 2Ô1ð	/ð „×Ò˜ Ñ1Ô1ð	,ð 	,ñ 2Ô1ð	,ð „×Ò˜ Ñ1Ô1ð/ð /ñ 2Ô1ð/ð$ „×Ò˜ Ñ1Ô1ð/ð /ñ 2Ô1ð/ð* „×Ò˜Ð!5Ñ6Ô6ð<ð <ñ 7Ô6ð<ð „×Ò˜Ð!6Ñ7Ô7ð4ð 4ñ 8Ô7ð4ðn „×Ò˜Ð!6Ñ7Ô7Ø„×Ò˜ 7¨HÐ"5Ñ6Ô6Ø„×ÒØà	ŒÐ,Ð.HÐIØ	Œ�w Ð/àÔØ!Ø&ð	
ð
 
Ô	˜W |Ð5ð	ñô ð!,ð !,ñô ñ 7Ô6ñ 8Ô7ð!,ðH „×Ò˜Ð!6Ñ7Ô7ð?ð ?ñ 8Ô7ð?ð „×Ò˜ Ñ1Ô1ð+4ð +4ñ 2Ô1ð+4ð\ „×Ò˜ Ñ1Ô1ð
;ð 
;ñ 2Ô1ð
;ð „×Ò˜ Ñ1Ô1Ø„×ÒØ%ðð ð ñô ð"(ð (ñ#ô ñ 2Ô1ð$(ð$ „×Ò˜ Ñ1Ô1ðF
ð F
ñ 2Ô1ðF
ðR „×Ò˜ Ñ1Ô1ð=ð =ñ 2Ô1ð=ð& „×Ò˜ Ñ1Ô1Ø„×ÒØàØØØ˜ÐÐð	ñô ð,ð ,ñô ñ 2Ô1ð,ð, „×Ò˜ Ñ1Ô1ðNð Nñ 2Ô1ðNð „×Ò˜ Ñ1Ô1ð
"ð 
"ñ 2Ô1ð
"ð „×Ò˜ Ñ1Ô1ð.ð .ñ 2Ô1ð.ð „×Ò˜ Ñ1Ô1ð#ð #ñ 2Ô1ð#ð. „×Ò˜ Ñ1Ô1ð-ð -ñ 2Ô1ð-ð8 „×Ò˜ Ñ1Ô1ð-*ð -*ñ 2Ô1ð-*ð` „×Ò˜ Ñ1Ô1ð#ð #ñ 2Ô1ð#ð@ „×Ò˜ Ñ1Ô1ð:ð :ñ 2Ô1ð:ð „×Ò˜ Ñ1Ô1ð#ð #ñ 2Ô1ð#ð( „×Ò˜ Ñ1Ô1ð&ð &ñ 2Ô1ð&ð. „×Ò˜ Ñ1Ô1ð,ð ,ñ 2Ô1ð,ð: „×Ò˜ Ñ1Ô1ð+ð +ñ 2Ô1ð+ð „×Ò˜ Ñ1Ô1ð1ð 1ñ 2Ô1ð1ð, „×Ò˜Ð!5Ñ6Ô6ð4ð 4ñ 7Ô6ð4ð$>ð >ð >ð2 „×Ò˜ Ñ1Ô1ð;ð ;ñ 2Ô1ð;ð. „×Ò˜Ð!7Ñ8Ô8ðAð Añ 9Ô8ðAð „×Ò˜Ð!7Ñ8Ô8Ø„×ÒØàØØØØØØØØØØØØØØ	˜(˜"œ( 3™-œ-Ô,°Ò7Ð7ˆhˆh¸YÐGðñô ð(ð ñ)ô ñ 9Ô8ð*ð „×Ò˜Ð!7Ñ8Ô8Ø„×Ò˜ X¨xÐ$8Ñ9Ô9ð4ð 4ñ :Ô9ñ 9Ô8ð4ð4ð 4ð 4ð& €Ô�hÑÔð4ð 4ñ  Ôð4ð „×Ò˜Ð!<Ñ=Ô=ð,ð ,ñ >Ô=ð,ð „×Ò˜Ð!<Ñ=Ô=ð(ð (ñ >Ô=ð(ð „×Ò˜ Ñ1Ô1ð#ð #ñ 2Ô1ð#ð
/ð 
/ð 
/ð €Ô�lÑ#Ô#ð1ð 1ñ $Ô#ð1ð €Ô�lÑ#Ô#ð+ð +ñ $Ô#ð+ð #ð #ð #ð"ð "ð "ð1ð 1ð 1ð$ „×Ò˜Ð!7Ñ8Ô8ð+ð +ñ 9Ô8ð+ð( „×Ò˜Ð!7Ñ8Ô8ð0ð 0ñ 9Ô8ð0ð2 „×Ò˜ oÑ6Ô6ð/ð /ñ 7Ô6ð/ð „×Ò˜ oÑ6Ô6ð!:ð !:ñ 7Ô6ð!:ðH „×Ò˜ Ñ1Ô1ð/ð /ñ 2Ô1ð/ð* „×Ò˜Ð!5Ñ6Ô6ð<ð <ñ 7Ô6ð<ð „×Ò˜Ð!<Ñ=Ô=ð!ð !ñ >Ô=ð!ð „×Ò˜Ð!<Ñ=Ô=ðXð Xñ >Ô=ðXð „×Ò˜Ð!<Ñ=Ô=ð:ð :ñ >Ô=ð:ð „×Ò˜Ð!=Ñ>Ô>ð=ð =ñ ?Ô>ð=ð, „×Ò˜Ð!7Ñ8Ô8ð&ð &ñ 9Ô8ð&ð „×Ò˜Ð!=Ñ>Ô>ð<ð <ñ ?Ô>ð<ð „×Ò˜Ð!7Ñ8Ô8Ø„×Ò˜¨°Ð/@Ð(AÑBÔBð
*ð 
*ñ CÔBñ 9Ô8ð
*ð „×Ò˜Ð!7Ñ8Ô8ð	*ð 	*ñ 9Ô8ð	*ð „×Ò˜Ð!7Ñ8Ô8ð-ð -ñ 9Ô8ð-ð „×Ò˜Ð!7Ñ8Ô8ð,ð ,ñ 9Ô8ð,ð< „×Ò˜Ð!7Ñ8Ô8ð	,ð 	,ñ 9Ô8ð	,ð „×Ò˜Ð!7Ñ8Ô8ð	?ð 	?ñ 9Ô8ð	?ð „×Ò˜Ð!=Ñ>Ô>ð?ð ?ñ ?Ô>ð?ð> „×Ò˜Ð!7Ñ8Ô8ð,ð ,ñ 9Ô8ð,ð2 „×Ò˜Ð!7Ñ8Ô8ð,ð ,ñ 9Ô8ð,ð0 „×Ò˜Ð!7Ñ8Ô8ð	-ð 	-ñ 9Ô8ð	-ð „×Ò˜Ð!7Ñ8Ô8ð#ð #ñ 9Ô8ð#ð4 „×Ò˜Ð!7Ñ8Ô8ðHð Hñ 9Ô8ðHð „×Ò˜Ð!7Ñ8Ô8ð&ð &ñ 9Ô8ð&ð „×Ò˜Ð!7Ñ8Ô8ð&ð &ñ 9Ô8ð&ð" „×Ò˜Ð!7Ñ8Ô8ð&ð &ñ 9Ô8ð&ð$ „×Ò˜ Ñ1Ô1ð$ð $ñ 2Ô1ð$ðN „×Ò˜ Ñ1Ô1ð ð  ñ 2Ô1ð ð „×Ò˜ Ñ1Ô1ð&ð &ñ 2Ô1ð&ðR „×Ò˜Ð!7Ñ8Ô8ñNð Nñ 9Ô8ðNð: „×Ò˜Ð!7Ñ8Ô8ñ&&ð &&ñ 9Ô8ð&&ðR „×Ò˜Ð!7Ñ8Ô8ñ!5ð !5ñ 9Ô8ð!5ðH „×Ò˜Ð!7Ñ8Ô8ñ08ð 08ñ 9Ô8ð08ðf „×Ò˜Ð!7Ñ8Ô8ñ ð  ñ 9Ô8ð ðF „×Ò˜Ð!7Ñ8Ô8Ø„×ÒÙÙˆb�fˆXÐ™ "¥&  	Ð*°bµf°W°IÉÈÑ,PÐ,PÐQñô ñ!ð !ñ	ô ñ 9Ô8ñ
!ð( „×Ò˜Ð!7Ñ8Ô8ñ"(ð "(ñ 9Ô8ñ"(ðJ „×Ò˜ Ñ1Ô1ñNð Nñ 2Ô1ñNð „×Ò˜ Ñ1Ô1ñ#ð #ñ 2Ô1ñ#ð „×Ò˜Ð!7Ñ8Ô8ñ'ð 'ñ 9Ô8ñ'ð „×Ò˜ Ñ1Ô1ñ'ð 'ñ 2Ô1ñ'ñ
Fð 
Fñ 
Fð „×Ò˜ Ñ1Ô1Ø„×Ò™¡*Ñ.>Ð!?Ñ@Ô@ñ'4ð '4ñ AÔ@ñ 2Ô1ñ'4ðT „×Ò˜ Ñ1Ô1Ø„×Ò™¡*Ñ.>Ð!?Ñ@Ô@ñ+4ð +4ñ AÔ@ñ 2Ô1ñ+4ð\ „×Ò˜ Ñ1Ô1Ø„×Ò™Ð!QÑ!QÐ!QÑRÔRñ>ð >ñ SÔRñ 2Ô1ñ>ð „ññ ð ñ „ñð „ñ)ð )ñ „ñ)ðX „×Ò˜ Ñ1Ô1ñ0ð 0ñ 2Ô1ñ0ð* „×Ò˜ Ñ1Ô1Ø„×Ò™¨3­>Ñ;KÐ*LÑMÔMØ„×Ò™¡*Ñ.>Ð!?Ñ@Ô@ñ,ð ,ñ AÔ@ñ NÔMñ 2Ô1ñ,ñ27ð 7ñ 7ñGð Gñ Gñ$7ð $7ñ $7ñN,ð ,ñ ,ñ$2ð 2ñ 2ð „ñð ñ „ññ=ð =ñ =ð „„ñGDð GDñ „ñGDðT „„ñ!'ð !'ñ „ñ!'ñH:ð :ñ :ñ/ð /ñ /ð „×Ò™¡e©T ]Ñ3Ô3ñ)ð )ñ 4Ô3ñ)ñ$Bð Bñ BñNð Nñ Nñ,@ð @ñ @ñ&&ð &ñ &ñ@'ð 'ñ 'ñ..ñ .ð .ñ .ñ,ð ,ñ ,ñ64ð 4ñ 4ñ.-ð -ñ -ñ*ð ñ ñ(Kð Kñ Kñ*/ð /ñ /ñ,Uð Uñ Uñ
+ð +ñ +ñ O+ð O+ñ O+ð O+ð O+r,   