§
    ªöÉg¹6 ã                  óZ2  — d dl mZ d dlZd dlm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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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l.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< erd dl=Z=ej>         ?                    d¦  «        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¦  «         ejv        ddej>        jw        ¬R¦  «        gZ… ejv        deej>        jw        ¬R¦  «         ejv        dfej>        jw        ¬R¦  «        gZ†e�dggz   e„z   Z‡e‚dhgz   e…z   Zˆeƒdigz   e†z   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>         Š                    dqdrdsg¦  «        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.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¡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šg d›¢¦  «        ej>         Š                    dœe4j³        d�džfe4j³        dŸd fe4j;        d�džfe4j<        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Ê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Ñej>         Š                    d.e‡¦  «        dÔ„ ¦   «         ZÒ ejÓ        dÕ¦  «        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 ¦  «        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{¦  «        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�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�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)Úclosing)ÚdateÚdatetimeÚtimeÚ	timedelta)ÚStringIO©ÚPath)ÚTYPE_CHECKING)Úlib)Úpa_version_under13p0Úpa_version_under14p1)Úimport_optional_dependency)
Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚconcatÚ
date_rangeÚisnaÚto_datetimeÚto_timedelta)ÚArrowStringArrayÚStringArray)Ú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-   ó    úd/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/pandas/tests/io/test_sql.pyÚsql_stringsr0   E   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éÈ   )	Ú
sqlalchemyr2   r3   r4   r5   r6   r7   r   Ú__version__)
r?   r2   r3   r4   r5   r6   r7   ÚdtypeÚmetadatar8   s
             r/   Úiris_table_metadatarC   b   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©ÚconnrD   ÚstmtÚcurÚcsvfilerZ   Úrecordss          r/   Úcreate_and_load_iris_sqlite3re   {   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
        )rF   rG   z+INSERT INTO iris VALUES($1, $2, $3, $4, $5)c           	     óÀ   — g | ][}t          |d          ¦  «        t          |d         ¦  «        t          |d         ¦  «        t          |d         ¦  «        |d         f‘Œ\S rK   rP   rR   s     r/   rU   z3create_and_load_iris_postgresql.<locals>.<listcomp>¬   sg   € ð 	ð 	ð 	ð õ ˜#˜aœ&‘M”MÝ˜#˜aœ&‘M”MÝ˜#˜aœ&‘M”MÝ˜#˜aœ&‘M”MØ˜”Fðð	ð 	ð 	r.   )rV   rW   rX   rY   rZ   r[   r\   r^   r_   s          r/   Úcreate_and_load_iris_postgresqlrh   �   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   ©ÚinsertrF   rG   c                óJ   •— g | ]}t          t          ‰|¦  «        ¦  «        ‘Œ S r-   ©ÚdictÚzip)rS   rT   Úheaders     €r/   rU   z(create_and_load_iris.<locals>.<listcomp>Ä   s+   ø€ Ð;Ð;Ð;¨S•$•s˜6 3Ñ'Ô'Ñ(Ô(Ð;Ð;Ð;r.   T©Ú
checkfirst©Úbind)r?   rk   rC   rX   rY   rZ   r[   ÚvaluesÚbeginÚdropÚcreaterW   )
r`   rD   rk   r8   rc   rZ   Úparamsra   Úconrp   s
            @r/   Úcreate_and_load_irisr{   ¼   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Ú
ConnectionrV   rW   r   r^   r?   r‚   rv   )r`   ra   rb   Úadbcr‚   rz   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ÚBooleanr2   ÚDateTimer4   ÚIntegerr5   r7   r'   ÚtypesÚTextColÚDateColÚ
IntDateColÚIntDateOnlyColÚFloatColÚIntColÚBoolColÚIntColWithNullÚBoolColWithNull)	r?   r‹   rŒ   r2   r�   r4   rŽ   r5   r7   )rˆ   r‹   rŒ   r2   r�   r4   rŽ   r5   r7   Ú	date_typeÚ	bool_typerB   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…   rV   rW   r\   r^   )r`   rœ   ra   Úins_stmtrb   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)
                )rV   rW   r\   r^   )r`   rœ   rb   ra   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   rj   ©ÚEngineTrq   rs   )r?   rk   Úsqlalchemy.enginer¥   r›   ru   rƒ   Úconnectrv   rw   rx   rW   )r`   rœ   rˆ   rk   r¥   r�   ra   s          r/   Úcreate_and_load_typesr¨   5  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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¬¦  «        S )Nr   )r2   r�   r5   r7   rk   r¤   ÚdatetzÚDateColWithTzT)Útimezonez2000-01-01 00:00:00-08:00z2000-06-01 00:00:00-07:00rq   rs   z2000-01-01 08:00:00ÚUTC©Útzz2000-06-01 07:00:00©Úname)r?   r2   r�   r5   r7   rk   r¦   r¥   ru   rƒ   r§   rv   rw   rx   rW   r   r   )r`   r2   r�   r5   r7   rk   r¥   rB   rª   Údatetz_datara   Úexpected_datas               r/   Úcreate_and_load_postgres_datetzr´   I  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Ð6sJ   Â
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µ   ÚpytyperT   s      r/   Úcheck_iris_framerÊ   v  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…   rV   rW   Úfetchoner?   rÍ   r¦   r¥   r‰   r§   Úexec_driver_sqlÚ
scalar_oneÚdispose)r`   rË   ra   r†   rb   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ÚdatarY   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$@rL   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‰   Úint64rQ   rÜ   )r   ÚkeysÚastype)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-   )rS   Úviews     r/   rU   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…   rW   Ú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-   )rS   r
  s     r/   rU   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…   rW   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…   rW   r   Ú_get_valid_sqlite_namer^   r   rV   rv   r    Ú
drop_table)rË   r`   r†   rb   rz   Údbs         r/   r  r  0  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…   rW   r   r  r^   r   rV   rÒ   rˆ   Úidentifier_preparerÚquote_identifierr‚   rv   )r  r`   r?   r†   rb   Úquoted_viewra   rz   s           r/   Ú	drop_viewr  C  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)  Z  sÐ   è è € åÔ$ \Ñ2Ô2€JÝÔ! )Ñ,Ô,€GØ%ˆZÔ%Ø4Ø# WÔ%6Ô%=Ô%NÐOØ”/Ô*ðñ ô €Fð
 €L€L€LÝ˜fÑ%Ô%ð  ð  ˆÝ�$˜ÑÔÐÐÝ˜fÑ%Ô%ð  ð  ˆÝ�3˜ÑÔÐÐØ
‡N‚NÑÔÐÐÐr.   c              #  óP   K  — t          | |¦  «         t          | ¦  «         | V — d S ©N©r{   r‡   )r)  rØ   s     r/   Úmysql_pymysql_engine_irisr-  k  s8   è è € åÐ-¨yÑ9Ô9Ð9ÝÐ2Ñ3Ô3Ð3Ø
ÐÐÐÐÐr.   c              #  ó4   K  — t          | |d¦  «         | V — d S )Nr(   ©r¨   )r)  rœ   s     r/   Úmysql_pymysql_engine_typesr0  r  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_connr3  x  s‚   è è € à	×	%Ò	%Ñ	'Ô	'ð ¨4Øˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ó   —)©-°-c              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r+  r2  )r-  r`   s     r/   Úmysql_pymysql_conn_irisr6  ~  s‚   è è € à	"×	*Ò	*Ñ	,Ô	,ð °Øˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r4  c              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r+  r2  )r0  r`   s     r/   Úmysql_pymysql_conn_typesr8  „  ó‚   è è € à	#×	+Ò	+Ñ	-Ô	-ð °Øˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r4  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              #  óP   K  — t          | |¦  «         t          | ¦  «         | V — d S r+  r,  )r>  rØ   s     r/   Úpostgresql_psycopg2_engine_irisr@  š  s8   è è € åÐ3°YÑ?Ô?Ð?ÝÐ8Ñ9Ô9Ð9Ø
$Ð$Ð$Ð$Ð$Ð$r.   c              #  ó4   K  — t          | |d¦  «         | V — d S )NÚpostgresr/  )r>  rœ   s     r/   Ú postgresql_psycopg2_engine_typesrC  ¡  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+  r2  )r>  r`   s     r/   Úpostgresql_psycopg2_connrE  §  r9  r4  c               #  óV  K  — 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Ú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BÂB"Â%B"c              #  óH  K  — 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|V — d S ©Nr   r8   Ú	iris_view)Úadbc_driver_managerÚadbc_get_table_schemaÚProgrammingErrorÚrollbackrh   r‡   )rK  rØ   Úmgrr`   s       r/   Úpostgresql_adbc_irisrT  ¼  sÞ   è è € à%Ð%Ð%Ð%à€Dð9Ø×"Ò" 6Ñ*Ô*Ð*Ð*øØÔð 9ð 9ð 9Ø�Š‰ŒˆÝ'¨¨iÑ8Ô8Ð8Ð8Ð8ð9øøøð(Ø×"Ò" ;Ñ/Ô/Ð/Ð/øØÔð (ð (ð (Ø�Š‰ŒˆÝ! $Ñ'Ô'Ð'Ð'Ð'ð(øøøð €J€J€J€J€Jó!   Š   .AÁAÁA+ Á+-BÂBc              #  óÌ   K  — dd l }| }	 |                     d¦  «         n@# |j        $ r3 |                     ¦   «          d„ |D ¦   «         }t	          ||¦  «         Y nw xY w|V — d S )Nr   r�   c                óP   — g | ]#}t          |                     ¦   «         ¦  «        ‘Œ$S r-   ©Útupleru   ©rS   Úentrys     r/   rU   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øøøð €J€J€J€J€Js   Š   :AÁAc              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r+  r2  )r@  r`   s     r/   Úpostgresql_psycopg2_conn_irisr_  à  s‚   è è € à	(×	0Ò	0Ñ	2Ô	2ð °dØˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r4  c              #  ól   K  — |                       ¦   «         5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r+  r2  )rC  r`   s     r/   Úpostgresql_psycopg2_conn_typesra  æ  s‚   è è € à	)×	1Ò	1Ñ	3Ô	3ð °tØˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r4  c               #  ó˜   K  — t          j        d¦  «         t          j        ¦   «         5 } d| › �V — d d d ¦  «         d S # 1 swxY w Y   d S )Nr?   ú
sqlite:///)r!  r"  rÅ   Úensure_cleanr°   s    r/   Ú
sqlite_strre  ì  sš   è è € å
Ô˜Ñ%Ô%Ð%Ý	ŒÑ	Ô	ð "˜dØ!˜4Ð!Ð!Ð!Ð!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s   ª?¿AÁA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+  r2  )rg  r`   s     r/   Úsqlite_connri  ÿ  s‚   è è € à	×	Ò	Ñ	 Ô	 ð  DØˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r4  c                ó´   — t          j        d¦  «        } |j        | ¦  «        }t          ||¦  «         t	          |¦  «         |                     ¦   «          | S )Nr?   )r!  r"  rÍ   r{   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              #  óP   K  — t          | |¦  «         t          | ¦  «         | V — d S r+  r,  )rg  rØ   s     r/   Úsqlite_engine_irisrm    s6   è è € å˜¨	Ñ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+  r2  )rm  r`   s     r/   Úsqlite_conn_irisro    s‚   è è € à	×	#Ò	#Ñ	%Ô	%ð ¨Øˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r4  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              #  ó4   K  — t          | |d¦  «         | V — 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+  r2  )rs  r`   s     r/   Úsqlite_conn_typesru  +  s‚   è è € à	×	$Ò	$Ñ	&Ô	&ð ¨$Øˆ
ˆ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r4  c               #  ó²  K  — t          j        d¦  «         ddlm}  t	          j        ¦   «         5 }d|› �}|                      |¦  «        5 }|V — t          |¦  «        D ]}t          ||¦  «         Œt          |¦  «        D ]}t          ||¦  «         Œ|                     ¦   «          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Úadbc_driver_sqliter   rH  zfile:)r!  r"  rw  rI  rÅ   rd  r§   r  r  r  r  r^   )rI  r±   rJ  r`   r÷   r(  s         r/   Úsqlite_adbc_connrx  1  sr  è è € å
ÔÐ,Ñ-Ô-Ð-Ø(Ð(Ð(Ð(Ð(Ð(å	ŒÑ	Ô	ð ˜dØ�dˆnˆnˆØ�]Š]˜3ÑÔð 	 4ØˆJˆJˆJÝ% dÑ+Ô+ð &ð &�Ý˜$ Ñ%Ô%Ð%Ð%Ý% dÑ+Ô+ð &ð &�Ý˜3 Ñ%Ô%Ð%Ð%Ø�KŠK‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s6   °CÁAB4Â(CÂ4B8	Â8CÂ;B8	Â<CÃCÃCc              #  óH  K  — 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|V — d S rM  )rO  rP  rQ  rR  re   r‡   )rx  rØ   rS  r`   s       r/   Úsqlite_adbc_irisrz  A  sÞ   è è € à%Ð%Ð%Ð%à€Dð6Ø×"Ò" 6Ñ*Ô*Ð*Ð*øØÔð 6ð 6ð 6Ø�Š‰ŒˆÝ$ T¨9Ñ5Ô5Ð5Ð5Ð5ð6øøøð(Ø×"Ò" ;Ñ/Ô/Ð/Ð/øØÔð (ð (ð (Ø�Š‰ŒˆÝ! $Ñ'Ô'Ð'Ð'Ð'ð(øøøð €J€J€J€J€JrU  c              #  óÂ  K  — 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|V — d S )Nr   r�   r–   r˜   )
rO  rP  rQ  rR  Úintr  rY  ru   r    r^   )rx  rœ   rS  r`   r\  r[  s         r/   Úsqlite_adbc_typesr}  S  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Ø�Š‰Œˆˆˆð
øøøð €J€J€J€J€Js   Š   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:)Ú
contextlibr   r„   r§   ©Úclosing_connr`   s     r/   Úsqlite_buildinrƒ  i  sã   è è € å	Ô	�GœO¨JÑ7Ô7Ñ	8Ô	8ð ¸LØð 	˜TØˆJˆJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s1   ©A¬=±A½A	ÁAÁA	ÁAÁAÁAc              #  óP   K  — t          | |¦  «         t          | ¦  «         | V — d S r+  )re   r‡   )rƒ  rØ   s     r/   Úsqlite_buildin_irisr…  p  s6   è è € å  °Ñ;Ô;Ð;Ý˜nÑ-Ô-Ð-Ø
ÐÐÐÐÐr.   c              #  óJ   K  — d„ |D ¦   «         }t          | |¦  «         | V — d S )Nc                óP   — g | ]#}t          |                     ¦   «         ¦  «        ‘Œ$S r-   rX  rZ  s     r/   rU   z(sqlite_buildin_types.<locals>.<listcomp>y  s(   € Ð@Ð@Ð@¨E•%˜Ÿš™œÑ'Ô'Ð@Ð@Ð@r.   )r    )rƒ  rœ   s     r/   Úsqlite_buildin_typesrˆ  w  s;   è è € à@Ð@°ZÐ@Ñ@Ô@€JÝ! .°*Ñ=Ô=Ð=Ø
ÐÐÐÐÐr.   r)  )Úmarksr3  r-  r6  r0  r8  r>  rE  r@  r_  rC  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±   rz   Ú	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    r9|j                              t          j                             dd¬¦  «        ¦  «         |                     | ¦  «        } |j        d d…         }|                     d| dd¬	¦  «         d S )
NrK  z7postgres ADBC driver cannot insert index with null typeT©ÚreasonÚstrictr   r‹  r  FrŒ  )ÚnodeÚ
add_markerr!  ÚmarkÚxfailrŽ  rÀ   r�  )r`   rñ   r�  Úempty_dfs       r/   Útest_dataframe_to_sql_emptyr›  Ú  sŽ   € àÐ%Ò%Ð%ØŒ×ÒÝŒK×ÒØPØð ñ ô ñ	
ô 	
ð 	
ð ×"Ò" 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 )NÚpyarrowrL   zint8[pyarrow]©rA   éç  ú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   rw   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           
     óö   — t          j        d¦  «         t          dt          j        t          ddd¦  «        |gd¬¦  «        i¦  «        }|                     | ¦  «        } |                     d| dd	¬
¦  «         d S )Nr�  r   rŸ  rL   r   rž  r¦  r§  FrŒ  )r!  r"  r   r¨  r©  r   rŽ  r�  )r`   r�  Únulls_fixturerâ   s       r/   Ú*test_dataframe_to_sql_arrow_dtypes_missingr²    s‹   € õ Ô˜	Ñ"Ô"Ð"Ý	à�œÝ˜$  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 driversTr“  ©Ú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§  rL   )r  rM   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É  6  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½   r:   )rŽ  r$   rÊ   r¨  Úread_sqlrÈ   rÇ   ©r`   r�  Ú
iris_frames      r/   Útest_read_iris_queryrÑ  B  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Í  r:   )r–  r—  r!  r˜  r™  rŽ  r   r$   rÊ   r¨  rÎ  rÈ   rÇ   rÏ  s      r/   Útest_read_iris_query_chunksizer×  N  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   )r5   r7   rÍ   Úselectr8   )Úautoload_withrº   r¸   ©r±   Úlength©ry   )r–  r—  r!  r˜  r™  rŽ  r?   r5   r7   rÍ   rÙ  rƒ   r‰   r$   rÊ   rÑ   )
r`   r�  r5   r7   rÍ   rÙ  rB   Úautoload_conr8   rÐ  s
             r/   Ú.test_read_iris_query_expression_with_parameterrß  a  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�  r0   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 )Nr8   )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 ADBC©r”  r8   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 )NrL   c                óJ   •— g | ]}t          t          ‰|¦  «        ¦  «        ‘Œ S r-   rm   ©rS   rT   rà   s     €r/   rU   z8test_to_sql_callable.<locals>.sample.<locals>.<listcomp>°  ó)   ø€ Ð:Ð:Ð:¨••S˜˜s‘^”^Ñ$Ô$Ð:Ð:Ð:r.   )r  rW   r
  rk   )Ú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¹  rL   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”   rA   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¤   ©rL   rM   rN   ©çš™™™™™¹?r¹   ç333333Ó?©r¡  Úbr¸  F©r±   rz   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§   rv   rW   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_countrM   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-   )rS   Úks     r/   rU   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)Ú
connectionrV   r	   rY   ÚwriterÚ	writerowsÚseekÚjoinr	  r±   Úcopy_expert)r
  r`   rà   rò  Ú
dbapi_connrb   Ú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rL   rM   r  r¹   r¡  Ún©Úcol1Úcol2Úcol3r¸  F)r±   rz   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   rj   r¤   r�   c                óÊ   •‡— ˆfd„|D ¦   «         } ‰| j         ¦  «                             |¦  «                             dg¬¦  «        }|                     |¦  «        }|j        S )Nc                óJ   •— g | ]}t          t          ‰|¦  «        ¦  «        ‘Œ S r-   rm   rï  s     €r/   rU   z\test_insertion_method_on_conflict_do_nothing.<locals>.insert_on_conflict.<locals>.<listcomp>0  rð  r.   r¡  )Úindex_elements)r
  ru   Úon_conflict_do_nothingrW   Úrowcount©r
  r`   rà   rò  rÖ   ra   r&  rk   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
    );
    ©rL   çÍÌÌÌÌÌ @r¡  Úabcrî   Útest_insert_conflictr  FrŒ  ©rL   gš™™™™™	@r  ©r±   rz   r»   r�  r³  Tr¶  )rŽ  Úsqlalchemy.dialects.postgresqlrk   r¦   r¥   Úsqlalchemy.sqlr‚   rƒ   r§   rv   rW   r   Úlistr�  r   r%   rÅ   r  r    r  )r`   r�  r¥   r‚   r/  Ú
create_sqlrz   r$  Ú	df_insertÚinsertedr&  r¼  rk   s               @r/   Ú,test_insertion_method_on_conflict_do_nothingr<  &  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ê  r0  )rM   gÍÌÌÌÌÌ@r  r2  rî   Útest_public_schemar  FÚpublic)r±   rz   r�  r»   r	  ©r	  )rø  r!  r˜  r™  rŽ  r   r8  r�  r   r%   rÅ   r  )r`   r�  Ú	test_dataÚdf_outs       r/   Útest_to_sql_on_public_schemarD  `  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   rj   r¤   r�   c                óö   •‡— ˆfd„|D ¦   «         } ‰| j         ¦  «                             |¦  «        }|                     |j        j        |j        j        ¬¦  «        }|                     |¦  «        }|j        S )Nc                óJ   •— g | ]}t          t          ‰|¦  «        ¦  «        ‘Œ S r-   rm   rï  s     €r/   rU   zXtest_insertion_method_on_conflict_update.<locals>.insert_on_conflict.<locals>.<listcomp>‚  rð  r.   )r  r  )r
  ru   Úon_duplicate_key_updater;  r  r  rW   r-  r.  s     `    €r/   r/  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)
    );
    r0  r2  rî   r3  r  FrŒ  r4  r5  rM   Tr¶  )rŽ  Úsqlalchemy.dialects.mysqlrk   r¦   r¥   r7  r‚   rƒ   r§   rv   rW   r   r8  r�  r   r%   rÅ   r  r    r  )r`   r�  r¥   r‚   r/  r9  rz   râ   r$  r;  r&  r¼  rk   s               @r/   Ú(test_insertion_method_on_conflict_updaterJ  x  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;
    rL   r±   ©Úgroup_idr±   )rŽ  r¦   r¥   r7  r‚   ÚuuidÚuuid4Úhexrƒ   r§   rv   rW   r%   r   rÅ   r  )
r`   r�  r¥   r‚   rË   r  Úsql_stmtrz   r&  r$  s
             r/   Útest_read_view_postgresrT  ­  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_viewrL   r±   rN  )rW   r¨  rÎ  r   rÅ   r  )rƒ  Úcreate_tableÚinsert_intoÚcreate_viewr&  r$  s         r/   Útest_read_view_sqliterY  Ñ  s—   € ð€Lð€Kð€Kð
 ×Ò˜<Ñ(Ô(Ð(Ø×Ò˜;Ñ'Ô'Ð'Ø×Ò˜;Ñ'Ô'Ð'ÝŒ[Ð3°^ÑDÔD€FÝ q c°6Ð:Ð:Ñ;Ô;€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r.   c                óþ   — t          j        t          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 )Nz+pandas.io.sql.execute requires a connectionrÆ  úP`pandas.io.sql.execute` is deprecated and will be removed in the future version.úselect * from iris)r!  rÇ  Ú	TypeErrorrÅ   r¬  ÚFutureWarningr   rW   )rm  s    r/   Útest_execute_typeerrorr_  ê  s,  € Ý	Œ•yÐ(UÐ	VÑ	VÔ	Vð Bð BÝÔ'Ýð5ð
ñ 
ô 
ð 	Bð 	Bõ
 ŒKÐ,Ð.@ÑAÔAÐAð	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ð Bð Bð Bs4   œA2¸AÁA2ÁA	ÁA2Á!A	Á"A2Á2A6Á9A6c                ó˜   — t          j        t          d¬¦  «        5  t          j        d| ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr[  rÆ  r\  )rÅ   r¬  r^  r   rW   )ro  s    r/   Útest_execute_deprecatedra  ô  sœ   € å	Ô	#Ýð1ð
ñ 
ô 
ð <ð <õ
 	ŒÐ(Ð*:Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð <ð <s   œ?¿AÁA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/   Úflavorrc  þ  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Ž  rc  r#   Úrun_transactionÚ
read_queryrÊ   ©r`   r�  r0   rý  rä  ry   r¼  rÐ  s           r/   Útest_read_sql_iris_parameterrj  	  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†   re  Tr“  r+   rº   r¸   rÛ  rÝ  rf  ri  s           r/   Ú"test_read_sql_iris_named_parameterrm    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Ž  rc  r#   rg  rh  rÊ   )r`   r�  r0   rý  rä  r¼  rÐ  s          r/   Ú,test_read_sql_iris_no_parameter_with_percentro  0  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Ñ Ô Ð Ð Ð rk  c                óx   — |                      | ¦  «        } t          j        d| ¦  «        }t          |¦  «         d S )NzSELECT * FROM iris_view)rŽ  r   r$   rÊ   rÏ  s      r/   Útest_api_read_sql_viewrq  C  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_resultru  J  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_sqlrw  W  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_failr{  b  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�  q  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à�{Ò"Ð"Ð"Ð"Ð"Ð"rx  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À  rO   r  rM   r}  r~  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à�{Ò"Ð"Ð"Ð"Ð"Ð"rx  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Ñ.Ô.Ð.Ð.Ð.rx  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ÝÔ˜!Ÿ*š*™,œ,¨Ñ+Ô+Ð+Ð+Ð+rx  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di¬	¦  «        }|j        |_        | 	                    dd¬
¦  «         |j         
                    t          ¦  «         d |j        _        t          j        ||¦  «         d S )NÚtest_frame_roundtripTr¶  ©rz   ú"SELECT * FROM test_frame_roundtripr†   Ú__index_level_0__Úlevel_0rî   ©Úinplace)rŽ  r   rº  r    r  r�  r$   Úrenamer»   Ú	set_indexrá   r|  r±   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ð �ÐÐØ—’Ð(;¸YÐ'G�ÑHÔHˆØÔ$€F„LØ
×Ò�Y¨ÐÑ-Ô-Ð-Ø
„L×Ò�ÑÔÐØ€F„LÔÝÔ˜& +Ñ.Ô.Ð.Ð.Ð.ó   Á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¶  FrM   )rz   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#   rW   rÎ   r]   r8  )r`   r�  Ú
pandas_sqlÚiris_resultsrT   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(   rB  r‘   ©Úparse_datesiÐ  rL   rN   r   rO   ú%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‘   rA   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)r~   ÚraiseÚcoercezread_sql, text, moder§  )r?   Úfallbackr�   r?   c                óJ  — | }|                      | ¦  «        } |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          s|d                              d¦  «        |d<   t          j
        |	|¦  «         d S )Nr�   rˆ  z failing combination of argumentsrê  r‘   údatetime64[ns]r€   )rz   r©  rB  r–   r˜   r]  Úint32)r’   r“   r•   zdatetime64[us])rŽ  rø  r!  r˜  r™  rá   r|  rQ   r   rÅ   r  )
r`   r�  rÎ  r‚   rÂ  r°  rã   rý  r$  r&  s
             r/   Ú!test_api_custom_dateparsing_errorr·    sb  € ð$ €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ˆÐ Ñ!àÐ+Ò+Ð+Ø—?’?à%Ø")Ø!ðð ñ
ô 
ˆõ $ð 	Oà"*¨9Ô"5×"<Ò"<Ð=MÑ"NÔ"NˆH�YÑåÔ˜& (Ñ+Ô+Ð+Ð+Ð+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»   rA   rÁ   rÃ   r­  r’   ©r`   r�  râ   s      r/   Útest_api_date_and_indexr»  U  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±   rz   rM   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Å  d  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   rO   ú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¶  rO   r   )ÚA0ÚA1)ÚB0ÚB1r‡  rÏ  r   r–  rL   Úlevel_1r§  rå   ræ   )r�  rÐ  rM   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¶  ©rL   r1  Úline1©rM   ç      ø?Ú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Ð<Ñ<Ô<Ð<Ð<Ð<rx  rA   ©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¿  rM   rB  z(SELECT "A", "B" FROM test_dtype_argumentz$SELECT A, B FROM test_dtype_argument©rz   rA   )rŽ  r   rº  r    r  r   r�  rá   r$   rÅ   r  )	r`   r�  rA   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 )
NrL   rM   rN   rO   r   rî   Útest_frame_integer_col_namesr§  rÀ  )rŽ  r   r   r�  rº  s      r/   Útest_api_integer_col_namesrõ  C  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ñ   r9  s       r/   Útest_api_get_schemarü  J  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)rz   r	  zCREATE TABLE pypi.rù  rû  s       r/   Útest_api_get_schema_with_schemarÿ  X  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ï  r1  çš™™™™™@r  rƒ  ÚINTEGERr   )rŽ   r‹  r  rñ  rø  )r–  r—  r!  r˜  r™  rŽ  r   r?   rŽ   r   rú  )r`   r�  rý  Úfloat_framerA   rŽ   r9  s          r/   Útest_api_get_schema_dtypesr  g  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ï  r1  r  )ÚCol1ÚCol2r‹  r  )rz   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µ   r9  Úconstraint_sentences          r/   Útest_api_get_schema_keysr
    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¶  rM   )é   r½   Úabcderî   Fr  zselect * from test_chunksizer   )r½   r½   r½   r½   rM   r½   rÕ  ©Úignore_indexrL   rƒ  r£  rÆ  )r–  r—  r!  r˜  r™  rŽ  r   rº  r    r  r   rÃ   ÚrandomÚdefault_rngÚstandard_normalr8  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‰ˆˆåÔ˜$ Ñ%Ô%Ð%ð Ð$Ò$Ð$ÝŒ]Õ.°bÐ9Ñ9Ô9ð 	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¶  rL   rM   rN   rO   õ   Ã©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Ð9rx  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   rL   rM   r¹   rð  rì  Fr  rB  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| 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†   r�  z16.0)rx  rK  z!pyarrow->pandas throws ValueErrorTr“  Ú
test_tabler¶  r   r  rL   ©r¡  r  r  Fr  z)SELECT a, b, a +1 as a, c FROM test_table)rL   r  rM   rL   )rM   r¹   rN   rL   )rN   r  rO   rL   )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_columnsr0  	  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_columnsr4  -	  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ƒ  r2  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_colr6  =	  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Ë  r8   )rø  r!  r˜  r™  rŽ  r   r$   rÎ  rÅ   r  r%   )r`   r�  Úiris_frame1Úiris_frame2s       r/   Útest_read_sql_delegater:  T	  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§   rv   rW   rÅ   r¬  r   r%   r$   )ri  r`   r‚   r¥   Ú
query_listrä  s         r/   Útest_not_reflect_all_tablesr>  g	  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_namerC  €	  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?   rE  r   r   r   r    ÚSQLTablerƒ   r
  r  rÁ   )r`   r�  rE  râ   r  r
  s         r/   Útest_sqlalchemy_type_mappingrM  ˜	  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)ÚInt8rO  )Úuint8rO  )ÚUInt8rO  )Úint16rO  )ÚInt16rO  )Úuint16r  )ÚUInt16r  )r¶  r  )ÚInt32r  )Úuint32ÚBIGINT)ÚUInt32rY  )rß   rY  )ÚInt64rY  rß   rY  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   rL   r¡  ©rÇ   rA   rJ  rK  )
rŽ  r   r   r    rL  r‰   r
  r  r¡  rÁ   )r`   r�  rù  r$  râ   r  r
  r&  s           r/   Útest_sqlalchemy_integer_mappingr^  §	  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   rL   r¡  r]  z1Unsigned 64 bit integer datatype is not supportedrÆ  rJ  rK  )rŽ  r   r   r    r!  rÇ  rÈ  rL  )r`   r�  rù  râ   r  s        r/   Ú(test_sqlalchemy_integer_overload_mappingrb  Ç	  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          j        ¦   «         5 }d|z   }d}|                     ||dd¬¦  «         t          j        ||¦  «        }t          j        ||¦  «        }d}t          j	        ||¦  «        }	d d d ¦  «         n# 1 swxY w Y   t          j
        ||¦  «         t          j
        ||¦  «         t          j
        ||	¦  «         d S )Nr?   rc  r8   r§  FrŒ  rË  )r!  r"  rŽ  rÅ   rd  r�  r   rÎ  r%   r$   r  )
r`   r�  rñ   r±   Údb_urir
  rz  ró   rä  rƒ  s
             r/   Útest_database_uri_stringre  Ô	  s/  € å
Ô˜Ñ%Ô%Ð%Ø×"Ò" 4Ñ(Ô(€Dõ
 
ŒÑ	Ô	ð 8˜dØ Ñ$ˆØˆØ×Ò ¨6¸YÈeÐÑTÔTÐTÝ”l 5¨&Ñ1Ô1ˆÝÔ(¨°Ñ7Ô7ˆØ$ˆÝÔ(¨°Ñ7Ô7ˆð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8õ Ô˜+ {Ñ3Ô3Ð3ÝÔ˜+ {Ñ3Ô3Ð3ÝÔ˜+ {Ñ3Ô3Ð3Ð3Ð3s   ½A"B+Â+B/Â2B/Ú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/dbnamerf  rÆ  zselect * from table)r!  r"  rŽ  rÇ  ÚImportErrorr   rÎ  )r`   r�  rd  s      r/   Ú(test_pg8000_sqlalchemy_passthrough_errorri  é	  s»   € õ Ô˜Ñ%Ô%Ð%Ø×"Ò" 4Ñ(Ô(€Dð 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.Á1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�   rB  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_objro  õ	  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?   rq  rÙ  rC   Úwherer  r=   r   rÎ  rk  )r`   r�  rq  rÙ  r8   Úname_selectrm  rn  s           r/   Útest_query_by_select_objrt  
  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ƒ  r2  rê  r)  ©rN   rO   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_percentagerx  
  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        ¦   «         5 }t          t          j        |¦  «        ¦  «        5 }t          j        | d|d¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        |¦  «        ¦  «        5 }t          j        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 S )NÚtest_frame3_legacyFr‡  rO   z!SELECT * FROM test_frame3_legacy;)	rÅ   rd  r   r„   r§   r   r�  r$   r  )ró   r±   r`   r&  s       r/   Útest_sql_open_closer{  %
  sÁ  € õ 
ŒÑ	Ô	ð S˜dÝ•W”_ TÑ*Ô*Ñ+Ô+ð 	Y¨tÝ”:˜kÐ+?ÀÈUÐSÑSÔSÐWXÒXÐXÐXÐXÐXð	Yð 	Yð 	Yñ 	Yô 	Yð 	Yð 	Yð 	Yð 	Yð 	Yð 	Yøøøð 	Yð 	Yð 	Yð 	Yõ •W”_ TÑ*Ô*Ñ+Ô+ð 	S¨tÝÔ'Ð(KÈTÑRÔRˆFð	Sð 	Sð 	Sñ 	Sô 	Sð 	Sð 	Sð 	Sð 	Sð 	Sð 	Søøøð 	Sð 	Sð 	Sð 	Sð	Sð Sð Sñ Sô Sð Sð Sð Sð Sð Sð Søøøð Sð Sð Sð Sõ Ô˜+ vÑ.Ô.Ð.Ð.Ð.sX   ”"C¶A"ÁCÁ"A&	Á&CÁ)A&	Á*$CÂB0Â$CÂ0B4	Â4CÂ7B4	Â8CÃCÃC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Ç  rh  r   rÎ  )r`   r®  s     r/   Útest_con_string_import_errorr}  3
  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          ¦  «        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__>
  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__A
  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.closeD
  s   € ØŒI�OŠOÑÔÐÐÐr.   N)r�  r‚  )Ú__name__Ú
__module__Ú__qualname__r‡  rŠ  r]   r-   r.   r/   ÚMockSqliteConnectionr€  =
  sF   € € € € € ð	<ð 	<ð 	<ð 	<ð	,ð 	,ð 	,ð	ð 	ð 	ð 	ð 	r.   r�  r  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�  ;
  s"  € ðð ð ð ð ñ ô ð õ 
Ô	Ð0Ð0°Ñ<Ô<Ñ	=Ô	=ð +ÀÝÔ'­Ñ4Ô4ð 	+ð 	+ÝŒL˜ TÑ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s5   «A?ÁA'ÁA?Á'A+	Á+A?Á.A+	Á/A?Á?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Æ  r8   )r   r$   rÎ  rÅ   r  r!  rÇ  ÚDatabaseError)r…  r`   r8  r9  r®  s        r/   Útest_sqlite_read_sql_delegater“  L
  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ñ   r9  s     r/   Útest_get_schema2r•  W
  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   rF  rG  TrH  rJ  rK  ú
r   r  rL   rE  )r   r   r   r!   ÚSQLiteTableÚ
sql_schemaÚsplitÚstrip)rƒ  r`   râ   r  r
  r	  Úcols          r/   Útest_sqlite_type_mappingr�  ]
  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Ò  rO   )r!  ÚskiprŽ  r?   rþ   r   r   r    r�  rº  r  ©r`   r�  rþ   rÒ  r¼  Úinsps         r/   Útest_create_tabler¬  o
  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Ò  rO   )r!  r©  rŽ  r?   rþ   r   r   r    rg  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c                óè  — | dk    rt          j        d¦  «         | }|                     | ¦  «        } t          | ¦  «        }|                     ¦   «         5  |                     |d¦  «        dk    sJ ‚|                     d¦  «        }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’  rO   r”  r†   r•  r–  rî   Tr—  )r!  r©  rŽ  r#   rg  r�  rh  r™  rš  r»   r±   rÅ   r  r›  s         r/   Útest_roundtripr²  ž
  sU  € àˆ|ÒÐÝŒÐ9Ñ:Ô:Ð:à€IØ×"Ò" 4Ñ(Ô(€DÝ! $Ñ'Ô'€IØ	×	"Ò	"Ñ	$Ô	$ð Lð LØ×Ò Ð-CÑDÔDÈÒIÐIÐIÐIØ×%Ò%Ð&JÑKÔKˆðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lð �ÐÐØ—’Ð(;¸YÐ'G�ÑHÔHˆØ
×Ò�Y¨ÐÑ-Ô-Ð-ð €F„LÔåÔ˜& +Ñ.Ô.Ð.Ð.Ð.s   Á2BÂBÂ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#   rg  rW   rÎ   r]   r8  )r`   r�  r¼  r¤  rT   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 )Nr8   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 )Nr8   r9   )rz   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”   rA   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  rL   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‘   rA   rÁ   rÃ   r­  rü  s       r/   Útest_default_date_loadrÆ  ù
  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É  	  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È  rL   rÕ  Tr  )rŽ  r´   r   r8  r$   r«   rÅ   rÆ   )r`   r�  r$  râ   rœ  s        r/   Ú+test_datetime_with_timezone_query_chunksizerË    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&  s       r/   Ú!test_datetime_with_timezone_tablerÍ  %  sY   € à×"Ò" 4Ñ(Ô(€DÝ.¨tÑ4Ô4€HÝÔ ¨$Ñ/Ô/€FÝÔ˜& (×"3Ò"3Ñ"5Ô"5Ñ6Ô6Ð6Ð6Ð6r.   c                ól  — | }|                      | ¦  «        } t          dt          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 r:t          |j        d         t          ¦  «        sJ ‚t          |d         ¦  «        |d<   t          j
        ||¦  «         d S )Nrå   ú2013-01-01 09:00:00rN   ú
US/Pacific©Úperiodsr¯   Ú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   )r`   r�  rý  r$  r&  s        r/   Ú%test_datetime_with_timezone_roundtriprÙ  -  sC  € à€IØ×"Ò" 4Ñ(Ô(€Dõ
 Ø	�jÐ.¸¸lÐKÑKÔKÐLñô €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Ý! &¨¤+Ñ.Ô.ˆˆs‰ÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r.   c                ó@  — |                      | ¦  «        } t          dt          ddd¦  «        idg¬¦  «        }|                     d| d¬¦  «        dk    sJ ‚t	          j        d| ¦  «        }t          t          j        gdg¬	¦  «        }t          j	        ||¦  «         d S )
Nr   i'  rL   r   r‡  Útest_datetime_obbFr  rî   )
rŽ  r   r   r�  r   r%   r¨  ÚNaTrÅ   r  )r`   r�  rÖ   r&  r$  s        r/   Útest_out_of_bounds_datetimerÝ  L  s¤   € ð ×"Ò" 4Ñ(Ô(€DÝ�f�h t¨Q°Ñ2Ô2Ð3¸A¸3Ð?Ñ?Ô?€DØ�;Š;Ð/°TÀˆ;ÑGÔGÈ1ÒLÐLÐLÐLÝÔÐ 3°TÑ:Ô:€FÝ�"œ&˜¨F¨8Ð4Ñ4Ô4€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r.   c                óR  — |                      | ¦  «        } t          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½   Ú6h©rÒ  ÚfreqÚnumsr‡  Ú	foo_tableÚ	info_date)r±   rz   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è  W  s¯   € ð ×"Ò" 4Ñ(Ô(€DÝ�|¨Q°TÐ:Ñ:Ô:×EÒEÀdÑKÔK€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Ž  Úunit)rŽ  r   r%   rû  rÃ   r­  rÂ   r‘   rA   rÁ   r’   )r`   r�  rý  râ   Úexpected_types        r/   Útest_date_parsingrí  d  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	¬
¦  «        }t          j
        ||¦  «         t          j        d| ¦  «        }|                     dd	¬
¦  «        }d|v rQt          |j        d         t          ¦  «        sJ ‚t          |d         ¦  «        |d<   t          j
        ||¦  «         d S t          j
        ||¦  «         d S )NrÏ  rN   ©rÒ  r£  rì  Útest_datetimer¿  r»   rL   )ÚaxisúSELECT * FROM test_datetimer'   rÔ  rå   )rŽ  r   r   rÃ   rŒ  r�  r   r%   rw   rÅ   r  r$   rƒ   rØ  r‰   r   ©r`   r�  rý  râ   r&  s        r/   rð  rð  „  sB  € à€IØ×"Ò" 4Ñ(Ô(€DÝ	ÝÐ.¸Ð:Ñ:Ô:ÅÄÈ3ÁÄÐPÐPñ
ô 
€Bð �9Š9˜/¨tˆ9Ñ4Ô4¸Ò9Ð9Ð9Ð9õ Ô °Ñ6Ô6€FØ�[Š[˜ qˆ[Ñ)Ô)€FÝÔ˜& "Ñ%Ô%Ð%õ ÔÐ =¸tÑDÔD€FØ�[Š[˜ qˆ[Ñ)Ô)€FØ�9ÐÐÝ˜&œ* VÔ,­cÑ2Ô2Ð2Ð2Ð2Ý! &¨¤+Ñ.Ô.ˆˆs‰Ý
Ô˜f bÑ)Ô)Ð)Ð)Ð)å
Ô˜f bÑ)Ô)Ð)Ð)Ð)r.   c                óT  — | }|                      | ¦  «        } t          t          dd¬¦  «        t          j        d¦  «        dœ¦  «        }t          j        |j        d<   |                     d| d¬	¦  «        dk    sJ ‚t          j	        d| ¦  «        }t          j        ||¦  «         t          j        d
| ¦  «        }d|v rSt          |j        d         t          ¦  «        sJ ‚t          |d         d¬¦  «        |d<   t          j        ||¦  «         d S t          j        ||¦  «         d S )NrÏ  rN   rï  r£  rì  ©rL   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ó  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ÝÔ˜& "Ñ%Ô%Ð%õ ÔÐ =¸tÑDÔD€FØ�9ÐÐÝ˜&œ* VÔ,­cÑ2Ô2Ð2Ð2Ð2Ý! &¨¤+°hÐ?Ñ?Ô?ˆˆs‰Ý
Ô˜f bÑ)Ô)Ð)Ð)Ð)å
Ô˜f bÑ)Ô)Ð)Ð)Ð)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éÞ  rL   rM   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   rL   é   r¡  rî   Ú	test_timeFr  rM   Ú
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  rL   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  rN   úSELECT * FROM test_nan)
rŽ  r   rÃ   r*  r�  r   r%   rÅ   r  r$   rÄ  s       r/   Útest_nan_numericr  ì  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  rN   ræ   rû  r  )rŽ  r   rÃ   r*  r�  r   r%   rÅ   r  rá   r$   rÄ  s       r/   Útest_nan_fullcolumnr  ü  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  rN   ©rM   ræ   r  )rŽ  r   rÃ   r*  r�  rØ  r   r%   rÅ   r  r$   rÄ  s       r/   Útest_nan_stringr    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_indexrM   >   re  rƒ  zASELECT * FROM sqlite_master WHERE type = 'index' AND tbl_name = 'ú'zPRAGMA index_info(ú)r   rý   c                ó   — g | ]
}|d          ‘ŒS )Úcolumn_namesr-   )rS   r  s     r/   rU   z*test_to_sql_save_index.<locals>.<listcomp>D  s   € Ð2Ð2Ð2¨�1�^Ô$Ð2Ð2Ð2r.   )r–  r—  r!  r˜  r™  rŽ  r   rê  r#   rg  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_indexr(  !  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#   rg  rW   )r`   r�  rý  ra   r‚   r¼  Útranss          r/   Útest_transactionsr,  I  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 )Nr*  r†   r   r�   c                  ó   — e Zd ZdS )ú1test_transaction_rollback.<locals>.DummyExceptionN)rŒ  r�  rŽ  r-   r.   r/   ÚDummyExceptionr/  h  s   € € € € € ØˆDr.   r0  z/INSERT INTO test_trans (A,B) VALUES (1, 'blah')r°  zSELECT * FROM test_transrL   )rŽ  r#   rg  rƒ   r!   rW   r?   r‚   Ú	Exceptionr    rh  r»  )r`   r�  rý  r¼  r+  ra   r‚   r0  Úins_sqlr"  r  s              r/   Útest_transaction_rollbackr3  Y  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§   rv   rW   r%   rÅ   r  )
r`   r�  ró   r‚   r¥   r(  r9  Úblank_test_dfÚnewconÚreturned_dfs
             r/   r5  r5  ƒ  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‹   r6   ©r5   rå   ræ   ©gš™™™™™é?T©gÍÌÌÌÌÌì?Nrî   Ú
dtype_testr¿  rM   Údtype_test2©r±   rz   rA   rs   z&The type of B is not a SQLAlchemy typerÆ  r°  Údtype_test3é
   Úsingle_dtype_test)r!  r©  rŽ  r?   r‹   r6   Úsqlalchemy.schemar5   r   r�  ÚreflectÚtablesrÇ   rÁ   rƒ   rÇ  rÈ  r‰   rÜ  )r`   r�  r‹   r6   r5   r3  rÖ   râ   ÚmetaÚsqltyper®  ÚsqltypeaÚsqltypebs                r/   Ú
test_dtyperJ  ¡  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�   r4   rŽ   r:  TéÜ  r½   rL   rû  rž  r  ©ÚBoolÚDateÚIntr4   Únotna_dtype_testr¿  rM   rs   r(   rN  rO  rP  r4   )r!  r©  rŽ  r?   rŒ   r�   r4   rŽ   rC  r5   r   r   r   r�  r   r%   rD  rE  rÇ   rƒ   rÁ   )r`   r�  rý  rŒ   r�   r4   rŽ   r5   r3  râ   r(  r  rF  Úmy_typeÚcol_dicts                  r/   Útest_notna_dtyperT  Ë  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   )Ú
BigIntegerr4   rŽ   r:  gñYÉBÊÀó?r  rž  Úfloat64r½   r¶  rß   )Úf32Úf64Ú
f64_as_f32Úi32rÂ  Útest_dtypesFr§  rZ  é   )Ú	precision)r±   rz   r»   r�  rA   rL   rY  é   rs   rX  r[  rÂ  )r!  r©  rŽ  r?   rV  r4   rŽ   rC  r5   r   r   r�  r   r%   rÃ   ÚroundrÀ   rD  rE  rÇ   r‰   rÁ   rƒ   )r`   r�  rV  r4   rŽ   r5   ÚVrâ   r"  rF  rS  s              r/   Útest_double_precisionrb  ð  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_select,  s   € Ø9ˆÝÔ! %¨ZÐ8Ñ8Ô8Ð8r.   c                ó6   — |                      d| d¬¦  «         d S )NÚtest_foo_datar  )r±   rz   r�  )r�  )r  rÖ   s     r/   Útest_appendz3test_connectable_issue_example.<locals>.test_append0  s    € Ø�Š˜¨jÀHˆÑMÔMÐMÐMÐMr.   c                ó6   •—  ‰| ¦  «        } ‰| |¦  «         d S r+  r-   )r`   Úfoo_datarh  re  s     €€r/   Útest_connectablez8test_connectable_issue_example.<locals>.test_connectable3  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§   rv   )Úconnectabler`   r¥   rk  s     €€r/   Úmainz,test_connectable_issue_example.<locals>.main9  s  ø€ Ý�k 6Ñ*Ô*ð 	*Ø×$Ò$Ñ&Ô&ð +¨$Ø—Z’Z‘\”\ð +ð +Ø$Ð$ TÑ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +ð Ð˜[Ñ)Ô)Ð)Ð)Ð)s4   ¦A+»AÁA+ÁA	ÁA+ÁA	ÁA+Á+A/Á2A/rg  r)  r¿  rN   )rŽ  r¦   r¥   r   r�  )r`   r�  rn  r¥   rh  rk  re  s      @@@@r/   Útest_connectable_issue_examplero  $  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                óx  — t          |¦  «        }| }|                     | ¦  «        } d|v rÇt          j        d¦  «        }t	          |j        ¦  «        t	          d¦  «        k     r>d|j        v r5t          j                             d¬¦  «        }| 	                    |¦  «         d}t          j
        t          |¬¦  «        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(   r  z1.0.3rr  zGH 36465rê  zinf cannot be used with MySQLrÆ  ÚfoobarFr  rL   )r   rŽ  r!  r"  r   r@   rÇ   r˜  r™  rø  rÇ  rÈ  r�  r   r%   rÅ   Úassert_equal)	r`   r�  rp  râ   rý  r  r˜  r®  r"  s	            r/   Útest_to_sql_with_negative_npinfrv  H  s�  € õ 
�5Ñ	Ô	€BØ€IØ×"Ò" 4Ñ(Ô(€Dà�)ÐÐõ
 Ô% iÑ0Ô0ˆå�7Ô&Ñ'Ô'­'°'Ñ*:Ô*:Ò:Ð:¸wÈ"Ì*Ð?TÐ?TÝ”;×$Ò$¨JÐ$Ñ7Ô7ˆDØ×Ò Ñ%Ô%Ð%à-ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	<ð 	<Ø�IŠI˜8¨°UˆIÑ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð �yŠy˜h¨D¸ˆyÑ>Ô>À!ÒCÐCÐCÐCÝÔ  ¨4Ñ0Ô0ˆÝ
Œ˜˜CÑ Ô Ð Ð Ð s   Â?C%Ã%C)Ã,C)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   )r2   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{  )r2   rŽ   rx  s   €€€r/   Ú	Temporaryr}  ~  sP   ø€ € € € € Ø#ˆØ$ { mÐ4ˆØˆV�G¨Ð.Ñ.Ô.ˆØˆv�g�g˜b‘k”k¨EÐ2Ñ2Ô2ˆˆˆr.   r‡  )r{  )r   rz   )r!  r©  rŽ  r?   r2   rŽ   rx  rÙ  Úsqlalchemy.ormry  rz  r   rv   r  Ú	__table__rx   ÚaddÚflushr   r$   r{  rÅ   r  )r`   r�  rÙ  ry  rz  rB  r$  ÚBaser‡  Úsessionrâ   r2   rŽ   rx  s              @@@r/   Útest_temporary_tablerŽ  h  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‘  rO   N)rŽ  r#   rg  r�  rº  r»  rÓ   r~  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ñ   rO   ©	rŽ  r¨  Úoption_contextr#   rg  r�  rº  r»  rÓ   r~  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ñ   rO   r˜  r~  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c                 ó   — d S r+  r-   r-   r.   r/   Ú"test_get_engine_auto_error_messager¡  Ø  s	   € ð 	€Dr.   Ú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±   rz   r»   r�  úmode.string_storageúSelect * from ©Údtype_backendr†   z(adbc does not support chunksize argumentrê  rN   )rz   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Ñ"Ô"Ø$˜UÐ$Ð$ d¸-ð
ñ 
ô 
ˆð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð &Ð% n°mÀYÑOÔO€HÝÔ˜& (Ñ+Ô+Ð+à�ÐÐà×ÒÝŒ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%   Á
%A;Á;A?ÂA?Ã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§  rN   )r¨  rÖ  )rø  r!  r˜  r™  rŽ  r�  r¨  r™  r‰  rÅ   r  r©  s                r/   Ú!test_read_sql_dtype_backend_tabler°  
  sD  € ð �4ÐÐ˜F¨$Ð.Ð.Ø×ÒÝŒK×ÒðMð ñ ô ñ	
ô 	
ð 	
ð €IØ×"Ò" 4Ñ(Ô(€DØ€EØ	€BØ‡I‚I�5˜d¨%¸9€IÑEÔEÐEå	Ô	Ð0°.Ñ	AÔ	Að Mð MØ"•�˜TÑ"Ô" 5¨$¸mÐLÑLÔLˆðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mà%Ð% n°mÀYÑOÔO€HÝÔ˜& (Ñ+Ô+Ð+à�ÐÐàˆå	Ô	Ð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%   Â"B3Â3B7Â:B7Ã;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³  :  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 )NrL   rN   r[  rž  r   rã  ç      @ÚFloat64©rã  r¢  rµ  )TFN©TFTr.  ©r¡  r  N©r¡  r  r  ÚdÚeÚfÚgÚh)r   r   rÃ   r*  r-   r.   r/   r«  r«  J  s™   € åå˜�BœF A˜¨gÐ6Ñ6Ô6Ý˜	˜	˜	¨Ð1Ñ1Ô1Ý˜�bœf cÐ*°)Ð<Ñ<Ô<Ý˜˜˜¨yÐ9Ñ9Ô9Ø$Ð$Ð$Ø$Ð$Ð$Ø ��Ø!Ð!Ð!ð		
ð 		
ñô ð r.   c                 ó   — dd„} | S )Nr�  r   c                ó¦  ‡‡‡— | dk    rjt          t          j        g d¢t          j        ¬¦  «        ¦  «        }t          t          j        ddt          j        gt          j        ¬¦  «        ¦  «        }n½|dk    r[t          j        d¦  «        Šddlm	Š  ‰‰                     g d¢¦  «        ¦  «        } ‰‰                     g d	¢¦  «        ¦  «        }n\t          j        d¦  «        Št          ‰                     g d¢¦  «        ¦  «        }t          ‰                     g d	¢¦  «        ¦  «        }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¬¦  «        ||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 )NÚpythonr.  rž  r¡  r  r�  r   )ÚArrowExtensionArrayr¹  rL   rN   r[  r   rã  rµ  r¶  r·  TFÚbooleanr¸  rº  c           	     ó^   •— i | ])}| ‰‰                      ‰|         d ¬¦  «        ¦  «        “Œ*S )T)Úfrom_pandas)r©  )rS   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©  Úobject_r¨  ÚNAr!  r"  Úpandas.arraysrÃ  r   r   r   r*  rÇ   rá   )Ústorager¨  rý  Ústring_arrayÚstring_array_narÃ  râ   r/  s        @@@r/   r¢  z$dtype_backend_expected.<locals>.func\  s”  øøø€ ð �hÒÐÝ&¥r¤x°°°ÅrÄzÐ'RÑ'RÔ'RÑSÔSˆLÝ)­"¬(°C¸½b¼eÐ3DÍBÌJÐ*WÑ*WÔ*WÑXÔXˆOˆOà˜iÒ'Ð'ÝÔ$ YÑ/Ô/ˆBØ9Ð9Ð9Ð9Ð9Ð9à.Ð.¨r¯xªx¸¸¸Ñ/HÔ/HÑIÔIˆLØ1Ð1°"·(²(Ð;KÐ;KÐ;KÑ2LÔ2LÑMÔMˆOˆOõ Ô$ YÑ/Ô/ˆBÝ+¨B¯HªH°_°_°_Ñ,EÔ,EÑFÔFˆLÝ.¨r¯xªxÐ8HÐ8HÐ8HÑ/IÔ/IÑJÔJˆOåå˜Q¥¤¨˜N°'Ð:Ñ:Ô:Ý˜I˜I˜I¨WÐ5Ñ5Ô5Ý˜S¥"¤&¨#Ð.°iÐ@Ñ@Ô@Ý˜O˜O˜O°9Ð=Ñ=Ô=Ý˜T 5­"¬%Ð0¸	ÐBÑBÔBÝÐ/Ð/Ð/°yÐ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¬  Z  s   € ð1ð 1ð 1ð 1ðf €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 testrL   )rA   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¡  )rA   r¨  rž  )r½   r½   r½   rÈ  rß   r[  )
rŽ  r   r�  r‰  r¨  rÃ   rW  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                ó  — | }d}t          ddddœddddœg¦  «        }|                     d|¦  «         t          j        t          |¬¦  «        5  |                     d|d d¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
NzxStarting with pandas version 3.0 all arguments of to_sql except for the arguments 'name' and 'con' will be keyword-only.rL   rM   rN   rå  ÚexamplerÆ  r§  rÀ  )r   r�  rÅ   r¬  r^  )rg  r`   r®  râ   s       r/   Útest_keyword_deprecationrÖ  Ä  sá   € Ø€Dð	;ð õ 
˜! !¨!Ð,Ð,°A¸AÀAÐ.FÐ.FÐGÑ	HÔ	H€BØ‡I‚Iˆi˜ÑÔÐå	Ô	#¥M¸Ð	=Ñ	=Ô	=ð >ð >Ø
�	Š	�)˜T 4°9ˆ	Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >s   ÁA6Á6A:Á=A: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¡  rL   rM   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 )NrL   rM   rN   rO   ©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   ©r2   rŽ   r6   )rz  Ú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å  rs   rL   ÚhelloÚworld)r†  rä  r¸  Fr§  r¤  rM   r†  rä  )r?   r2   rŽ   r6   rˆ  rz  rà  rv   rB   Ú
create_allr   r�  r^   rä  r†  rä  r8  rÇ   )rg  r`   rz  rà  Ú	BaseModelrå  ry  r�  râ   Ú
test_queryr2   rŽ   r6   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                ó‚  — | }t          j        d¦  «         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   d}t          dddgi|t          dg|¬¦  «        ¬¦  «        }t          j	        ||¦  «         d S )Nr�  r‹  r¡  ÚxÚyFr§  )rz   r»   r�  zfuture.infer_stringTzstring[pyarrow_numpy]rž  )rA   rÇ   )
r!  r"  r   r�  r¨  r™  r%   r   rÅ   r  )rg  r`   r
  râ   r&  rA   r$  s          r/   Útest_read_sql_string_inferencerï  
  s  € Ø€Då
Ô˜	Ñ"Ô"Ð"Ø€EÝ	�C˜#˜s˜Ð$Ñ	%Ô	%€BØ‡I‚Iˆe˜ U°i€IÑ@Ô@Ð@å	Ô	Ð0°$Ñ	7Ô	7ð -ð -Ý  tÑ,Ô,ˆð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð $€EÝØ	ˆs�CˆjÐ µ°s°eÀ5Ð0IÑ0IÔ0Iðñ ô €Hõ Ô˜& (Ñ+Ô+Ð+Ð+Ð+s   ÁA7Á7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«  é   rµ  rž  r‹  r§  F)r�  r»   ú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ú  &  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ü  /  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 )NrL   rM   r  r¹   r¡  r  r  z$DROP SCHEMA IF EXISTS other CASCADE;zCREATE SCHEMA other;Útest_schema_publicFr  Útest_schema_public_explicitr@  )r±   rz   r»   r	  Útest_schema_otherÚotherrA  z!Table test_schema_other not foundrÆ  )r±   rz   r	  r»   r§  )r±   rz   r	  r»   r�  r  Tr  )r   r§   rv   rÏ   r�  r   r%   rÅ   r  r!  rÇ  rÈ  r   )
r>  r`   râ   rz   r
  r  r  Úres4r®  r"  s
             r/   Útest_psycopg2_schema_supportr  8  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                ó<  — | }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  ¬¦  «        }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;rL   Ú2021r­   r®   rM   r†  Ú
created_dtrî   Tr¶  Úperson)r7  r‚   r§   rv   rW   r¨  rÎ  r   r   rÅ   r  r   r    r  )	r>  r`   r‚   rV  rz   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õ Ô˜& (Ñ+Ô+Ð+õ 
Œ˜°Ð	5Ñ	5Ô	5ð '¸Ø×Ò˜XÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'sF   ¨A6½AÁA6ÁA#	Á#A6Á&A#	Á'A6Á6A:Á=A:Ã.DÄDÄD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_framerO   )r   r   r    rg  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ø  rL   rM   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   rL   rý  rÏ  rM   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)rW   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æ   r;  r<  rî   r=  r¿  rM   r>  ÚSTRINGr?  r  z!B \(<class 'bool'>\) not a stringrÆ  r°  rB  )r   r�  r  r!  rÇ  rÈ  Úbool)rƒ  r`   r3  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 )NTrL  r½   rL   rû  rž  r  rM  rQ  r¿  rM   rN  r  rO  rE  rP  r4   ÚREAL)r   r   r   r�  r  )rƒ  r`   r3  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 )NrL   rM   rN   rO   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_namesr0    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>+  s   € ˜f€ r.   z{:.10f}z'{!s}')r   rê  r‰   rÃ   Ústr_ÚbytesrQ   r|  rÁ   rW  r"  rƒ   r   r  rY  )r   r…  Ú_formattersÚprocessed_argsÚargÚ	formatters         r/   Úformat_queryr:  #  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#   rW   rÿ   r8  )rä  rz   r£  r"  s       r/   Útqueryr<  :  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           	     óv  — t          t          j                             d¦  «                             d¦  «        t          t          d¦  «        t          ¬¦  «        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 )NrM   ©rA  rO   ÚABCDrž  ú
2000-01-01rA  ræ   rà  ræ  r-  Fr  zselect * from test_tabler¡  ÚtxtÚIdxÚtest_table2zselect * from test_table2rç  )r   rÃ   r  r  r  r   r8  rû  r   r   r�  rÎ  r»   rÅ   r  r»  r   rŒ  rß   r±   )rƒ  rµ   r&  r$  Úframe2Únew_idxs         r/   Útest_xsqlite_basicrF  A  sŒ  € ÝÝ
Œ	×Ò˜aÑ Ô ×0Ò0°Ñ9Ô9Ý•d˜6‘l”l­&Ð1Ñ1Ô1Ý˜¨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          ¬¦  «        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 )NrM   r>  r?  rž  r@  rA  ræ   rà  ræ  rõ  r‹  z(INSERT INTO test VALUES (%s, %s, %s, %s)r“  rô  gü©ñÒMbP?)Úrtol)r   rÃ   r  r  r  r   r8  rû  r   r*  rÀ   r   rú  rV   rW   Úiterrowsr:  r<  r^   rÎ  r»   rÅ   r  )	rƒ  rµ   r9  rb   Úinsr  rT   Úfmt_sqlr&  s	            r/   Útest_xsqlite_write_row_by_rowrL  \  s>  € ÝÝ
Œ	×Ò˜aÑ Ô ×0Ò0°Ñ9Ô9Ý•d˜6‘l”l­&Ð1Ñ1Ô1Ý˜¨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          ¬¦  «        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 )NrM   r>  r?  rž  r@  rA  ræ   rà  ræ  r‹  z$INSERT INTO test VALUES (?, ?, ?, ?)r   rô  rL   )r   rÃ   r  r  r  r   r8  rû  r   r   rú  rV   rW   rÀ   r#   rY  r^   rÎ  r»   rÅ   r  )rƒ  rµ   r9  rb   rJ  rT   r£  r&  s           r/   Útest_xsqlite_executerN  s  sz  € ÝÝ
Œ	×Ò˜aÑ Ô ×0Ò0°Ñ9Ô9Ý•d˜6‘l”l­&Ð1Ñ1Ô1Ý˜¨r¸Ð<Ñ<Ô<ðñ ô €Eõ
 ”  vÑ.Ô.€JØ
×
Ò
Ñ
!Ô
!€CØ‡K‚K�
ÑÔÐØ
0€Cà
Œ*�QŒ-€CÝ	Ô	˜~Ñ	.Ô	.ð ,°*Ø×Ò˜3¥ c¡
¤
Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,à×ÒÑÔÐåŒ\Ð.°Ñ?Ô?€FØ”;˜r ˜r”?€F„LÝÔ˜& %¨¨¨¤)Ñ,Ô,Ð,Ð,Ð,s   Ã$DÄD	ÄD	c           	     ó„  — t          t          j                             d¦  «                             d¦  «        t          t          d¦  «        t          ¬¦  «        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 )NrM   r>  r?  rž  r@  rA  ræ   rà  ræ  r‹  ú r   rå   rL   ÚDATETIME)rà   zPRIMARY KEY ("A", "B"))r   rÃ   r  r  r  r   r8  rû  r   r   rú  Ú
splitlinesrš  r»  rV   rW   )rƒ  rµ   r9  ÚlinesÚlineÚtokensrb   s          r/   Útest_xsqlite_schemarV  ˆ  s;  € ÝÝ
Œ	×Ò˜aÑ Ô ×0Ò0°Ñ9Ô9Ý•d˜6‘l”l­&Ð1Ñ1Ô1Ý˜¨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)zExecution failed on sqlrÆ  z(INSERT INTO test VALUES("foo", "bar", 7))rV   rW   r   r#   r!  rÇ  r’  )rƒ  r9  rb   r£  s       r/   Útest_xsqlite_execute_failrZ  œ  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 )NrX  r  rY  z$Cannot operate on a closed database.rÆ  rô  r“  )r€  r   r„   r§   rV   rW   r   r#   r!  rÇ  rQ  r<  )r9  r`   rb   r£  r®  s        r/   Ú&test_xsqlite_execute_closed_connectionr\  ±  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©rz   r±   r»   )r   rÃ   Úonesr   r�  )rƒ  râ   s     r/   Ú$test_xsqlite_keyword_as_column_namesrb  Ç  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 )NrL   rM   Úc0rî   Úmono_dfFr`  c              3  ó&   K  — | ]}|d          V — ŒdS )r   Nr-   )rS   Ú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_dfrN   )r   r   r�  ÚsumrW   rÎ  rÅ   r  )rƒ  re  Úcon_xÚthe_sumr&  s        r/   Ú!test_xsqlite_onecolumn_of_integerrl  Ì  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 )NrL   rM   rå   ræ   rÜ  rv  )rç   rè   ÚEÚtable_if_existszSELECT * FROM z*'notvalidvalue' is not valid for if_existsrÆ  Únotvalidvalue)rµ   rz   r±   r�  r¿  z&Table 'table_if_exists' already existsr§  F)rµ   rz   r±   r�  r»   r“  rõ  r  rN   )©rN   rç   ©rO   rè   ©r½   rn  r  )rõ  r  rq  rr  rs  )r   r!  rÇ  rÈ  r   r�  r  r<  )rƒ  Údf_if_exists_1Údf_if_exists_2rË   Ú
sql_selectr®  s         r/   Útest_xsqlite_if_existsrw  Ü  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/)rD   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€  r   rY   r   r   r   r   rÕ   r	   Úpathlibr   r„   Útypingr   rP  r²  rÃ   r!  Úpandas._libsr   Úpandas.compatr   r   Ú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.core.arraysr   r   Úpandas.util.versionr   Ú	pandas.ior   Úpandas.io.sqlr   r    r!   r"   r#   r$   r%   r?   r˜  ÚfilterwarningsÚ
pytestmarkÚfixturer0   rC   re   rh   r{   r‡   r›   r    r¢   r¨   r´   rÊ   rÓ   rØ   rœ   rã   rñ   ró   r  r  r  r  r)  r-  r0  r3  r6  r8  r>  r@  rC  rE  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<  rD  rJ  rT  rY  r_  ra  rc  rj  rm  ro  rq  ru  rw  r{  r�  r„  rˆ  r�  rœ  rŸ  r¥  r¯  rÎ  r·  r»  rÅ  rÈ  rÓ  rÝ  rë  r|  rQ   rò  rõ  rü  rÿ  r  r
  r  r#  r'  r+  r0  r4  r6  r:  r>  rC  rM  rA   r±   r^  rb  re  Úskip_if_installedri  ro  rt  rx  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  r(  r,  r3  r5  rJ  rT  rb  ro  Úinfrv  rŽ  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#  r&  r0  r:  r<  rF  rL  rN  rV  rZ  r\  rb  rl  rw  r-   r.   r/   ú<module>r£     sŽ%  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 
€
€
€
ðð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø  Ð  Ð  Ð  Ð  Ð  Ø €€€à Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ØÐÐÐð Œ[×'Ò'ØCñô €
ð
 „ðð ñ „ðð8ð ð ñ2ð ð ð ñDð ð ð ñ>ð ð ð ð "ð "ð "ñ&ð ð ð ñ>ð ð ð ñ<ð ð ð ñ2ð ð ð ð(*7ð *7ð *7ñ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Ð#¨6¬;¬>Ð:Ñ:Ô:ðÐ ð €F„LÐ(°´´Ð?Ñ?Ô?Ø€F„LÐ$¨F¬K¬NÐ;Ñ;Ô;ðÐ ð )Ð,<Ð+=Ñ=Ð@PÑP€ð  Ð#8Ð"9Ñ9Ð<QÑQð ð
 !Ð$:Ð#;Ñ;Ð>TÑTð ð
 „×Ò˜ Ñ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Ø„×ÒÐ-°ÀÐ/NÑOÔOðMð Mñ PÔOñ 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Bð Bð Bð<ð <ð <ð=ð =ð =ð „×Ò˜Ð!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Ø„×Ò˜Ð"?Ð"?Ð"?Ñ@Ô@Ø„×ÒØà	ŒÐ,Ð.HÐIØ	Œ�w Ð/àÔØ!Ø&ð	
ð
 
Ô	˜W |Ð5ð	ñô ð%,ð %,ñô ñ AÔ@ñ 8Ô7ð%,ðP „×Ò˜Ð!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ð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ð „×Ò˜ Ñ1Ô1ð4ð 4ñ 2Ô1ð4ð( €Ô�hÑÔØ„×Ò˜ Ñ1Ô1ð4ð 4ñ 2Ô1ñ  Ôð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 „×Ò˜ Ñ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ð7ð 7ñ 9Ô8ð7ð „×Ò˜Ð!7Ñ8Ô8ð,ð ,ñ 9Ô8ð,ð< „×Ò˜Ð!7Ñ8Ô8ð,ð ,ñ 9Ô8ð,ð „×Ò˜Ð!7Ñ8Ô8ð	?ð 	?ñ 9Ô8ð	?ð „×Ò˜Ð!=Ñ>Ô>ð?ð ?ñ ?Ô>ð?ð> „×Ò˜Ð!7Ñ8Ô8ð*ð *ñ 9Ô8ð*ð0 „×Ò˜Ð!7Ñ8Ô8ð*ð *ñ 9Ô8ð*ð. „×Ò˜Ð!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ñ
!ð6 „×Ò˜Ð!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ðR „×Ò˜ Ñ1Ô1Ø„×Ò™¡*Ñ.>Ð!?Ñ@Ô@ñ+4ð +4ñ AÔ@ñ 2Ô1ñ+4ð\ „×Ò˜ Ñ1Ô1Ø„×Ò™Ð!QÑ!QÐ!QÑRÔRñ>ð >ñ SÔRñ 2Ô1ñ>ð „ññ ð ñ „ñð „ñ4ð 4ñ „ñ4ðn „×Ò˜ Ñ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 „„ñ 'ð  'ñ „ñ 'ñF:ð :ñ :ñ/ð /ñ /ð „×Ò™¡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.   