§
    öÛgþÍ  ã            $       ó   — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
 d dlmZ ddlmZmZmZmZmZ ddlmZ ddlmZ ddlmZ dd	lmZmZ dd
lmZ ddddg d‘d‘ddz   ‘ddz  ‘d‘d ‘d‘ ej        d¦  «        ‘ ej        d¦  «        ‘ ej        d¦  «        ‘ ej        d¦  «        ‘ ej        d¦  «        ‘ ej        d¦  «        ‘ ej        d¦  «        ‘ ej        d¦  «        ‘ ej        d¦  «        ‘ ej         e d¦  «        ¦  «        ‘ ej        d¦  «        ‘ ej        d¦  «        ‘ ej        d ¦  «        ‘ ej        d!¦  «        ‘ ej        d¦  «        ‘ ej        d¦  «        ‘ ej        d"¦  «        ‘ ej        d#¦  «        ‘ ej        d$¦  «        ‘ ej        d%¦  «        ‘ ej        d&¦  «        ‘ ej        d'¦  «        ‘ ej        d(¦  «        ‘ ej        d)¦  «        ‘ ej        d*¦  «        ‘ ej        d+¦  «        ‘ ej        d,¦  «        ‘ ej        d-¦  «        ‘ ej        d.¦  «        ‘ ej        d/¦  «        ‘ ej        d0¦  «        ‘ ej        d1¦  «        ‘ ej        d2¦  «        ‘ ej        d3¦  «        ‘ ej        d4¦  «        ‘ ej        d5¦  «        ‘ ej        d6¦  «        ‘ ej        d7¦  «        ‘ ej        d8¦  «        ‘ ej        d9¦  «        ‘ ej        d:¦  «        ‘ ej        d;¦  «        ‘ ej        d<¦  «        ‘ ej        d=¦  «        ‘ ej        d>¦  «        ‘ ej        d?¦  «        ‘ ej        d@¦  «        ‘ ej        dA¦  «        ‘ ej        dB¦  «        ‘ ej        dC¦  «        ‘ ej        dD¦  «        ‘ ej        dE¦  «        ‘ ej        dF¦  «        ‘ ej        dG¦  «        ‘ ej        dH¦  «        ‘ ej        dI¦  «        ‘ ej        dJ¦  «        ‘ ej        dK¦  «        ‘ ej        dL¦  «        ‘ ej        dM¦  «        ‘ ej        dN¦  «        ‘ ej        dO¦  «        ‘ ej        dP¦  «        ‘ ej        dQ¦  «        ‘ ej        dR¦  «        ‘ ej        dS¦  «        ‘ ej        dT¦  «        ‘ ej        dU¦  «        ‘ ej        dV¦  «        ‘ ej        dW¦  «        ‘ ej        dX¦  «        ‘ ej        dY¦  «        ‘ ej        dZ¦  «        ‘ ej        d[¦  «        ‘ ej        d\¦  «        ‘ ej        d]¦  «        ‘ ej        d^¦  «        ‘ ej        d_¦  «        ‘ ej        d`¦  «        ‘ ej        da¦  «        ‘ ej        db¦  «        ‘ ej        dc¦  «        ‘ ej        dd¦  «        ‘R fde e! e"df¦  «        ¦  «         e! e"dgdd¦  «        ¦  «        dhdiffdjg dk¢g ffdlg dk¢dgdggg gfdmg dn¢g gfdodpdqgdpdqgg gfdr ej        dsdtdudtdvdw¦  «         ej        dxdddtdydw¦  «         ej        dzdddtdydw¦  «         ej        d{dddtdydw¦  «        eegfd| ej#        dsdtdu¦  «         ej#        dxdd¦  «         ej#        dzdd¦  «         ej#        ddd¦  «        gfd} ej        d~ddu¦  «         ej        d dd¦  «         ej        d€d�d�¦  «        gfd‚ ej        dƒdtd~dwdwd  ed„¦  «        ¬…¦  «         ej        d†dtd‡dwdwd  edˆ¦  «        ¬…¦  «         ej        d‰dddwdwd  edŠ¦  «        ¬…¦  «         ej        d‹dddwdwd  edx¦  «        ¬…¦  «         ej        dŒdddwdwd  edx¦  «        ¬…¦  «        eegfd� ej        dwdwd  ed„¦  «        ¬…¦  «         ej        dwdwd  edˆ¦  «        ¬…¦  «         ej        dwdwd  edŠ¦  «        ¬…¦  «         ej        dwdwd  edx¦  «        ¬…¦  «         ej        dŽdvd  ed ¦  «        ¬…¦  «        gfd� ej$        d�dwd¦  «         ej$        d d d‘¦  «         ej$        d d ¦  «         ej$        d’d ¦  «         ej$        d’d“¦  «        gfd”g d•¢fd–g d—¢fd˜g d™¢fdšg d›¢fdœ ed�¦  «         edž¦  «        dgfdŸ ed�¦  «         edž¦  «         ed ¦  «         ed¡¦  «         ed¢¦  «         ed£¦  «         ed¤¦  «         ed¥¦  «         ed¦¦  «         ed§¦  «         ed§¦  «         ed¨¦  «         ed©¦  «        gfdªd«d¬gg d­¢g d®¢gfgZ%	 d dl&Z&e% '                    d¯ e&j(        d°¦  «         e&j(        d±¦  «         e&j(        d²¦  «         e&j(        d³¦  «         e&j)        d´¦  «         e&j)        dµ¦  «         e&j)        d¶¦  «         e&j)        d¶¦  «         e&j)        d·¦  «        g	fd¸ e&j*        d¹¦  «         e&j*        dº¦  «         e&j*        d»¦  «         e&j*        d¼¦  «         e&j*        d½¦  «         e&j+        d¾¦  «         e&j+        d¿¦  «         e&j+        dÀ¦  «         e&j+        dÁ¦  «         e&j+        dÂ¦  «         e&j+        dÃ¦  «        gfdÄ e&j(        d±¦  «         e&j)        d´¦  «        g e&j(        d²¦  «         e&j)        d¶¦  «        ggfdÅ e&j*        dº¦  «         e&j+        dÃ¦  «        g e&j*        dÆ¦  «         e&j+        dÁ¦  «        g e&j*        dÇ¦  «         e&j+        dÁ¦  «        ggfg¦  «         n# e,$ r Y nw xY w G dÈ„ dÉej-        ¦  «        Z. G dÊ„ dËej-        ¦  «        Z/e0dÌk    r ej1        ¦   «          dS dS )Íé    N)ÚchainÚislice)Ú
itemgetteré   )ÚFixedOffsetÚnegative_infinity_datetimeÚinfinity_datetimeÚnegative_infinity_dateÚinfinity_date)Útypes)Úetree)Ú
exceptions)ÚBitÚVarbit)Úpg_tmp)Úsmallint)iÿ  i €ÿÿéÿÿÿÿr   é   )Úint)iÿÿÿi   €r   r   r   )Úbigint)ì   ÿÿÿÿ ìûÿÿÿ         r   r   r   Únumericlûÿÿÿ         l            é€   r   r   z0.00000000000000z1.00000000000000z-1.00000000000000z-2.00000000000000z1000000000000000.00000000000000z-0.00000000000000éÒ  i.ûÿÿz1234000000.00088883231gÐ† é H“@z
3123.23111z-3123000000.23111z3123.2311100000z-03123.0023111z10000.23111z100000.23111z1000000.23111z10000000.23111z100000000.23111z1000000000.23111z1000000000.3111z1000000000.111z1000000000.11z100000000.0z
10000000.0z	1000000.0z100000.0z10000.0z1000.0z100.0Ú100z100.1z100.12z100.123z100.1234z	100.12345z
100.123456z100.1234567z100.12345679z100.123456790z100.123456790000000000000000z1.0z0.0z-1.0z	1.0E-1000z1.0E1000z	1.0E10000z
1.0E-10000z	1.0E15000z
1.0E-15000z
1.0E-16382z	1.0E32767z0.000000000000000000000000001z0.000000000000010000000000001z0.00000000000000000000000001z0.00000000100000000000000001z0.0000000000000000000000001z0.000000000000000000000001z0.00000000000000000000001z0.0000000000000000000001z0.000000000000000000001z0.00000000000000000001z0.0000000000000000001z0.000000000000000001z0.00000000000000001z0.0000000000000001z0.000000000000001z0.00000000000001z0.0000000000001z0.000000000001z0.00000000001z0.0000000001z0.000000001z
0.00000001z	0.0000001z0.000001z0.00001z0.0001z0.001z0.01z0.1Úbyteaé   éÿ   s     ó   fooz
smallint[])é{   iA  i…ÿÿÿi¿þÿÿzint[]zbigint[])r   r   r   l   ÿÿÿ lüÿÿÿÿÿÿ r   r   z	varchar[]ÚfooÚbarÚ	timestampi¸  é   é   é   é
   iÐ  é   éô  éú   ÚdateÚtimeé   é   é   é;   ÚtimestamptziÆ  i   ©Útzinfoé¾  é   ip  iž  iX  i  i`	  Útimetzé   Úintervalé(   iá  éœÿÿÿépþÿÿÚpoint))r(   r   ©r   r   ©r   r   ©r   r   )r;   r   )r;   r<   )g¯Î1 {YÀg&SãyÀ)iÿÿ  gpœoŸ°ÿô?Úlseg)©r?   r?   ))r(   r%   )r6   é%  ))é7   r%   )r(   rC   ©r>   r>   ))r;   ç±3…Îkìb?©é2   gK“RÐíµF@))g°rh‘í|¿?rF   rG   Úcircle))r?   r   )r?   r   )r?   çÜh o�ð?)r@   rJ   )r>   rJ   ))r   r   rJ   ))r   r   rJ   Úbox)rB   rE   )r@   r>   ))r(   r   r>   ))gtµûËY@g o�Å�F@)g¶óýÔxÁ^Àg}Ëœ.K?–ÀÚbitÚ1Ú0ÚvarbitÚ10Ú11Ú00Ú001Ú101Ú111Ú0010Ú1010Ú#01010101011111011010110101010101111Ú010111101111z	macaddr[]ú00:00:00:00:00:00úff:ff:ff:ff:ff:ff)ú00:00:00:00:00:01rZ   r[   )r\   rZ   r[   z10:00:00:00:00:00Úinetz255.255.255.255z	127.0.0.1z10.0.0.1z0.0.0.0z::1z'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffffzfe80::1z::Úcidrz255.255.255.255/32z127.0.0.0/8z127.1.0.0/16z10.0.0.0/32z	0.0.0.0/0z+ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128z::1/128zfe80::1/128z	fe80::/64z	fe80::/16z::/0zinet[]zcidr[]z10.0.0.0/16z10.102.0.0/16c                   ó¶  — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Zed„ ¦   «         Zed„ ¦   «         Z d„ Z!ed„ ¦   «         Z"ed „ ¦   «         Z#ed!„ ¦   «         Z$eddd#„¦   «         Z%ed$„ ¦   «         Z&d%„ Z'ed&„ ¦   «         Z(d'„ Z)ed(„ ¦   «         Z*ed)„ ¦   «         Z+d*„ Z,ed+„ ¦   «         Z-ed,„ ¦   «         Z.ed-„ ¦   «         Z/d.„ Z0ed/„ ¦   «         Z1ed0„ ¦   «         Z2d1„ Z3ed2„ ¦   «         Z4ed3„ ¦   «         Z5ed4„ ¦   «         Z6ed5„ ¦   «         Z7ed6„ ¦   «         Z8d7„ Z9ed8„ ¦   «         Z:ed9„ ¦   «         Z;ed:„ ¦   «         Z<ed;„ ¦   «         Z=d<„ Z>ed=„ ¦   «         Z?ed>„ ¦   «         Z@ed?„ ¦   «         ZAed@„ ¦   «         ZBedA„ ¦   «         ZCedB„ ¦   «         ZDedC„ ¦   «         ZEedD„ ¦   «         ZFedE„ ¦   «         ZGedF„ ¦   «         ZHedG„ ¦   «         ZIedH„ ¦   «         ZJedI„ ¦   «         ZKedJ„ ¦   «         ZLedK„ ¦   «         ZMedL„ ¦   «         ZNedM„ ¦   «         ZOedN„ ¦   «         ZPedO„ ¦   «         ZQedP„ ¦   «         ZRedQ„ ¦   «         ZSedR„ ¦   «         ZSedS„ ¦   «         ZTedT„ ¦   «         ZUedU„ ¦   «         ZVedV„ ¦   «         ZWedW„ ¦   «         ZXedX„ ¦   «         ZYedY„ ¦   «         ZZedZ„ ¦   «         Z[ed[„ ¦   «         Z\ed\„ ¦   «         Z]ed]„ ¦   «         Z^ed^„ ¦   «         Z_ed_„ ¦   «         Z`ed`„ ¦   «         Zaeda„ ¦   «         Zbedb„ ¦   «         ZcdcS )eÚtest_driverc                 ó†  ‡— d„ }g Št          j        |‰f¬¦  «        }|                     ¦   «          t          j        d¦  «         |                     ¦   «         rAt                               ¦   «          t          j        d¦  «         |                     ¦   «         °Aˆfd„}|                      t          j
        |‰¦  «         d S )Nc                 óÔ   — 	 t                                d¦  «         |                      d ¦  «         d S # t          $ r* |                      t	          j        ¦   «         ¦  «         Y d S w xY w)NzSELECT pg_sleep(5))ÚdbÚexecuteÚappendÚ	ExceptionÚsysÚexc_info)Úls    úQ/granary/edev/quantum/lib/python3.11/site-packages/postgresql/test/test_driver.pyÚpg_sleepz+test_driver.testInterrupt.<locals>.pg_sleepQ  sn   € ðÝ‡J‚JÐ#Ñ$Ô$Ð$ð ‡H‚HˆT�N„N€NØ
€Føõ	 ð ð ð Ø‡H‚H�SŒ\‰^Œ^ÑÔÐÐÐÐðøøøs   ‚3 ³0A'Á&A')ÚtargetÚargsgš™™™™™É?gš™™™™™¹?c                 ó4   •— | d         �‰d         \  }}}|‚d S )Nr   © )ri   ÚeÚvÚtbÚrls       €rj   Ú	raise_excz,test_driver.testInterrupt.<locals>.raise_exca  s)   ø€ Øˆ„dÐØ�!Œu�H€A€qˆ"Ø
€Gð Ðó    )Ú	threadingÚThreadÚstartr-   ÚsleepÚis_aliverc   Ú	interruptÚassertRaisesÚpg_excÚQueryCanceledError)Úselfrk   Útrt   rs   s       @rj   ÚtestInterruptztest_driver.testInterruptO  sÂ   ø€ ðð ð ð 
€"ÝÔ °"°Ð7Ñ7Ô7€!Ø‡'‚'�)„)€)Ý„*ˆS�/„/€/Ø	�
Š
‰Œð Ý‡<‚<�>„>€>Ý„:ˆc�?„?€?ð 	
�
Š
‰Œð ðð ð ð ð ð ×Ò•FÔ-¨y¸"Ñ=Ô=Ð=Ð=Ð=ru   c                 óÀ  — t                                d¦  «         	 t                                ¦   «         5 }|                      |                     d¦  «                             ¦   «         d¦  «         |                      |                     d¦  «                             ¦   «         d¦  «         d d d ¦  «         n# 1 swxY w Y   t                                d¦  «         n# t                                d¦  «         w xY wt                                ¦   «         }	 |                      |                     d¦  «                             ¦   «         d¦  «         |                     ¦   «          n# |                     ¦   «          w xY wt                                d¦  «        }|                     ¦   «         }|                      |                     ¦   «         |                     ¦   «         ¦  «         |                     ¦   «          |                     ¦   «         }|                     ¦   «         }|                      |                     ¦   «         |                     ¦   «         ¦  «         d S )Nz)create table _can_clone_see_this (i int);úselect 1r   zWselect count(*) FROM information_schema.tables where table_name = '_can_clone_see_this'zdrop table _can_clone_see_this)	rc   rd   ÚcloneÚassertEqualÚprepareÚfirstÚcloseÚdeclareÚread)r   Údb2Údb3ÚpsÚps2ÚcÚc2s          rj   Ú
testClonesztest_driver.testClonesg  s  € å‡*‚*Ð8Ñ9Ô9Ð9ð	0Ý
�Š‰
Œ
ð �cØ×Ò�S—[’[ Ñ,Ô,×2Ò2Ñ4Ô4°aÑ8Ô8Ð8Ø×Ò�S—[’[ð1ñô ÷ ‚u�w„w�ñô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ‡:‚:Ð.Ñ/Ô/Ð/Ð/ø…2‡:‚:Ð.Ñ/Ô/Ð/Ð/øøøõ 	�Š‰
Œ
€#ðØ×Ò�C—K’K 
Ñ+Ô+×1Ò1Ñ3Ô3°QÑ7Ô7Ð7à‡9‚9�;„;€;€;ø€3‡9‚9�;„;€;€;øøøå	‡z‚z�*ÑÔ€"Ø
�Š‰
Œ
€#Ø×Ò�3—9’9‘;”; §¢¡
¤
Ñ+Ô+Ð+Ø‡)‚)�+„+€+Ø‡j‚j�l„l€!Ø‡w‚w�y„y€"Ø×Ò�1—6’6‘8”8˜RŸWšW™YœYÑ'Ô'Ð'Ð'Ð's;   œC µA7B8Â,C Â8B<Â<C Â?B<Ã C ÃC:Ä;E' Å'E=c                 ó   — t                                d¦  «        }|                     ¦   «         }|                     ¦   «          |                      t
          j        |j        ¦  «         |                      | 	                    ¦   «         d¦  «         |                     ¦   «          |                      t
          j
        |j	        ¦  «         t                                ¦   «          |                      t
          j        t           j        d¦  «         |                     ¦   «          |                     ¦   «          t                                ¦   «          d S )NúSELECT 1r   r"   )rc   r†   r‰   rˆ   r|   r}   ÚCursorNameErrorrŠ   r…   r‡   ÚStatementNameErrorÚConnectionDoesNotExistErrorrd   ©r   r�   r�   s      rj   ÚtestItsClosedztest_driver.testItsClosed„  sí   € å	‡z‚z�*ÑÔ€"à‡j‚j�l„l€!à‡'‚'�)„)€)Ø×Ò•FÔ*¨A¬FÑ3Ô3Ð3Ø×Ò�2—8’8‘:”:˜qÑ!Ô!Ð!à‡(‚(�*„*€*Ø×Ò•FÔ-¨r¬xÑ8Ô8Ð8å‡(‚(�*„*€*Ø×ÒÝ	Ô%Ý„:ˆuñô ð ð
 ‡(‚(�*„*€*Ø‡'‚'�)„)€)Ý‡(‚(�*„*€*€*€*ru   c                 óð  — t                                d¦  «        }|j        }|                     ¦   «         }|j        }|                     ¦   «         }|j        }t                                ¦   «          ~t          j        ¦   «          |  	                    t           j
                             |¦  «        t           j        j        v ¦  «         ~t          j        ¦   «          |  	                    t           j
                             |¦  «        t           j        j        v ¦  «         ~t          j        ¦   «          |  	                    t           j
                             |¦  «        t           j        j        v ¦  «         d S )Nrƒ   )rc   r†   Ústatement_idÚchunksÚ	cursor_idr‰   Ú_pq_completeÚgcÚcollectÚ
assertTrueÚtypioÚencodeÚpqÚgarbage_cursorsÚgarbage_statements)r   r�   ÚsidÚciÚci_idr�   Úcids          rj   ÚtestGarbageztest_driver.testGarbage›  s  € å	‡z‚z�*ÑÔ€"Ø
Œ€#Ø	‡y‚y�{„{€"Ø
Œ,€%Ø‡j‚j�l„l€!Ø	Œ€#å‡/‚/ÑÔÐð Ý„*�,„,€,Ø‡/‚/•"”(—/’/ #Ñ&Ô&­"¬%Ô*?Ð?Ñ@Ô@Ð@ØÝ„*�,„,€,Ø‡/‚/•"”(—/’/ %Ñ(Ô(­B¬EÔ,AÐAÑBÔBÐBØÝ„*�,„,€,Ø‡/‚/•"”(—/’/ #Ñ&Ô&­"¬%Ô*BÐBÑCÔCÐCÐCÐCru   c                 óÂ  — t                                d¦  «        } |¦   «         }|                      t          |t          ¦  «        ¦  «         |                       |¦   «         dg¦  «         t                                d¦  «        }|                       |¦   «         dg¦  «         t                                d¦  «        }|                       |¦   «         ddg¦  «         d S )Nr“   ©r   zSELECT 1, 2)r   r   z!SELECT 1, 2 UNION ALL SELECT 3, 4©é   é   )rc   r†   r    Ú
isinstanceÚlistr…   )r   r�   Úrs      rj   ÚtestStatementCallztest_driver.testStatementCall±  s¿   € å	‡z‚z�*ÑÔ€"Ø€b�d„d€!Ø‡/‚/•*˜Q¥Ñ%Ô%Ñ&Ô&Ð&Ø×Ò�2�2‘4”4˜$˜Ñ Ô Ð Ý	‡z‚z�-Ñ Ô €"Ø×Ò�2�2‘4”4˜%˜Ñ!Ô!Ð!Ý	‡z‚zÐ5Ñ6Ô6€"Ø×Ò�2�2‘4”4˜% ˜Ñ'Ô'Ð'Ð'Ð'ru   c                 óJ  — t          d¦  «                             ¦   «         }|                      |d¦  «         t                                d¦  «        j        }t                                d¦  «        j        }t                                d¦  «        j        }|                       |¦   «         d¦  «         |                       |¦   «         d¦  «         |                       |¦   «         d¦  «         |                       |¦   «         d¦  «         |                       |¦   «         d¦  «         |                       |¦   «         d¦  «         |                       |¦   «         d¦  «         |                       |¦   «         d¦  «         |                       |¦   «         d	¦  «         d S )
NzCREATE TEMP TABLE first (i int)zCREATE TABLEzINSERT INTO first VALUES (123)z&UPDATE first SET i = 321 WHERE i = 123zDELETE FROM firstr   r   r®   r   )r†   r‡   r…   rc   )r   ÚcmdÚfinsÚfupdÚfdels        rj   ÚtestStatementFirstDMLz!test_driver.testStatementFirstDML¼  ss  € åÐ1Ñ2Ô2×8Ò8Ñ:Ô:€#Ø×Ò�3˜Ñ'Ô'Ð'Ý	�ŠÐ4Ñ	5Ô	5Ô	;€$Ý	�ŠÐ<Ñ	=Ô	=Ô	C€$Ý	�ŠÐ'Ñ	(Ô	(Ô	.€$Ø×Ò�4�4‘6”6˜1ÑÔÐØ×Ò�4�4‘6”6˜1ÑÔÐØ×Ò�4�4‘6”6˜1ÑÔÐØ×Ò�4�4‘6”6˜1ÑÔÐØ×Ò�4�4‘6”6˜1ÑÔÐØ×Ò�4�4‘6”6˜1ÑÔÐØ×Ò�4�4‘6”6˜1ÑÔÐØ×Ò�4�4‘6”6˜1ÑÔÐØ×Ò�4�4‘6”6˜1ÑÔÐÐÐru   c                 ó  — t                                d¦  «        }|                     dd¦  «        } |dd¦  «         |                      t	          t          t          t          d¦  «        |¦  «        d¦  «        ¦  «        t	          t          d¦  «        ¦  «        ¦  «          |dd¦  «         |                      t	          t          t          d¦  «        |¦  «        ¦  «        t	          t          dd¦  «        ¦  «        ¦  «         d S )Nz7SELECT i FROM generate_series($1::int, $2::int) AS g(i)r   i'  r   iˆ  é'  )	rc   r†   Úrowsr…   r±   r   Úmapr   Úrange)r   r�   r¼   s      rj   ÚtestStatementRowsPersistencez(test_driver.testStatementRowsPersistenceÍ  sé   € õ 
‡z‚zÐKÑLÔL€"à	�Š��GÑ	Ô	€$Ø€"€Q€q�'„'€'à×ÒÝ��s•:˜a‘=”= $Ñ'Ô'¨Ñ.Ô.Ñ/Ô/Ý�ˆd‰ŒÑÔñô ð ð €"€Q€q�'„'€'à×ÒÝ��J�q‰MŒM˜4Ñ Ô Ñ!Ô!Ý�ˆd�EÑÔÑÔñô ð ð ð ru   c                 ó†  — t                                d¦  «        }|                      t          |¦  «         |                      t          |dd¦  «         t                                d¦  «        }|                      t          |d¦  «         t                                d¦  «        }|                      t          |ddd¦  «         d S )Nzselect $1::integerr   r   rƒ   zselect $1::int, $2::textr"   r#   )rc   r†   r|   Ú	TypeError©r   r�   s     rj   ÚtestStatementParametersz#test_driver.testStatementParametersà  s©   € õ 
‡z‚zÐ&Ñ'Ô'€"Ø×Ò•I˜rÑ"Ô"Ð"ð ×Ò•I˜r 1 aÑ(Ô(Ð(õ 
‡z‚z�*ÑÔ€"Ø×Ò•I˜r 1Ñ%Ô%Ð%õ 
‡z‚zÐ,Ñ-Ô-€"Ø×Ò•I˜r 1 e¨UÑ3Ô3Ð3Ð3Ð3ru   c                 ó,  — t                                d¦  «        }|                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        t          j	        f¦  «         |                      t          |j
        ¦  «        t          f¦  «         |                      t          |j        ¦  «        t          f¦  «         |                     d¦  «        }|                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        t          f¦  «         t                                d¦  «        }|                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        t          j        f¦  «         |                      t          |j        ¦  «        t          f¦  «         |                      t          |j
        ¦  «        t          f¦  «         |                     d¦  «        }|                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        t          j        f¦  «         |                      t          |j        ¦  «        t          f¦  «         t                                d	¦  «        }|                      t          |j        ¦  «        d
¦  «         |                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        t          j        t          j        f¦  «         |                      t          |j        ¦  «        t          j        t          j        f¦  «         |                      t          |j
        ¦  «        t          t          f¦  «         |                      t          |j        ¦  «        t          t          f¦  «         |                     dd¦  «        }|                      t          |j        ¦  «        d
¦  «         |                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        t          j        t          j        f¦  «         |                      t          |j        ¦  «        t          t          f¦  «         t                                d¦  «         t                                d¦  «                             ¦   «         }t                                d¦  «        }|                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        t          j        t          j        |f¦  «         |                      t          |j        ¦  «        t          j        t          j        |f¦  «         |                      t          |j
        ¦  «        t          t          t          f¦  «         |                      t          |j        ¦  «        t          t          t          f¦  «         |                     ddd¦  «        }|                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        t          j        t          j        |f¦  «         |                      t          |j        ¦  «        t          t          t          f¦  «         d S )Nz#SELECT $1::integer AS my_int_column)Úmy_int_column)ÚINTEGERr/   z!SELECT $1::text AS my_text_column)Úmy_text_column)úpg_catalog.textÚtextdataz8SELECT $1::text AS my_column1, $2::varchar AS my_column2)Ú
my_column1Ú
my_column2)rÈ   úCHARACTER VARYINGÚvarchardataz#CREATE TYPE public.myudt AS (i int)z-select oid from pg_type WHERE typname='myudt'zXSELECT $1::text AS my_column1, $2::varchar AS my_column2, $3::public.myudt AS my_column3)rÊ   rË   Ú
my_column3)rÈ   rÌ   z"public"."myudt")r!   )rc   r†   r…   ÚtupleÚcolumn_namesÚsql_column_typesÚsql_parameter_typesÚpg_parameter_typesÚpg_typesÚINT4OIDÚparameter_typesr   Úcolumn_typesr‰   ÚTEXTOIDÚstrÚpg_column_typesÚ
VARCHAROIDrd   r‡   )r   r�   r�   Ú	myudt_oids       rj   ÚtestStatementAndCursorMetadataz*test_driver.testStatementAndCursorMetadatañ  s¸  € å	‡z‚zÐ7Ñ8Ô8€"Ø×Ò•5˜œÑ)Ô)Ð+=Ñ>Ô>Ð>Ø×Ò•5˜Ô,Ñ-Ô-¨|Ñ<Ô<Ð<Ø×Ò•5˜Ô/Ñ0Ô0°,Ñ?Ô?Ð?Ø×Ò•5˜Ô.Ñ/Ô/µ(Ô2BÐ1DÑEÔEÐEØ×Ò•5˜Ô+Ñ,Ô,­s¨fÑ5Ô5Ð5Ø×Ò•5˜œÑ)Ô)­C¨6Ñ2Ô2Ð2Ø‡j‚j��n„n€!Ø×Ò•5˜œÑ(Ô(Ð*<Ñ=Ô=Ð=Ø×Ò•5˜Ô+Ñ,Ô,¨lÑ;Ô;Ð;Ø×Ò•5˜œÑ(Ô(­3¨&Ñ1Ô1Ð1å	‡z‚zÐ5Ñ6Ô6€"Ø×Ò•5˜œÑ)Ô)Ð+>Ñ?Ô?Ð?Ø×Ò•5˜Ô,Ñ-Ô-Ð/CÑDÔDÐDØ×Ò•5˜Ô/Ñ0Ô0Ð2FÑGÔGÐGØ×Ò•5˜Ô.Ñ/Ô/µ(Ô2BÐ1DÑEÔEÐEØ×Ò•5˜œÑ)Ô)­C¨6Ñ2Ô2Ð2Ø×Ò•5˜Ô+Ñ,Ô,­s¨fÑ5Ô5Ð5Ø‡j‚j�ÑÔ€!Ø×Ò•5˜œÑ(Ô(Ð*=Ñ>Ô>Ð>Ø×Ò•5˜Ô+Ñ,Ô,Ð.BÑCÔCÐCØ×Ò•5˜Ô*Ñ+Ô+­hÔ.>Ð-@ÑAÔAÐAØ×Ò•5˜œÑ(Ô(­3¨&Ñ1Ô1Ð1å	‡z‚zÐLÑMÔM€"Ø×Ò•5˜œÑ)Ô)Ð+FÑGÔGÐGØ×Ò•5˜Ô,Ñ-Ô-Ð/WÑXÔXÐXØ×Ò•5˜Ô/Ñ0Ô0Ð2ZÑ[Ô[Ð[Ø×Ò•5˜Ô.Ñ/Ô/µ(Ô2BÅHÔDWÐ1XÑYÔYÐYØ×Ò•5˜Ô+Ñ,Ô,­xÔ/?ÅÔATÐ.UÑVÔVÐVØ×Ò•5˜Ô+Ñ,Ô,­sµ3¨iÑ8Ô8Ð8Ø×Ò•5˜œÑ)Ô)­Cµ¨9Ñ5Ô5Ð5Ø‡j‚j�˜]Ñ+Ô+€!Ø×Ò•5˜œÑ(Ô(Ð*EÑFÔFÐFØ×Ò•5˜Ô+Ñ,Ô,Ð.VÑWÔWÐWØ×Ò•5˜Ô*Ñ+Ô+­hÔ.>ÅÔ@SÐ-TÑUÔUÐUØ×Ò•5˜œÑ(Ô(­3­s¨)Ñ4Ô4Ð4å‡*‚*Ð2Ñ3Ô3Ð3Ý�jŠjÐHÑIÔI×OÒOÑQÔQ€)Ý	‡z‚zÐlÑmÔm€"Ø×Ò•5˜œÑ)Ô)Ð+TÑUÔUÐUØ×Ò•5˜Ô,Ñ-Ô-Ð/kÑlÔlÐlØ×Ò•5˜Ô/Ñ0Ô0Ð2nÑoÔoÐoØ×Ò•5˜Ô+Ñ,Ô,ÝÔ•XÔ(¨)ð/5ñ ô ð ð ×Ò•5˜Ô.Ñ/Ô/ÝÔ•XÔ(¨)ð25ñ ô ð ð ×Ò•5˜Ô+Ñ,Ô,­sµ3µu¨oÑ>Ô>Ð>Ø×Ò•5˜œÑ)Ô)­CµµE¨?Ñ;Ô;Ð;Ø‡j‚j�˜]¨FÑ3Ô3€!Ø×Ò•5˜œÑ(Ô(Ð*SÑTÔTÐTØ×Ò•5˜Ô+Ñ,Ô,Ð.jÑkÔkÐkØ×Ò•5˜Ô*Ñ+Ô+ÝÔ•XÔ(¨)ð.ñ ô ð ð ×Ò•5˜œÑ(Ô(­3­sµ5¨/Ñ:Ô:Ð:Ð:Ð:ru   c                 ó²  — ddt          j        d¦  «        t          j        dddddd	¦  «        f}t                               d
¦  «        }|                     ¦   «         }|                      t          |¦  «        |¦  «         |                      d|v ¦  «         |                      d|v ¦  «         |                      t          j        d¦  «        |v ¦  «         |                      t          j        dddddd	¦  «        |v ¦  «         |                      t          |j	        ¦  «        t          d„ t          d¦  «        D ¦   «         ¦  «        ¦  «         |                      |d         |d         |d         |d         f|d	         |d         |d         |d         f¦  «         |                      |d         |d         |d         |d         f|d	         |d         |d         |d         f¦  «         t          |                     ¦   «         ¦  «        }t          |j	        ¦  «        }|                     ¦   «          |                     ¦   «          |                      ||¦  «         |                      t          |                     ¦   «         ¦  «        t          |¦  «        ¦  «         |                      t          |                     ¦   «         ¦  «        t          t!          |j	        |¦  «        ¦  «        ¦  «         t#          |¦  «        }|j	        D ]$}|                      ||         ||         ¦  «         Œ%|                     ¦   «         D ]1}|                      |                     |¦  «        ||         ¦  «         Œ2t          |¦  «        }|                      ||¦  «         |                     t(          ¬¦  «        }	|                      t+          |	d	         ¦  «        t(          ¦  «         |                     t(          ¦  «        }	|                      t+          |	d	         ¦  «        t(          ¦  «         |                     t(          t,          ¦  «        }	|                      t+          |	d	         ¦  «        t(          ¦  «         |                      t+          |	d         ¦  «        t,          ¦  «         |                     d t,          ¦  «        }	|                      t+          |	d	         ¦  «        t,          ¦  «         |                      t+          |	d         ¦  «        t,          ¦  «         |                     t(          t,          t(          ¬¦  «        }	|                      t+          |	d	         ¦  «        t(          ¦  «         |                      t+          |	d         ¦  «        t,          ¦  «         |                      t+          |	d         ¦  «        t(          ¦  «         t          d¦  «        D ]t}
|                      |
|                     dt)          |
¦  «        z   ¦  «        ¦  «         |                      dt)          |
¦  «        z   |                     |
¦  «        ¦  «         Œud S )Nr   rN   z0.00r5   r%   r6   r.   r'   r   zkSELECT 1::int2 AS col0, '0'::text AS col1, 0.00::numeric as col2, '1982-05-18 12:30:00'::timestamp as col3;c                 ó2   — g | ]}d t          |¦  «        z   ‘ŒS )Úcol)rÙ   ©Ú.0Úis     rj   ú
<listcomp>z0test_driver.testRowInterface.<locals>.<listcomp>B  s"   € Ð	+Ð	+Ð	+˜Qˆ%•#�a‘&”&‰.Ð	+Ð	+Ð	+ru   r¯   Úcol0Úcol1Úcol2Úcol3r   r®   )rå   )ræ   rè   rà   )ÚdecimalÚDecimalÚdatetimerc   r†   r‡   r…   rÏ   r    rÐ   r¾   r±   ÚkeysÚsortÚvaluesÚitemsÚzipÚdictÚgetÚ	transformrÙ   Útyper   Úindex_from_keyÚkey_from_index)r   Údatar�   Úrowrì   ÚcnamesÚrow_dÚxÚrow_tÚcrowrã   s              rj   ÚtestRowInterfaceztest_driver.testRowInterface0  s.  € à
ˆS•'”/ &Ñ)Ô)­8Ô+<¸TÀ!ÀBÀrÈ"ÈQÑ+OÔ+OÐ	P€$Ý	‡z‚zð/ñô €"ð
 	�Š‰
Œ
€#Ø×Ò•5˜‘:”:˜tÑ$Ô$Ð$à‡/‚/�!�s�(ÑÔÐØ‡/‚/�#˜�*ÑÔÐØ‡/‚/•'”/ &Ñ)Ô)¨SÐ0Ñ1Ô1Ð1Ø‡/‚/•(Ô# D¨¨2¨b°°AÑ6Ô6¸#Ð=Ñ>Ô>Ð>à×ÒÝˆÔ	ÑÔÝÐ	+Ð	+¥%¨¡(¤(Ð	+Ñ	+Ô	+Ñ,Ô,ñô ð ð ×ÒØˆ„K��V”˜c &œk¨3¨v¬;Ð7Øˆ„FˆC�ŒF�C˜”F˜C œFÐ#ñô ð ð ×ÒØˆ„K��V”˜c &œk¨3¨v¬;Ð7Øˆ„FˆC�ŒF�C˜”F˜C œFÐ#ñô ð õ 
ˆc�hŠh‰jŒjÑ	Ô	€$Ý�”Ñ Ô €&Ø‡+‚+�-„-€-Ø‡)‚)�+„+€+Ø×Ò�4˜Ñ Ô Ð Ø×Ò•4˜Ÿ
š
™œÑ%Ô%¥t¨D¡z¤zÑ2Ô2Ð2Ø×Ò•4˜Ÿ	š	™œÑ$Ô$¥d­3¨r¬ÀÑ+EÔ+EÑ&FÔ&FÑGÔGÐGå
ˆs‰)Œ)€%ØŒ?ð &ð &€aØ×Ò�E˜!”H˜c !œfÑ%Ô%Ð%Ð%Ø�:Š:‰<Œ<ð *ð *€aØ×Ò�C—G’G˜A‘J”J  a¤Ñ)Ô)Ð)Ð)å
�‰*Œ*€%Ø×Ò�5˜#ÑÔÐð 
�Š�cˆÑ	"Ô	"€$Ø×Ò•4˜˜Qœ‘=”=¥#Ñ&Ô&Ð&Ø	�Š•sÑ	Ô	€$Ø×Ò•4˜˜Qœ‘=”=¥#Ñ&Ô&Ð&Ø	�Š•s�CÑ	 Ô	 €$Ø×Ò•4˜˜Qœ‘=”=¥#Ñ&Ô&Ð&Ø×Ò•4˜˜Qœ‘=”=¥#Ñ&Ô&Ð&à	�Š�t�SÑ	!Ô	!€$Ø×Ò•4˜˜Qœ‘=”=¥#Ñ&Ô&Ð&Ø×Ò•4˜˜Qœ‘=”=¥#Ñ&Ô&Ð&à	�Š•s¥3­sˆÑ	3Ô	3€$Ø×Ò•4˜˜Qœ‘=”=¥#Ñ&Ô&Ð&Ø×Ò•4˜˜Qœ‘=”=¥#Ñ&Ô&Ð&Ø×Ò•4˜˜Qœ‘=”=¥#Ñ&Ô&Ð&å�‰8Œ8ð ;ð ;€aØ×Ò�A�s×)Ò)¨%µ#°a±&´&©.Ñ9Ô9Ñ:Ô:Ð:Ø×Ò�E�C ™FœF‘N C×$6Ò$6°qÑ$9Ô$9Ñ:Ô:Ð:Ð:ð;ð ;ru   c                 óX  — t                                d¦  «        j        }t                                d¦  «        j        }|                      t	           |¦   «         ¦  «        t	           |¦   «         ¦  «        ¦  «         |                      t	           |¦   «         ¦  «        d¦  «         d S )Nz+SELECT i FROM generate_series(1,10) as g(i)z7SELECT i, i+10 as i2 FROM generate_series(1,10) as g(i))
r   r   r®   r¯   r%   é   é   é   é	   r(   )rc   r†   Úcolumnr…   rÏ   )r   Úg_iÚg_iis      rj   Úcolumn_testztest_driver.column_tests  sƒ   € Ý
�
Š
Ð@ÑAÔAÔH€#å	�ŠÐMÑ	NÔ	NÔ	U€$Ø×Ò•5˜˜™œ‘<”<¥ t t¡v¤v¡¤Ñ/Ô/Ð/Ø×Ò•5˜˜™œ‘<”<Ð!7Ñ8Ô8Ð8Ð8Ð8ru   c                 ó.   — |                       ¦   «          d S ©N)r  ©r   s    rj   Ú
testColumnztest_driver.testColumnz  ó   € à×ÒÑÔÐÐÐru   c                 ó’   — t                                ¦   «         5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r	  )rc   Úxactr  r
  s    rj   ÚtestColumnInXactztest_driver.testColumnInXact~  ó†   € å	‡w‚w�y„yð ð Ø×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ó   š<¼A ÁA c                 ó”  — t                                d¦  «         t                                d¦  «        }|                      |                     ¦   «         d¦  «         |                       |¦   «         dg¦  «         |                      t          |¦  «        dg¦  «         |                      t          |j        ¦  «        d¦  «         d S )Nz#PREPARE foo AS SELECT 1 AS colname;r"   r   r¬   )Úcolname)rc   rd   Ústatement_from_idr…   r‡   r±   rÏ   rÐ   rÂ   s     rj   ÚtestStatementFromIdztest_driver.testStatementFromIdƒ  s¨   € å‡*‚*Ð2Ñ3Ô3Ð3Ý	×Ò˜EÑ"Ô"€"Ø×Ò�2—8’8‘:”:˜qÑ!Ô!Ð!Ø×Ò�2�2‘4”4˜$˜Ñ Ô Ð Ø×Ò•4˜‘8”8˜d˜VÑ$Ô$Ð$Ø×Ò•5˜œÑ)Ô)¨<Ñ8Ô8Ð8Ð8Ð8ru   c           	      ó,  — t                                d¦  «         t                                d¦  «        }|                      |                     ¦   «         dg¦  «         t                                d¦  «         t                                d¦  «        }|                     d¦  «         |                      d„ |                     d¦  «        D ¦   «         t          t          dd	¦  «        ¦  «        ¦  «         |                     d
d¦  «         |                      |                     ¦   «         g ¦  «         |                     d
¦  «         |                      d„ |                     ¦   «         D ¦   «         t          t          d¦  «        ¦  «        ¦  «         d S )Nz)DECLARE foo CURSOR WITH HOLD FOR SELECT 1r"   r¬   zTDECLARE bar SCROLL CURSOR WITH HOLD FOR SELECT i FROM generate_series(0, 99) AS g(i)r#   rH   c                 ó   — g | ]\  }|‘ŒS ro   ro   ©râ   rû   s     rj   rä   z0test_driver.testCursorFromId.<locals>.<listcomp>–  ó   € Ð+Ð+Ð+™"˜!�AÐ+Ð+Ð+ru   r(   é<   r   r   c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z0test_driver.testCursorFromId.<locals>.<listcomp>š  ó   € Ð)Ð)Ð)™"˜!�AÐ)Ð)Ð)ru   éd   )rc   rd   Úcursor_from_idr…   rŠ   Úseekr±   r¾   )r   r�   s     rj   ÚtestCursorFromIdztest_driver.testCursorFromIdŒ  sC  € å‡*‚*Ð8Ñ9Ô9Ð9Ý×Ò˜ÑÔ€!Ø×Ò�1—6’6‘8”8˜d˜VÑ$Ô$Ð$Ý‡*‚*ØYñô ð õ 	×Ò˜ÑÔ€!Ø‡&‚&ˆ�*„*€*Ø×ÒÐ+Ð+ §¢ r¡
¤
Ð+Ñ+Ô+­Tµ%¸¸2±,´,Ñ-?Ô-?Ñ@Ô@Ð@Ø‡&‚&ˆˆ1�+„+€+Ø×Ò�1—6’6‘8”8˜RÑ Ô Ð Ø‡&‚&ˆ�)„)€)Ø×ÒÐ)Ð) §¢¡¤Ð)Ñ)Ô)­4µ°c±
´
Ñ+;Ô+;Ñ<Ô<Ð<Ð<Ð<ru   c           
      óv  — t                                ¦   «         5  t                                d¦  «         t                                d¦  «        }|                     d„ t          d¦  «        D ¦   «         ¦  «         t                                d¦  «        }t          |¦  «        }t          d„ t          d¦  «        D ¦   «         ¦  «        }|                      ||¦  «         |                      |t           |¦   «         ¦  «        ¦  «         |                      |t          t          j	        | 
                    ¦   «         ¦  «        ¦  «        ¦  «         |                      |t          |                     ¦   «         ¦  «        ¦  «         t                                d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NúCREATE TABLE foo (i int)zinsert into foo values ($1)c              3   ó   K  — | ]}|fV — Œd S r	  ro   r  s     rj   ú	<genexpr>z/test_driver.testCopyToSTDOUT.<locals>.<genexpr>¡  s$   è è € Ð+Ð+˜1�1�$Ð+Ð+Ð+Ð+Ð+Ð+ru   r*   zcopy foo to stdoutc              3   ó`   K  — | ])}t          |¦  «                             d ¦  «        dz   V — Œ*dS ©Úasciió   
N©rÙ   r¢   rá   s     rj   r$  z/test_driver.testCopyToSTDOUT.<locals>.<genexpr>¥  s9   è è € ÐFÐF°a•3�q‘6”6—=’= Ñ)Ô)¨EÑ1ÐFÐFÐFÐFÐFÐFru   úDROP TABLE foo)rc   r  rd   r†   Ú	load_rowsr¾   Úsetr…   r   Úfrom_iterabler›   r¼   )r   r"   Úcopy_fooÚfoo_contentÚexpecteds        rj   ÚtestCopyToSTDOUTztest_driver.testCopyToSTDOUTœ  s£  € å	‡w‚w�y„yð  ð  Ý‡:‚:Ð(Ñ)Ô)Ð)Ý	�ŠÐ1Ñ	2Ô	2€3Ø‡=‚=Ð+Ð+¥ c¡
¤
Ð+Ñ+Ô+Ñ,Ô,Ð,å�jŠjÐ-Ñ.Ô.€8Ý�X‘”€;ÝÐFÐF½5À¹:¼:ÐFÑFÔFÑGÔG€8Ø×Ò�H˜kÑ*Ô*Ð*Ø×Ò�H�c ( (¡*¤*™oœoÑ.Ô.Ð.Ø×Ò�H�c¥%Ô"5°h·o²oÑ6GÔ6GÑ"HÔ"HÑIÔIÑJÔJÐJØ×Ò�H�c (§-¢-¡/¤/Ñ2Ô2Ñ3Ô3Ð3Ý‡:‚:ÐÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   šFF.Æ.F2Æ5F2c           	      ó   — t                                ¦   «         5  t                                d¦  «         t                                d¦  «        }|                     d„ t          d¦  «        D ¦   «         ¦  «         t          d„ t                                d¦  «        D ¦   «         ¦  «        }|                      |t          t          d¦  «        ¦  «        ¦  «         t                                d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr"  úcopy foo from stdinc              3   ó`   K  — | ])}t          |¦  «                             d ¦  «        dz   V — Œ*dS r&  r)  rá   s     rj   r$  z0test_driver.testCopyFromSTDIN.<locals>.<genexpr>±  s9   è è € ÐEÐE°Q•#�a‘&”&—-’- Ñ(Ô(¨5Ñ0ÐEÐEÐEÐEÐEÐEru   éÈ   c              3   ó   K  — | ]\  }|V — Œ	d S r	  ro   r  s     rj   r$  z0test_driver.testCopyFromSTDIN.<locals>.<genexpr>²  s5   è è € ð ð Ù
ˆ1€Aðð ð ð ð ð ru   z select * from foo order by 1 ASCr*  )rc   r  rd   r†   r+  r¾   r±   r…   )r   r"   r/  s      rj   ÚtestCopyFromSTDINztest_driver.testCopyFromSTDIN¬  s1  € å	‡w‚w�y„yð  ð  Ý‡:‚:Ð(Ñ)Ô)Ð)Ý	�ŠÐ)Ñ	*Ô	*€3Ø‡=‚=ÐEÐE½%À¹*¼*ÐEÑEÔEÑFÔFÐFÝð ð Ý—*’*Ð?Ñ@Ô@ðñ ô ñ ô €;ð ×Ò�K¥¥e¨C¡j¤jÑ!1Ô!1Ñ2Ô2Ð2Ý‡:‚:ÐÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   šCDÄDÄ
Dc                 ó´  ‡—  G d„ dt           ¦  «        Šˆfd„}t          d¦  «         t          d¦  «        }	 |                      |¦   «         g¦  «         |                      d¦  «         n# ‰$ r Y nw xY w	 t
                               ¦   «          n# t          $ r Y nw xY w|                      t          d¦  «         	                    ¦   «         d¦  «         d S )	Nc                   ó   — e Zd ZdS )ú<test_driver.testCopyInvalidTermination.<locals>.DontTrapThisN©Ú__name__Ú
__module__Ú__qualname__ro   ru   rj   ÚDontTrapThisr:  º  ó   € € € € € Ø€4ru   r?  c               3   ó   •K  —  ‰ ¦   «         ‚r	  ro   )r?  s   €rj   ÚEvilGeneratorz=test_driver.testCopyInvalidTermination.<locals>.EvilGenerator¼  s   øè è € Ø	ˆ‰ŒÐru   r"  r3  z'didn't raise the BaseException subclassrƒ   r   )
ÚBaseExceptionÚsqlexecr†   Úload_chunksÚfailrc   r�   rf   r…   r‡   )r   rB  r"   r?  s      @rj   ÚtestCopyInvalidTerminationz&test_driver.testCopyInvalidTermination¸  s#  ø€ ðð ð ð ð •]ñ ô ð ðð ð ð ð õ 
Ð
$Ñ%Ô%Ð%ÝÐ%Ñ&Ô&€#ðØ‡?‚?�M�M‘O”OÐ$Ñ%Ô%Ð%Ø‡9‚9Ð6Ñ7Ô7Ð7Ð7øØ	ð ð ð Ø€4ðøøøðÝ‡?‚?ÑÔÐÐøÝ	ð ð ð Ø€4ðøøøà×Ò•7˜:Ñ&Ô&×,Ò,Ñ.Ô.°Ñ2Ô2Ð2Ð2Ð2s#   ¹3A- Á-A5Á4A5Á9B Â
B ÂB c                 ó  — t                                d¦  «         dt           j        d<   t                                d¦  «        }t                                d¦  «        }|                      |j        |j        k    d|›d|›d�¦  «         d S )	NzNCREATE OR REPLACE FUNCTION public.foo() RETURNS INT LANGUAGE SQL AS 'SELECT 1'ÚpublicÚsearch_pathzfoo()zpublic.foo()zfunction lookup incongruence(z != ú))rc   rd   ÚsettingsÚprocr    Úoid)r   ÚfÚf2s      rj   ÚtestLookupProcByNamez test_driver.testLookupProcByNameÌ  s‡   € å‡*‚*ØSñô ð ð  (…"„+ˆmÑÝ‡g‚gˆgÑÔ€!Ý	‡w‚wˆ~ÑÔ€"Ø‡/‚/�!”%˜2œ6’/�/Ø./¨a¨a°°°Ð4ñô ð ð ð ru   c           	      ó"  — t                                d¦  «                             ¦   «         }t                                |¦  «        }|                      t           |dd¦  «        ¦  «        t          t          dd¦  «        ¦  «        ¦  «         d S )NzAselect oid from pg_proc where proname = 'generate_series' limit 1r   r  ée   )rc   r†   r‡   rM  r…   r±   r¾   )r   ÚgsoidÚgss      rj   ÚtestLookupProcByIdztest_driver.testLookupProcByIdØ  ss   € å
�*Š*ØFñô ç	‚E�G„Gð õ 
‡w‚wˆu�~„~€"Ø×Ò•4˜˜˜1˜c™
œ
Ñ#Ô#¥T­%°°3©-¬-Ñ%8Ô%8Ñ9Ô9Ð9Ð9Ð9ru   c                 ó~  — t                                d¦  «        } |¦   «          t                                d¦  «         t                                d¦  «        }|                       |d¦  «        d¦  «         |                       |d ¦  «        d ¦  «         t                                d¦  «         t                                d¦  «        }|                       |d¦  «        d¦  «         |                       |d ¦  «        d ¦  «         t                                d¦  «         t                                d	¦  «        }|                       |dd¦  «        d
¦  «         |                       |d d¦  «        d ¦  «         |                       |dd ¦  «        d ¦  «         |                       |d
d¦  «        d¦  «         d S )Nz	version()zLCREATE OR REPLACE FUNCTION ifoo(int) RETURNS int LANGUAGE SQL AS 'select $1'z	ifoo(int)r   zQCREATE OR REPLACE FUNCTION ifoo(varchar) RETURNS text LANGUAGE SQL AS 'select $1'zifoo(varchar)rM   zjCREATE OR REPLACE FUNCTION ifoo(varchar,int) RETURNS text LANGUAGE SQL AS 'select ($1::int + $2)::varchar'zifoo(varchar,int)Ú2r   Ú4)rc   rM  rd   r…   )r   ÚverÚifoos      rj   Úexecute_procztest_driver.execute_procà  s¡  € Ý
�Š�ÑÔ€#Ø€#�%„%€%Ý‡*‚*ØQñô ð õ 
�Š�Ñ	Ô	€$Ø×Ò�4�4˜‘7”7˜AÑÔÐØ×Ò�4�4˜‘:”:˜tÑ$Ô$Ð$Ý‡*‚*ØVñô ð õ 
�Š�Ñ	!Ô	!€$Ø×Ò�4�4˜‘9”9˜cÑ"Ô"Ð"Ø×Ò�4�4˜‘:”:˜tÑ$Ô$Ð$Ý‡*‚*Øoñô ð õ 
�ŠÐ$Ñ	%Ô	%€$Ø×Ò�4�4˜˜A‘;”; Ñ$Ô$Ð$Ø×Ò�4�4˜˜Q‘<”< Ñ&Ô&Ð&Ø×Ò�4�4˜˜D‘>”> 4Ñ(Ô(Ð(Ø×Ò�4�4˜˜A‘;”; Ñ$Ô$Ð$Ð$Ð$ru   c                 ó.   — |                       ¦   «          d S r	  )r\  r
  s    rj   ÚtestProcExecutionztest_driver.testProcExecutionø  s   € à×ÒÑÔÐÐÐru   c                 ó’   — t                                ¦   «         5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r	  ©rc   r  r\  r
  s    rj   ÚtestProcExecutionInXactz#test_driver.testProcExecutionInXactü  s†   € å	‡w‚w�y„yð ð Ø×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r  c                 óô   — t                                ¦   «         5  t                                ¦   «         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 r	  r`  r
  s    rj   ÚtestProcExecutionInSubXactz&test_driver.testProcExecutionInSubXact  sè   € å	‡w‚w�y„yð ð •"—'’'‘)”)ð ð Ø×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s4   šA-´AÁ	A-ÁA	ÁA-ÁA	ÁA-Á-A1Á4A1c                 ó  — |                       t                               d¦  «        ¦   «         d         d         d u d¦  «         |                       t                               d¦  «        d ¦  «        d         d         d u d¦  «         d S )NzSELECT NULLr   zSELECT NULL did not return NonezSELECT $1::textz+[SELECT $1::text](None) did not return None)r    rc   r†   r
  s    rj   ÚtestNULLztest_driver.testNULL  s�   € ð ‡/‚/Ý‡:‚:ˆmÑÔÑÔ˜qÔ! !Ô$¨Ð,Ø$ñô ð ð
 ‡/‚/Ý‡:‚:ÐÑ Ô  Ñ&Ô& qÔ)¨!Ô,°Ð4Ø0ñô ð ð ð ru   c                 óÀ   — t                                d¦  «                             ¦   «         \  }}|                      |du ¦  «         |                      |du ¦  «         d S )NzSELECT true, falseTF)rc   r†   r‡   r    )r   ÚfstÚsnds      rj   ÚtestBoolztest_driver.testBool  sV   € å�ZŠZÐ,Ñ-Ô-×3Ò3Ñ5Ô5�(€#€sØ‡/‚/�#˜�+ÑÔÐØ‡/‚/�#˜�,ÑÔÐÐÐru   c                 ó   — t                                d¦  «        } |¦   «         }|d         }|                      |d         dk    ¦  «         |D ]}|                      |d         d¦  «         Œ|D ]}|                      |d         d¦  «         Œd S )NzSELECT 1 as namer   r   Úname)rc   r†   r    r…   )r   Ús1ÚpÚtups       rj   Úselectztest_driver.select  s¦   € õ 
‡z‚zÐ$Ñ%Ô%€"Ø€b�d„d€!Ø	ˆ!Œ€#Ø‡/‚/�#�a”&˜A’+ÑÔÐàð ð €cØ×Ò�C˜”F˜AÑÔÐÐàð $ð $€cØ×Ò�C˜”K Ñ#Ô#Ð#Ð#ð$ð $ru   c                 ó.   — |                       ¦   «          d S r	  )ro  r
  s    rj   Ú
testSelectztest_driver.testSelect+  s   € à‡+‚+�-„-€-€-€-ru   c                 ó’   — t                                ¦   «         5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r	  )rc   r  ro  r
  s    rj   ÚtestSelectInXactztest_driver.testSelectInXact/  s�   € å	‡w‚w�y„yð ð Ø‡;‚;�=„=€=ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r  c           	      óL  — t                                d¦  «        }|                     ¦   «         }|                      |                     d¦  «        g ¦  «         |                      |                     d¦  «        g ¦  «         |                      |                     d¦  «        dg¦  «         |                      |                     d¦  «        dg¦  «         |                      |                     d¦  «        ddg¦  «         |                      |                     d¦  «        d	d
g¦  «         |                      |                     d¦  «        g d¢¦  «         |                      |                     d¦  «        g d¢¦  «         |                      |                     d¦  «        g d¢¦  «         |                      |                     d¦  «        g d¢¦  «         |                      |                     d¦  «        g ¦  «         |                      |                     d¦  «        g d¢¦  «         dg}d}d}d}|rn|dz  }d„ |                     |¦  «        D ¦   «         }t          |||z   ¦  «        }|                      |t          t          ||¦  «        ¦  «        ¦  «         |}|°ld S d S )Nz8SELECT i FROM generate_series(0, (2^8)::int - 1) AS g(i)r   r   ©r   r¬   r   ©r   ©r®   ©r¯   ©r%   r®   ))r   )r  )r  r¯   ))r  )r(   )é   )r.   ))é   )é   )r/   )é   r%   ))é   )r6   )é   )r&   )é   r   ))r8   )r0   )é   )r)   )é   )é   r   é   r   c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z+test_driver.cursor_read.<locals>.<listcomp>I  s   € ÐÐÐ‰bˆaˆÐÐÐru   )rc   r†   r‰   r…   rŠ   Úminr±   r¾   )r   r�   r�   r²   rã   rq   ÚmaxvÚtops           rj   Úcursor_readztest_driver.cursor_read4  sp  € Ý	‡z‚zÐLÑMÔM€"Ø‡j‚j�l„l€!Ø×Ò�1—6’6˜!‘9”9˜bÑ!Ô!Ð!Ø×Ò�1—6’6˜!‘9”9˜bÑ!Ô!Ð!Ø×Ò�1—6’6˜!‘9”9˜t˜fÑ%Ô%Ð%Ø×Ò�1—6’6˜!‘9”9˜t˜fÑ%Ô%Ð%Ø×Ò�1—6’6˜!‘9”9˜t T˜lÑ+Ô+Ð+Ø×Ò�1—6’6˜!‘9”9˜t T˜lÑ+Ô+Ð+Ø×Ò�1—6’6˜!‘9”9Ð0Ð0Ð0Ñ1Ô1Ð1Ø×Ò�1—6’6˜!‘9”9Ð9Ð9Ð9Ñ:Ô:Ð:Ø×Ò�1—6’6˜!‘9”9Ð:Ð:Ð:Ñ;Ô;Ð;Ø×Ò�1—6’6˜!‘9”9ÐAÐAÐAÑBÔBÐBØ×Ò�1—6’6˜!‘9”9˜bÑ!Ô!Ð!Ø×Ò�1—6’6˜!‘9”9ÐCÐCÐCÑDÔDÐDØ	€d€!Ø€!Ø€!Ø	€$Ø	ð Øˆ1�u€1ØÐ�A—F’F˜1‘I”IÐÑÔ€1Ý	ˆT�1�q‘5Ñ	Ô	€3Ø×Ò�A•t�E ! S™MœMÑ*Ô*Ñ+Ô+Ð+Ø
€1ð 	
ð ð ð ð ð ru   c                 ó.   — |                       ¦   «          d S r	  )r‰  r
  s    rj   ÚtestCursorReadztest_driver.testCursorReadN  r  ru   c                 ó‚  — t                                d¦  «        }|                     ¦   «         }|                      t	          t          |¦  «        ¦  «        d¦  «         |                      t	          t          |¦  «        ¦  «        d¦  «         |                      t	          t          |¦  «        ¦  «        d¦  «         d S )Nz,SELECT i FROM generate_series(0, 10) AS g(i)ru  r¬   rv  )rc   r†   r‰   r…   ÚnextÚiterr—   s      rj   ÚtestCursorIterztest_driver.testCursorIterR  s�   € å	‡z‚zÐ@ÑAÔA€"Ø‡j‚j�l„l€!Ø×Ò•4�˜Q™œ‘=”= $Ñ'Ô'Ð'Ø×Ò•4�˜Q™œ‘=”= $Ñ'Ô'Ð'Ø×Ò•4�˜Q™œ‘=”= $Ñ'Ô'Ð'Ð'Ð'ru   c                 ó’   — t                                ¦   «         5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r	  )rc   r  r‰  r
  s    rj   ÚtestCursorReadInXactz test_driver.testCursorReadInXactZ  r  r  Tc           
      óÈ  — d}d}|rt                                d¦  «        }nt                                d¦  «        }|                     ¦   «         }||_        |s|                     d¦  «         |                      d„ |                     d¦  «        D ¦   «         t          t          d¦  «        ¦  «        ¦  «         |                      d„ |                     dd¦  «        D ¦   «         t          t          d	d
d
¦  «        ¦  «        ¦  «         |                     dd¦  «         |                      d„ |                     dd¦  «        D ¦   «         t          t          ||dz
  d
¦  «        ¦  «        ¦  «         |                     dd¦  «         |                      d„ |                     dd¦  «        D ¦   «         t          t          ||dz
  d
¦  «        ¦  «        ¦  «         |                     dd¦  «         |                      d„ |                     dd¦  «        D ¦   «         t          t          |dz
  |dz
  d
¦  «        ¦  «        ¦  «         |                     d¦  «         |                      d„ |                     d¦  «        D ¦   «         t          t          dd¦  «        ¦  «        ¦  «         |                     dd¦  «         |                      d„ |                     d¦  «        D ¦   «         t          t          dd¦  «        ¦  «        ¦  «         |                     d¦  «         |                      d„ |                     d¦  «        D ¦   «         t          t          dd¦  «        ¦  «        ¦  «         |                     dd¦  «         |                      d„ |                     dd¦  «        D ¦   «         t          t          |dz
  |dz
  dz
  d
¦  «        ¦  «        ¦  «         |                     dd¦  «         |                     dd¦  «         |                     d¦  «        }|                     dd¦  «         |                      ||                     d¦  «        ¦  «         d S ) Nr   i   z5SELECT i FROM generate_series(0, (2^16)::int) AS g(i)z9SELECT i FROM generate_series((2^16)::int, 0, -1) AS g(i)c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z*test_driver.testScroll.<locals>.<listcomp>m  r  ru   r(   c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z*test_driver.testScroll.<locals>.<listcomp>o  ó   € Ð7Ð7Ð7™"˜!�AÐ7Ð7Ð7ru   ÚBACKWARDr  r   r   c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z*test_driver.testScroll.<locals>.<listcomp>q  r•  ru   c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z*test_driver.testScroll.<locals>.<listcomp>u  ó   € Ð8Ð8Ð8™"˜!�AÐ8Ð8Ð8ru   r  r;   r   c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z*test_driver.testScroll.<locals>.<listcomp>x  r™  ru   r5  i,  i°6  c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z*test_driver.testScroll.<locals>.<listcomp>|  ó   € Ð,Ð,Ð,™"˜!�AÐ,Ð,Ð,ru   i7  c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z*test_driver.testScroll.<locals>.<listcomp>  rœ  ru   ix7  iÜ7  iÀ]  c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z*test_driver.testScroll.<locals>.<listcomp>‚  rœ  ru   iˆ^  r&   c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z*test_driver.testScroll.<locals>.<listcomp>…  r™  ru   iöÿÿÿ)	rc   r†   r‰   Ú	directionr  r…   rŠ   r±   r¾   )r   r   ÚiminÚimaxr�   r�   Úr1s          rj   Ú
testScrollztest_driver.testScroll_  sÌ  € ð 
€$Ø	€$Øð PÝ
�
Š
ÐJÑKÔK€2€2å
�
Š
ÐNÑOÔO€2Ø‡j‚j�l„l€!Ø€!„+Ø	ð Ø‡6‚6ˆ!�9„9€9à×ÒÐ+Ð+ §¢ r¡
¤
Ð+Ñ+Ô+­Tµ%¸±)´)©_¬_Ñ=Ô=Ð=à×ÒÐ7Ð7 §¢ r¨:Ñ 6Ô 6Ð7Ñ7Ô7½½eÀAÀrÈ2Ñ>NÔ>NÑ9OÔ9OÑPÔPÐPØ‡&‚&ˆˆA�,„,€,Ø×ÒÐ7Ð7 §¢ r¨:Ñ 6Ô 6Ð7Ñ7Ô7½½eÀDÈ$ÈrÉ'ÐSUÑ>VÔ>VÑ9WÔ9WÑXÔXÐXð ‡&‚&ˆˆA�,„,€,Ø×ÒÐ8Ð8 §¢ s¨JÑ 7Ô 7Ð8Ñ8Ô8½$½uÀTÈ4ÐPSÉ8ÐUWÑ?XÔ?XÑ:YÔ:YÑZÔZÐZà‡&‚&ˆˆq�/„/€/Ø×ÒÐ8Ð8 §¢ s¨JÑ 7Ô 7Ð8Ñ8Ô8½$½uÀTÈ#ÁXÈtÐTWÉxÐY[Ñ?\Ô?\Ñ:]Ô:]Ñ^Ô^Ð^ð ‡&‚&ˆ�-„-€-Ø×ÒÐ,Ð, §¢ s¡¤Ð,Ñ,Ô,­dµ5¸ÀÑ3FÔ3FÑ.GÔ.GÑHÔHÐHà‡&‚&ˆˆa�.„.€.Ø×ÒÐ,Ð, §¢ s¡¤Ð,Ñ,Ô,­dµ5¸ÀÑ3FÔ3FÑ.GÔ.GÑHÔHÐHà‡&‚&ˆ�-„-€-Ø×ÒÐ,Ð, §¢ s¡¤Ð,Ñ,Ô,­dµ5¸ÀÑ3FÔ3FÑ.GÔ.GÑHÔHÐHà‡&‚&ˆˆQ�-„-€-Ø×ÒÐ8Ð8 §¢ s¨JÑ 7Ô 7Ð8Ñ8Ô8½$½uÀTÈ"ÁWÈdÐSUÉgÐVYÉkÐ[]Ñ?^Ô?^Ñ:_Ô:_Ñ`Ô`Ð`à‡&‚&ˆˆA�,„,€,Ø‡&‚&ˆˆa�.„.€.Ø‡v‚vˆb�z„z€"Ø‡&‚&ˆˆQ�-„-€-Ø×Ò�2�q—v’v˜b‘z”zÑ"Ô"Ð"Ð"Ð"ru   c           	      ó„  — t                                d¦  «        }|                     ¦   «         }|                      |                     dd¦  «        d¦  «         |                      d„ |                     d¦  «        D ¦   «         t          t          dd¦  «        ¦  «        ¦  «         |                      |                     dd¦  «        d¦  «         |                      d	„ |                     d¦  «        D ¦   «         t          t          d
d¦  «        ¦  «        ¦  «         |                      |                     dd¦  «        d¦  «         |                      d„ |                     d¦  «        D ¦   «         t          t          dd¦  «        ¦  «        ¦  «         |                      |                     d¦  «        d¦  «         d S )Nz8SELECT i FROM generate_series(0, (2^6)::int - 1) AS g(i)r¯   ÚFORWARDc                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z(test_driver.testSeek.<locals>.<listcomp>“  r  ru   r(   r|  r   r–  c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z(test_driver.testSeek.<locals>.<listcomp>–  r  ru   r.   r8   éûÿÿÿr%   c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z(test_driver.testSeek.<locals>.<listcomp>™  r  ru   rƒ  é%   ÚALL)rc   r†   r‰   r…   r  rŠ   r±   r¾   r—   s      rj   ÚtestSeekztest_driver.testSeek�  sp  € å	‡z‚zÐLÑMÔM€"Ø‡j‚j�l„l€!à×Ò�1—6’6˜!˜YÑ'Ô'¨Ñ+Ô+Ð+Ø×ÒÐ+Ð+ §¢ r¡
¤
Ð+Ñ+Ô+­Tµ%¸¸2±,´,Ñ-?Ô-?Ñ@Ô@Ð@à×Ò�1—6’6˜!˜ZÑ(Ô(¨!Ñ,Ô,Ð,Ø×ÒÐ+Ð+ §¢ r¡
¤
Ð+Ñ+Ô+­Tµ%¸¸B±-´-Ñ-@Ô-@ÑAÔAÐAà×Ò�1—6’6˜"˜jÑ)Ô)¨1Ñ-Ô-Ð-Ø×ÒÐ+Ð+ §¢ r¡
¤
Ð+Ñ+Ô+­Tµ%¸¸B±-´-Ñ-@Ô-@ÑAÔAÐAà×Ò�1—6’6˜%‘=”= "Ñ%Ô%Ð%Ð%Ð%ru   c                 ó2   — |                       d¬¦  «         d S )NF)r   )r¤  r
  s    rj   ÚtestScrollBackwardsztest_driver.testScrollBackwards�  s   € à‡/‚/˜e€/Ñ$Ô$Ð$Ð$Ð$ru   c                 ó
  — t                                ¦   «         5  t                                d¦  «        }|                     ¦   «         }|j        }d d d ¦  «         n# 1 swxY w Y   |                      |                     ¦   «         d         d         d¦  «         |                      |j        |¦  «         t                                ¦   «         5  t                                d¦  «        }|                     ¦   «         }|j        }d d d ¦  «         n# 1 swxY w Y   |                      d„ |                     ¦   «         D ¦   «         t          t          d¦  «        ¦  «        ¦  «         |                      |j        |¦  «         d S )Nr“   r   r   z,SELECT i FROM generate_series(0, 99) as g(i)c                 ó   — g | ]\  }|‘ŒS ro   ro   r  s     rj   rä   z,test_driver.testWithHold.<locals>.<listcomp>¯  r  ru   r  )	rc   r  r†   r‰   rœ   r…   rŠ   r±   r¾   )r   r�   r�   r©   s       rj   ÚtestWithHoldztest_driver.testWithHold¡  s®  € å	‡w‚w�y„yð ð Ý
�
Š
�:ÑÔ€2Ø	‡z‚z�|„|€1Ø	
Œ€3ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ×Ò�1—6’6‘8”8˜A”;˜q”> 1Ñ%Ô%Ð%à×Ò�1”; Ñ$Ô$Ð$å	‡w‚w�y„yð ð Ý
�
Š
ÐAÑBÔB€2Ø	‡z‚z�|„|€1Ø	
Œ€3ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ×ÒÐ)Ð) §¢¡¤Ð)Ñ)Ô)­4µ°c±
´
Ñ+;Ô+;Ñ<Ô<Ð<à×Ò�1”; Ñ$Ô$Ð$Ð$Ð$s#   š6AÁA Á#A Ã6DÄDÄDc           	      ó–  — t                                d¦  «        }|                      t          d„ |                     ¦   «         D ¦   «         ¦  «        t          t          dd¦  «        ¦  «        ¦  «         t          ¦   «         5 }|                     d¦  «         t                                d¦  «                             ¦   «         }|                     d¦  «        j        }| 	                    ¦   «         5   ||¦  «         d d d ¦  «         n# 1 swxY w Y   ~~|                      t                                d¦  «         
                    ¦   «         d	¦  «         |                      t                                d
¦  «         
                    ¦   «         d¦  «         d d d ¦  «         n# 1 swxY w Y   t                                d¦  «         d S )Nú/SELECT i FROM generate_series(1, 10000) AS g(i)c              3   ó&   K  — | ]}|d          V — ŒdS ©r   Nro   r  s     rj   r$  z(test_driver.load_rows.<locals>.<genexpr>¶  s&   è è € Ð!Ð!�!ˆˆ1ŒÐ!Ð!Ð!Ð!Ð!Ð!ru   r   é'  úp
				CREATE TABLE chunking AS
				SELECT i::text AS t, i::int AS i
				FROM generate_series(1, 10000) g(i);
				úselect * FROM chunkingú$insert into chunking values ($1, $2)úselect count(*) FROM chunkingé N  ú&select count(DISTINCT i) FROM chunkingr»   úDROP TABLE chunking)rc   r†   r…   r±   r¼   r¾   Únewrd   r+  r  r‡   ©r   rU  r‹   rŠ   Úwrites        rj   r+  ztest_driver.load_rows³  s  € Ý	‡z‚zÐCÑDÔD€"Ø×ÒÝÐ!Ð!�r—w’w‘y”yÐ!Ñ!Ô!Ñ"Ô"Ý�ˆa�‰ŒÑÔñô ð õ
 �u„uð �Ø‡;‚;ðñô ð õ �*Š*Ð-Ñ
.Ô
.×
3Ò
3Ñ
5Ô
5€4Ø�;Š;Ð=Ñ>Ô>ÔH€5Ø�Š‰
Œ
ð ð Ø	€Eˆ$�K„K€Kðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àˆUà×ÒÝ‡J‚JÐ.Ñ/Ô/×5Ò5Ñ7Ô7Ø	ñô ð ð ×ÒÝ‡J‚JÐ7Ñ8Ô8×>Ò>Ñ@Ô@Ø	ñô ð ð%ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ, ‡*‚*Ð"Ñ#Ô#Ð#Ð#Ð#s8   ÂA0F$Ã3DÃ?F$ÄD	ÄF$ÄD	ÄBF$Æ$F(Æ+F(c                 ó.   — |                       ¦   «          d S r	  )r+  r
  s    rj   ÚtestLoadRowsztest_driver.testLoadRowsÒ  ó   € à‡.‚.ÑÔÐÐÐru   c                 ó’   — t                                ¦   «         5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r	  )rc   r  r+  r
  s    rj   ÚtestLoadRowsInXactztest_driver.testLoadRowsInXactÖ  ó„   € å	‡w‚w�y„yð ð Ø‡>‚>ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r  c           	      óº  — t                                d¦  «        }|                      t          d„ t	          j        |                     ¦   «         ¦  «        D ¦   «         ¦  «        t          t          dd¦  «        ¦  «        ¦  «         t          ¦   «         5 }| 	                    d¦  «         t                                d¦  «                             ¦   «         }|                     d¦  «        j
        }|                     ¦   «         5   ||¦  «         d d d ¦  «         n# 1 swxY w Y   ~~|                      t                                d¦  «                             ¦   «         d	¦  «         |                      t                                d
¦  «                             ¦   «         d¦  «         d d d ¦  «         n# 1 swxY w Y   t            	                    d¦  «         d S )Nr´  c              3   ó&   K  — | ]}|d          V — ŒdS r¶  ro   r  s     rj   r$  z*test_driver.load_chunks.<locals>.<genexpr>Þ  s&   è è € Ð8Ð8�!ˆˆ1ŒÐ8Ð8Ð8Ð8Ð8Ð8ru   r   r·  r¸  r¹  rº  r»  r¼  r½  r»   r¾  )rc   r†   r…   r±   r   r-  r›   r¾   r¿  rd   rE  r  r‡   rÀ  s        rj   rE  ztest_driver.load_chunksÛ  s  € Ý	‡z‚zÐCÑDÔD€"Ø×ÒÝÐ8Ð8•uÔ*¨2¯9ª9©;¬;Ñ7Ô7Ð8Ñ8Ô8Ñ9Ô9Ý�ˆa�‰ŒÑÔñô ð õ
 �u„uð �Ø‡;‚;ðñô ð õ �*Š*Ð-Ñ
.Ô
.×
5Ò
5Ñ
7Ô
7€4Ø�;Š;Ð=Ñ>Ô>ÔJ€5Ø�Š‰
Œ
ð ð Ø	€Eˆ$�K„K€Kðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àˆUà×ÒÝ‡J‚JÐ.Ñ/Ô/×5Ò5Ñ7Ô7Ø	ñô ð ð ×ÒÝ‡J‚JÐ7Ñ8Ô8×>Ò>Ñ@Ô@Ø	ñô ð ð%ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ, ‡*‚*Ð"Ñ#Ô#Ð#Ð#Ð#s8   ÂA0F6ÄDÄF6ÄD!	Ä!F6Ä$D!	Ä%BF6Æ6F:Æ=F:c                 ó.   — |                       ¦   «          d S r	  )rE  r
  s    rj   ÚtestLoadChunksztest_driver.testLoadChunksú  r  ru   c                 ó’   — t                                ¦   «         5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r	  )rc   r  rE  r
  s    rj   ÚtestLoadChunkInXactztest_driver.testLoadChunkInXactþ  r  r  c                 ót  — t                                d¦  «         	 t                                d¦  «        }t                                d¦  «        } |dd¦  «        \  }}|                      |d¦  «         |                      |d¦  «          |dd	¦  «        \  }}|                      |d¦  «         |                      |d¦  «          |¦   «         \  }}|                      |d
¦  «         |                      |d¦  «         t                                d¦  «         d S # t                                d¦  «         w xY w)Nz1CREATE TEMP TABLE emp(emp_name text, emp_age int)zINSERT INTO emp VALUES ($1, $2)zDELETE FROM empÚjohné#   ÚINSERTr   Újaneé   ÚDELETEr   zDROP TABLE emp©rc   rd   r†   r…   )r   ÚmkempÚdel_all_empÚcommandÚcounts        rj   ÚtestSimpleDMLztest_driver.testSimpleDML  s-  € å‡*‚*Ð@ÑAÔAÐAð Ý�:Š:Ð7Ñ8Ô8€5Ý—’Ð-Ñ.Ô.€;Ø�E˜& "Ñ%Ô%�>€7ˆEØ×Ò�G˜XÑ&Ô&Ð&Ø×Ò�E˜1ÑÔÐØ�E˜& "Ñ%Ô%�>€7ˆEØ×Ò�G˜XÑ&Ô&Ð&Ø×Ò�E˜1ÑÔÐØ�K‘M”M�>€7ˆEØ×Ò�G˜XÑ&Ô&Ð&Ø×Ò�E˜1ÑÔÐå‡:‚:ÐÑÔÐÐÐø…2‡:‚:ÐÑÔÐÐøøøs   œC#D ÄD7c                 óŒ  — t                                d¦  «         	 t                                d¦  «        }t                                d¦  «        }t                                d¦  «        }t                                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         d	¦  «         |                       |d¦  «        d         d¦  «         |                       |dd¦  «        d         d¦  «         |                       |d¦  «        d         d	¦  «         |                       |d¦  «        d         d¦  «         t                                d
¦  «         d S # t                                d
¦  «         w xY w)NúCREATE TEMP TABLE t(i int)úINSERT INTO t VALUES ($1)úDELETE FROM t WHERE i = $1úDELETE FROM tú UPDATE t SET i = $2 WHERE i = $1r   r   r®   r   úDROP TABLE trÕ  )r   Úinsert_tÚdelete_tÚdelete_all_tÚupdate_ts        rj   Údmlztest_driver.dml  sr  € Ý‡*‚*Ð)Ñ*Ô*Ð*ðÝ�jŠjÐ4Ñ5Ô5€8Ý�jŠjÐ5Ñ6Ô6€8Ý—*’*˜_Ñ-Ô-€<Ý�jŠjÐ;Ñ<Ô<€8Ø×Ò�H�H˜Q‘K”K ”N AÑ&Ô&Ð&Ø×Ò�H�H˜Q‘K”K ”N AÑ&Ô&Ð&Ø×Ò�H�H˜Q‘K”K ”N AÑ&Ô&Ð&Ø×Ò�H�H˜Q‘K”K ”N AÑ&Ô&Ð&Ø×Ò�H�H˜Q‘K”K ”N AÑ&Ô&Ð&à×Ò�H�H˜Q‘K”K ”N AÑ&Ô&Ð&Ø×Ò�H�H˜Q‘K”K ”N AÑ&Ô&Ð&Ø×Ò�H�H˜Q‘K”K ”N AÑ&Ô&Ð&Ø×Ò�L�L‘N”N 1Ô% qÑ)Ô)Ð)à×Ò�H�H˜Q ‘N”N 1Ô% qÑ)Ô)Ð)Ø×Ò�H�H˜Q‘K”K ”N AÑ&Ô&Ð&Ø×Ò�H�H˜Q ‘N”N 1Ô% qÑ)Ô)Ð)Ø×Ò�H�H˜Q‘K”K ”N AÑ&Ô&Ð&Ø×Ò�H�H˜Q‘K”K ”N AÑ&Ô&Ð&å‡:‚:ˆnÑÔÐÐÐø…2‡:‚:ˆnÑÔÐÐøøøs   œI/J' Ê'Kc                 ó.   — |                       ¦   «          d S r	  )ræ  r
  s    rj   ÚtestDMLztest_driver.testDML/  s   € à‡(‚(�*„*€*€*€*ru   c                 ó’   — t                                ¦   «         5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r	  )rc   r  ræ  r
  s    rj   ÚtestDMLInXactztest_driver.testDMLInXact3  s�   € å	‡w‚w�y„yð ð Ø‡8‚8�:„:€:ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r  c                 ó6  — t                                d¦  «         	 t                                d¦  «        }t                                d¦  «        }t                                d¦  «        }t                                d¦  «        }d}|                     |¦  «         t                                d¦  «        }|                      |t           |¦   «         ¦  «        ¦  «         t                                d¦  «         d S # t                                d¦  «         w xY w)	NrÜ  rÝ  rÞ  rß  rà  )rv  rv  rw  rx  ry  zSELECT * FROM t ORDER BY 1 ASCrá  )rc   rd   r†   r+  r…   rÏ   )r   râ  rã  rä  rå  ÚmsetÚcontents          rj   Ú	batch_dmlztest_driver.batch_dml8  sä   € Ý‡*‚*Ð)Ñ*Ô*Ð*ðÝ�jŠjÐ4Ñ5Ô5€8Ý�jŠjÐ5Ñ6Ô6€8Ý—*’*˜_Ñ-Ô-€<Ý�jŠjÐ;Ñ<Ô<€8ð€4ð ×Ò�dÑÔÐÝ�ZŠZÐ8Ñ9Ô9€7Ø×Ò�D�%  ¡	¤	Ñ*Ô*Ñ+Ô+Ð+å‡:‚:ˆnÑÔÐÐÐø…2‡:‚:ˆnÑÔÐÐøøøs   œCC< Ã<Dc                 ó.   — |                       ¦   «          d S r	  )rî  r
  s    rj   ÚtestBatchDMLztest_driver.testBatchDMLH  rÄ  ru   c                 ó’   — t                                ¦   «         5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r	  )rc   r  rî  r
  s    rj   ÚtestBatchDMLInXactztest_driver.testBatchDMLInXactL  rÇ  r  c                 ób  — t           D ]¦\  }}t                               d|z   ¦  «        }|D ]�}t          |                     |¦  «        ¦  «        d         d         }t          |t          j        ¦  «        r|                     ¦   «         }|  	                    ||k    d|›d|›d|›�¦  «         Œ‚Œ§dS )z.test basic object I/O--input must equal outputúSELECT $1::r   úfailed to return ú object data as-is; gave ú, received N)
Útype_samplesrc   r†   r±   r¼   r°   rÔ   ÚArrayÚnestr    )r   ÚtypnameÚsample_dataÚpbÚsampleÚrsamples         rj   Ú	testTypesztest_driver.testTypesQ  sÑ   € õ !-ð ð Ñ€w�Ý
�
Š
Ø�GÑñ	ô 	€2ð ð 	ð 	€vÝ�2—7’7˜6‘?”?Ñ#Ô# AÔ& qÔ)€GÝ�'�8œ>Ñ*Ô*ð Ø�|Š|‰~Œ~€WØ‡O‚OØ�ÒÐà€g€gˆvˆvˆv�w�wðñô ð ð ð		ð	ð ru   c                 ó*  — t                                d¦  «         t                                d¦  «         t                                d¦  «         dgdgdgdœ}|                     ¦   «         D ]¦\  }}t                                d|z   ¦  «        }|D ]�}t	          |                     |¦  «        ¦  «        d	         d	         }t          |t          j        ¦  «        r| 	                    ¦   «         }|  
                    ||k    d
|›d|›d|›�¦  «         Œ‚Œ§dS )ztest domain type I/OzCREATE DOMAIN int_t AS intzCREATE DOMAIN int_t_2 AS int_tz&CREATE TYPE tt AS (a int_t, b int_t_2)r(   rz  )r.   r{  )Úint_tÚint_t_2Úttrô  r   rõ  rö  r÷  N)rc   rd   rï   r†   r±   r¼   r°   rÔ   rù  rú  r    )r   Úsamplesrû  rü  rý  rþ  rÿ  s          rj   ÚtestDomainSupportztest_driver.testDomainSupportc  s1  € õ ‡*‚*Ð)Ñ*Ô*Ð*Ý‡*‚*Ð-Ñ.Ô.Ð.Ý‡*‚*Ð5Ñ6Ô6Ð6ð ˆDØˆdØ
ˆðð €'ð !(§¢¡¤ð ð Ñ€w�Ý
�
Š
Ø�GÑñ	ô 	€2ð ð 	ð 	€vÝ�2—7’7˜6‘?”?Ñ#Ô# AÔ& qÔ)€GÝ�'�8œ>Ñ*Ô*ð Ø�|Š|‰~Œ~€WØ‡O‚OØ�ÒÐà€g€gˆvˆvˆv�w�wðñô ð ð ð		ð	ð ru   c                 óÀ  — t                                d¦  «         ddt          j        dddddt          d¦  «        ¬¦  «        fdd	dt	          j        d
dg¦  «        fdœ}|                     ¦   «         D ]i\  }}t                                |¦  «        }t          t          | 
                    ¦   «         ¦  «        ¦  «        d         }|                      ||¦  «         ŒjdS )ztest anonymous record unpackingz#CREATE TYPE tar_t AS (a int, b int)r   rX  iÜ  r6   r   r3   )r   rX  )r®   rY  )r   ©r   r®   r  r­   )z?SELECT (1::int, '2'::text, '2012-01-01 18:00 UTC'::timestamptz)z/SELECT (1::int, '2'::text, (3::int, '4'::text))zGSELECT (i::int, (i + 1, i + 2)::tar_t) FROM generate_series(1, 10) as iz&SELECT (1::int, ARRAY[(2, 3), (3, 4)])N)rc   rd   rë   r   rÔ   rù  rï   r†   r�  rŽ  r¼   r…   )r   ÚtestsÚqryr0  rý  Úresults         rj   ÚtestAnonymousRecordztest_driver.testAnonymousRecord€  sß   € õ ‡*‚*Ð2Ñ3Ô3Ð3ð ˆ�XÔ˜t Q¨¨2¨q½ÀQ¹¼ÐHÑHÔHÐIð ð ð �Œ˜ Ð'Ñ(Ô(Ð)ðð €%ð —{’{‘}”}ð &ð &�m€cˆ8Ý
�
Š
�3‰Œ€2Ý•�b—g’g‘i”i‘”Ñ!Ô! !Ô$€6Ø×Ò�F˜HÑ%Ô%Ð%Ð%ð&ð &ru   c           	      ó  ‡— 	 t                                d¦  «        }t                                d¦  «        }|                     d¦  «        }n"# t          j        t          j        f$ r Y d S w xY wt          j        d¦  «        }t          j        d¦  «        }t          t          d¦  «        rd„ Šnt          j	        Š|  
                     ‰|                     |¦  «        ¦  «         ‰|¦  «        ¦  «         |  
                     ‰|                     |¦  «        ¦  «         ‰|¦  «        ¦  «         |  
                     ‰|                     d¦  «        ¦  «         ‰|¦  «        ¦  «         |  
                     ‰|                     d¦  «        ¦  «         ‰|¦  «        ¦  «         |  
                     ‰|                     t          j        d¦  «        ¦  «        ¦  «         ‰|¦  «        ¦  «         |  
                     ‰|                     d¦  «        ¦  «         ‰|¦  «        ¦  «         |  
                    t          ˆfd„|                     d¦  «        D ¦   «         ¦  «         ‰|¦  «         ‰|¦  «        f¦  «         |  
                    t          ˆfd	„|                     d¦  «        D ¦   «         ¦  «         ‰|¦  «         ‰|¦  «        f¦  «         |  
                    t          ˆfd
„|                     d|f¦  «        D ¦   «         ¦  «         ‰|¦  «         ‰|¦  «        f¦  «         |  
                    t          ˆfd„|                     d|f¦  «        D ¦   «         ¦  «         ‰|¦  «         ‰|¦  «        f¦  «         d S )Nzselect $1::xmlzselect $1::text::xmlz<foo/>z<bar/>Útostringlistc                 ó.   — t          j        | d¬¦  «        S )Nzutf-8)Úencoding)r   Útostring)rû   s    rj   Útostrz$test_driver.check_xml.<locals>.tostr¥  s   € ÝŒ>˜! gÐ.Ñ.Ô.Ð.ru   c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r	  ro   ©râ   rû   r  s     €rj   r$  z(test_driver.check_xml.<locals>.<genexpr>²  ó<   øè è € ð 	ð 	Ø€E€Eˆ!�H„Hð	ð 	ð 	ð 	ð 	ð 	ru   z<foo/><bar/>c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r	  ro   r  s     €rj   r$  z(test_driver.check_xml.<locals>.<genexpr>·  r  ru   c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r	  ro   r  s     €rj   r$  z(test_driver.check_xml.<locals>.<genexpr>¾  ó<   øè è € ð 	ð 	Ø€E€Eˆ!�H„Hð	ð 	ð 	ð 	ð 	ð 	ru   c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r	  ro   r  s     €rj   r$  z(test_driver.check_xml.<locals>.<genexpr>Æ  r  ru   )rc   r†   r‡   r}   ÚFeatureErrorÚUndefinedObjectErrorr   ÚXMLÚhasattrr  r…   rÏ   )r   ÚxmlÚtextxmlr²   r"   r#   r  s         @rj   Ú	check_xmlztest_driver.check_xml™  sã  ø€ ð
Ý	�ŠÐ$Ñ	%Ô	%€3Ý�ZŠZÐ.Ñ/Ô/€7Ø‡}‚}�XÑÔ€1€1øÝ
Ô
�vÔ:Ð	;ð 
ð 
ð 
à	€6€6ð
øøøõ 	Œ	�(ÑÔ€#ÝŒ	�(ÑÔ€#Ý�U�NÑ#Ô#ð ð/ð /ð /ð /õ Œ>€5Ø×Ò�5�5˜Ÿš 3™œÑ(Ô(¨%¨%°©*¬*Ñ5Ô5Ð5Ø×Ò�5�5˜Ÿš 3™œÑ(Ô(¨%¨%°©*¬*Ñ5Ô5Ð5Ø×Ò�5�5˜Ÿš xÑ0Ô0Ñ1Ô1°5°5¸±:´:Ñ>Ô>Ð>Ø×Ò�5�5˜Ÿš xÑ0Ô0Ñ1Ô1°5°5¸±:´:Ñ>Ô>Ð>Ø×Ò�5�5˜Ÿš¥5¤9¨XÑ#6Ô#6Ñ7Ô7Ñ8Ô8¸%¸%À¹*¼*ÑEÔEÐEØ×Ò�5�5˜Ÿš xÑ0Ô0Ñ1Ô1°5°5¸±:´:Ñ>Ô>Ð>à×ÒÝð 	ð 	ð 	ð 	Ø—i’i Ñ/Ô/ð	ñ 	ô 	ñ ô à€uˆS�z„z�5�5˜‘:”:Ðñô ð ð
 ×ÒÝð 	ð 	ð 	ð 	Ø—m’m NÑ3Ô3ð	ñ 	ô 	ñ ô ð 
€Eˆ#�J„J���c‘
”
Ðñ	ô ð ð ×ÒÝð 	ð 	ð 	ð 	Ø—i’iØˆsð!ñ ô ð	ñ 	ô 	ñ ô ð
 
€Eˆ#�J„J���c‘
”
Ðñô ð ð ×ÒÝð 	ð 	ð 	ð 	Ø—i’iØˆsð!ñ ô ð	ñ 	ô 	ñ ô ð
 
€Eˆ#�J„J���c‘
”
Ðñô ð ð ð s   ƒA	A ÁA,Á+A,c                 ó.   — |                       ¦   «          d S r	  )r   r
  s    rj   ÚtestXMLztest_driver.testXMLÎ  rÄ  ru   c                 óL   — dt           j        d<   |                      ¦   «          d S )NÚ	sql_asciiÚclient_encoding©rc   rL  r   r
  s    rj   ÚtestXML_asciiztest_driver.testXML_asciiÒ  s'   € ð $/…"„+ÐÑ Ø‡.‚.ÑÔÐÐÐru   c                 óL   — dt           j        d<   |                      ¦   «          d S )NÚutf8r%  r&  r
  s    rj   ÚtestXML_utf8ztest_driver.testXML_utf8Ø  s'   € ð $*…"„+ÐÑ Ø‡.‚.ÑÔÐÐÐru   c                 ó  — t                                d¦  «                             ¦   «         }|rSt                                d¦  «        j        }t          j        ¦   «         }|                       ||¦  «        |¦  «         d S d S )Nz6select true from pg_type where lower(typname) = 'uuid'zselect $1::uuid)rc   r†   r‡   ÚuuidÚuuid1r…   )r   Úhas_uuidr�   rû   s       rj   ÚtestUUIDztest_driver.testUUIDß  s|   € õ �ZŠZØ;ñ=ô =ß=BºU¹W¼Wð àð Ý
�
Š
Ð$Ñ%Ô%Ô+€2Ý„z�|„|€1Ø×Ò�B�B�q‘E”E˜1ÑÔÐÐÐðð ru   c                 ó  — t                                d|z   ¦  «        j        } |d¦  «        }|                      ||¦  «          |d¦  «        }|                      ||¦  «          ||¦  «        }|                      ||¦  «          ||¦  «        }|                      ||¦  «         t                                d|z   dz   ¦  «        j        }|                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         d S )Nrô  Úinfinityz	-infinityz::text)rc   r†   r‡   r…   )r   rû  ÚinfÚnegr�   Úvals         rj   Ú_infinity_testztest_driver._infinity_testé  s  € Ý	‡z‚z�- 'Ñ)Ñ*Ô*Ô0€"Ø
ˆˆ:‰Œ€#Ø×Ò�3˜ÑÔÐØ
ˆˆ;‰Œ€#Ø×Ò�3˜ÑÔÐØ
ˆˆ3‰Œ€#Ø×Ò�3˜ÑÔÐØ
ˆˆ3‰Œ€#Ø×Ò�3˜ÑÔÐÝ	‡z‚z�- 'Ñ)¨HÑ4Ñ5Ô5Ô;€"Ø×Ò�2�2�j‘>”> :Ñ.Ô.Ð.Ø×Ò�2�2�k‘?”? KÑ0Ô0Ð0Ð0Ð0ru   c                 óŠ   — |                       dt          t          ¦  «         |                       dt          t          ¦  «         d S )Nr2   r$   )r5  r	   r   r
  s    rj   ÚtestInfinity_stdlib_datetimez(test_driver.testInfinity_stdlib_datetime÷  s<   € à×Ò�mÕ%6Õ8RÑSÔSÐSØ×Ò�kÕ#4Õ6PÑQÔQÐQÐQÐQru   c                 óœ   — 	 t                               d¦  «        ¦   «          |                      dt          t          ¦  «         d S #  Y d S xY w)NzSELECT 'infinity'::dater,   )rc   r†   r5  r   r
   r
  s    rj   ÚtestInfinity_stdlib_datez$test_driver.testInfinity_stdlib_dateü  sO   € ðÝ‡:‚:Ð'Ñ(Ô(Ñ*Ô*Ð*Ø×Ò�v�}Õ.DÑEÔEÐEÐEÐEøðØ€4€4øøøs   ‚AA ÁAc                 óL	  ‡— t          t          j        j        ¦  «        }t                               d¦  «        }|                      t          j        |d¦  «         	 t                               d¦  «         t                               d¦  «        }|                      t          j        |d¦  «         	  |d¦  «         |  	                    d¦  «         n¯# t          j        $ r�}|  
                    t          |j        t          j        ¦  «        ¦  «         |                      t          |j        d         ¦  «        d¦  «         |                      t          |j        j        d         ¦  «        d¦  «         Y d }~nd }~ww xY w G d	„ d
t"          ¦  «        Šˆfd„}t          j                             t&          j        ¦  «        \  }}}|t          j        _        |||ft          j        j        t&          j        <   t                               d¦  «        }|                      t          j        |t-          j        d¦  «        ¦  «         	  |t-          j        d¦  «        ¦  «         |  	                    d¦  «         nª# t          j        $ r˜}|  
                    t          |j        ‰¦  «        ¦  «         |                      t          |j        d         ¦  «        d¦  «         |  
                    d|j        v ¦  «         |  
                    d|j        v ¦  «         Y d }~nd }~ww xY wt                               d¦  «        }	  |t-          j        d¦  «        f¦  «         |  	                    d¦  «         nø# t          j        $ ræ}|  
                    t          |j        t          j        ¦  «        ¦  «         |  
                    t          |j        j        ‰¦  «        ¦  «         |                      t          |j        d         ¦  «        d¦  «         |                      t          |j        j        d         ¦  «        d¦  «         |  
                    d|j        v ¦  «         Y d }~nd }~ww xY wt                               d¦  «         d S # t                               d¦  «         w xY w)NzSELECT $1::numericr"   z,CREATE type test_tuple_error AS (n numeric);z)SELECT $1::test_tuple_error AS the_column©r"   zfailed to raise TupleErrorÚpositionr   c                   ó   — e Zd ZdS )ú.test_driver.testTypeIOError.<locals>.ThisErrorNr;  ro   ru   rj   Ú	ThisErrorr>    s   € € € € € Ø€Dru   r?  c                 ó   •—  ‰| ¦  «        ‚r	  ro   )Úargr?  s    €rj   Úraise_ThisErrorz4test_driver.testTypeIOError.<locals>.raise_ThisError  s   ø€ Ø
ˆ)�C‰.Œ.Ðru   zSELECT $1::numeric as colrT   z)failed to raise TupleError from receptionÚNUMERICrà   z"SELECT $1::test_tuple_error AS tteÚtest_tuple_errorzdrop type test_tuple_error;)rñ   rc   r¡   Ú_cacher†   r|   r}   ÚParameterErrorrd   rF  r    r°   Ú	__cause__ÚCompositeErrorr…   r   Údetailsrf   ÚresolverÔ   Ú
NUMERICOIDÚColumnErrorré   rê   Úmessage)	r   Úoriginalr�   ÚerrrB  ÚpackÚunpackÚtypr?  s	           @rj   ÚtestTypeIOErrorztest_driver.testTypeIOError  sU  ø€ å•"”(”/Ñ"Ô"€(Ý	‡z‚zÐ&Ñ'Ô'€"Ø×Ò•FÔ)¨2¨uÑ5Ô5Ð5ð8-Ý‡:‚:Ð<Ñ=Ô=Ð=Ý
�
Š
Ð>Ñ?Ô?€2Ø×Ò•VÔ*¨B°Ñ9Ô9Ð9ð,Ø€B€x�L„L€Lð 	‡I‚IÐ*Ñ+Ô+Ð+Ð+øõ Ô
ð @ð @ð @ð 	‡O‚O•J˜sœ}­fÔ.CÑDÔDÑEÔEÐEØ×Ò•S˜œ ZÔ0Ñ1Ô1°1Ñ5Ô5Ð5à×Ò•S˜œÔ.¨zÔ:Ñ;Ô;¸QÑ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?øøøøð@øøøð	ð 	ð 	ð 	ð 	•9ñ 	ô 	ð 	ðð ð ð ð å”x×'Ò'­Ô(;Ñ<Ô<Ñ€4ˆ�à…2„8„?Ø+/°À#Ð*F…2„8„?•8Ô&Ñ'å
�
Š
Ð.Ñ/Ô/€2Ø×ÒÝ
Ô˜�GœO¨EÑ2Ô2ñô ð ð	;Ø€B…w„�uÑÔÑÔÐð 	‡I‚IÐ9Ñ:Ô:Ð:Ð:øõ Ô
ð *ð *ð *Ø‡O‚O•J˜sœ}¨iÑ8Ô8Ñ9Ô9Ð9à×Ò•S˜œ ZÔ0Ñ1Ô1°1Ñ5Ô5Ð5Ø‡O‚O�I ¤Ð,Ñ-Ô-Ð-Ø‡O‚O�E˜Sœ[Ð(Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)øøøøð*øøøõ 	�
Š
Ð7Ñ8Ô8€2ð
;Ø€B�Œ˜ÑÔÐ Ñ!Ô!Ð!ð 	‡I‚IÐ9Ñ:Ô:Ð:Ð:øõ Ô
ð 7ð 7ð 7Ø‡O‚O•J˜sœ}­fÔ.CÑDÔDÑEÔEÐEØ‡O‚O•J˜sœ}Ô6¸	ÑBÔBÑCÔCÐCà×Ò•S˜œ ZÔ0Ñ1Ô1°1Ñ5Ô5Ð5Ø×Ò•S˜œÔ.¨zÔ:Ñ;Ô;¸QÑ?Ô?Ð?Ø‡O‚OÐ&¨#¬+Ð5Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6øøøøð7øøøõ ‡:‚:Ð+Ñ,Ô,Ð,Ð,Ð,ø…2‡:‚:Ð+Ñ,Ô,Ð,Ð,øøøs�   ÁAR Â2C Â=R ÃE?Ã"BE:Å5R Å:E?Å?CR ÉI: É$R É:L!Ê	BLÌR ÌL!Ì!R Ì?M3 ÍR Í3Q(ÎCQ#ÑR Ñ#Q(Ñ(R ÒR#c                 ó¢   — 	 t                               d¦  «        ¦   «          n# t          j        $ r Y d S w xY w|                      d¦  «         d S )NzSELEKT 1zSyntaxError was not raised)rc   r†   r}   ÚSyntaxErrorrF  r
  s    rj   ÚtestSyntaxErrorztest_driver.testSyntaxErrorC  s`   € ð
Ý‡:‚:ˆjÑÔÑÔÐÐøÝ	Ô	ð 
ð 
ð 
Ø	€6€6ð
øøøà‡)‚)Ð(Ñ)Ô)Ð)Ð)Ð)ó   ‚!$ ¤7¶7c                 ó¢   — 	 t                               d¦  «        ¦   «          n# t          j        $ r Y d S w xY w|                      d¦  «         d S )Nz(SELECT * FROM sdkfldasjfdskljZknvson.foozSchemaNameError was not raised)rc   r†   r}   ÚSchemaNameErrorrF  r
  s    rj   ÚtestSchemaNameErrorztest_driver.testSchemaNameErrorK  sa   € ð
Ý‡:‚:Ð8Ñ9Ô9Ñ;Ô;Ð;Ð;øÝ	Ô	ð 
ð 
ð 
Ø	€6€6ð
øøøà‡)‚)Ð,Ñ-Ô-Ð-Ð-Ð-rW  c                 ó¢   — 	 t                               d¦  «        ¦   «          n# t          j        $ r Y d S w xY w|                      d¦  «         d S )Nz2SELECT * FROM public.lkansdkvsndlvksdvnlsdkvnsdlvkz"UndefinedTableError was not raised)rc   r†   r}   ÚUndefinedTableErrorrF  r
  s    rj   ÚtestUndefinedTableErrorz#test_driver.testUndefinedTableErrorS  sa   € ð
Ý‡:‚:ÐBÑCÔCÑEÔEÐEÐEøÝ	Ô	#ð 
ð 
ð 
Ø	€6€6ð
øøøà‡)‚)Ð0Ñ1Ô1Ð1Ð1Ð1rW  c                 ó¢   — 	 t                               d¦  «        ¦   «          n# t          j        $ r Y d S w xY w|                      d¦  «         d S )Nz6SELECT x____ysldvndsnkv FROM information_schema.tablesz#UndefinedColumnError was not raised)rc   r†   r}   ÚUndefinedColumnErrorrF  r
  s    rj   ÚtestUndefinedColumnErrorz$test_driver.testUndefinedColumnError[  sa   € ð
Ý‡:‚:ÐFÑGÔGÑIÔIÐIÐIøÝ	Ô	$ð 
ð 
ð 
Ø	€6€6ð
øøøà‡)‚)Ð1Ñ2Ô2Ð2Ð2Ð2rW  c                 ó¢   — 	 t                               d¦  «        ¦   «          n# t          j        $ r Y d S w xY w|                      d¦  «         d S )NzSELECT 1 WHERE avg(1) = 1úSEARVError was not raised©rc   r†   r}   Ú
SEARVErrorrF  r
  s    rj   ÚtestSEARVError_avgInWherez%test_driver.testSEARVError_avgInWherec  sa   € ð
Ý‡:‚:Ð)Ñ*Ô*Ñ,Ô,Ð,Ð,øÝ	Ô	ð 
ð 
ð 
Ø	€6€6ð
øøøà‡)‚)Ð'Ñ(Ô(Ð(Ð(Ð(rW  c                 ó¢   — 	 t                               d¦  «        ¦   «          n# t          j        $ r Y d S w xY w|                      d¦  «         d S )NzSELECT 1 GROUP BY avg(1)rb  rc  r
  s    rj   ÚtestSEARVError_groupByAggz%test_driver.testSEARVError_groupByAggk  sa   € ð
Ý‡:‚:Ð(Ñ)Ô)Ñ+Ô+Ð+Ð+øÝ	Ô	ð 
ð 
ð 
Ø	€6€6ð
øøøà‡)‚)Ð'Ñ(Ô(Ð(Ð(Ð(rW  c                 ó¢   — 	 t                               d¦  «        ¦   «          n# t          j        $ r Y d S w xY w|                      d¦  «         d S )NzSELECT 1 WHERE 1z TypeMismatchError was not raised)rc   r†   r}   ÚTypeMismatchErrorrF  r
  s    rj   ÚtestTypeMismatchErrorz!test_driver.testTypeMismatchErrors  sa   € ð
Ý‡:‚:Ð Ñ!Ô!Ñ#Ô#Ð#Ð#øÝ	Ô	!ð 
ð 
ð 
Ø	€6€6ð
øøøà‡)‚)Ð.Ñ/Ô/Ð/Ð/Ð/rW  c                 óÞ   — 	 |                       t          j        t          j        d¦  «         d S #  |                       t          j        t                               d¦  «        ¦  «         Y d S xY w)Nz'CREATE TABLE lksvdnvsdlksnv(i intt___t))r|   r}   r  rc   r†   r
  s    rj   ÚtestUndefinedObjectErrorz$test_driver.testUndefinedObjectError{  s}   € ð
Ø×ÒÝ
ÔÝ„JÐ9ñô ð ð ð øðà×ÒÝ
ÔÝ‡J‚JÐ8Ñ9Ô9ñô ð ð ð ð øøøs	   ‚+/ ¯:A,c                 ó€   — |                       t          j        t                               d¦  «        j        ¦  «         d S )Nz'SELECT 1/i FROM (select 0 as i) AS g(i))r|   r}   ÚZeroDivisionErrorrc   r†   r‡   r
  s    rj   ÚtestZeroDivisionErrorz!test_driver.testZeroDivisionError‰  s=   € à×ÒÝ	ÔÝ‡:‚:Ð7Ñ8Ô8Ô>ñô ð ð ð ru   c                 óZ  — t                                ¦   «         5  t                                d¦  «         d d d ¦  «         n# 1 swxY w Y   t                                d¦  «         t                                d¦  «         |                      t
          j        t           j        d¦  «         d S )Nz CREATE TEMP TABLE withfoo(i int)úSELECT * FROM withfoozDROP TABLE withfoo)rc   r  rd   r†   r|   r}   r\  r
  s    rj   ÚtestTransactionCommitz!test_driver.testTransactionCommit�  sÎ   € å	‡w‚w�y„yð 2ð 2Ý‡:‚:Ð0Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2å‡*‚*Ð$Ñ%Ô%Ð%å‡*‚*Ð!Ñ"Ô"Ð"Ø×ÒÝ	ÔÝ„:Ð&ñô ð ð ð s   šAÁAÁAc                 ó  —  G d„ dt           ¦  «        }	 t                               ¦   «         5  t                               d¦  «         |‚# 1 swxY w Y   n# |$ r Y nw xY w|                      t
          j        t          j        d¦  «         d S )Nc                   ó   — e Zd ZdS )ú3test_driver.testTransactionAbort.<locals>.SomeErrorNr;  ro   ru   rj   Ú	SomeErrorru  ž  r@  ru   rv  zCREATE TABLE withfoo (i int)rq  )rf   rc   r  rd   r|   r}   r\  )r   rv  s     rj   ÚtestTransactionAbortz test_driver.testTransactionAbortœ  sà   € ðð ð ð ð •)ñ ô ð ðÝ
�Š‰	Œ	ð ð Ý‡J‚JÐ-Ñ.Ô.Ð.Ø
€Oðð ð ð øøøð ð ð ð ð øð 
ð ð ð Ø€4ðøøøà×ÒÝ	ÔÝ„:Ð&ñô ð ð ð s.   •A ®AÁAÁA ÁAÁA ÁAÁAc           
      ó\  — t          ¦   «         5 }|                     d¦  «         	 t                               d¬¦  «        5  t                               d¦  «         |                     d¦  «         |                      t          t                               d¦  «        ¦  «        t          |                     d¦  «        ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d¦  «         n# |                     d¦  «         w xY w	 d d d ¦  «         d S # 1 swxY w Y   d S )Nz%create table some_darn_table (i int);Úserializable)Ú	isolationz)insert into some_darn_table values (123);z)insert into some_darn_table values (321);zselect * from some_darn_tablezdrop table some_darn_table;)r¿  rd   rc   r  ÚassertNotEqualr±   r†   )r   r‹   s     rj   ÚtestSerializeableztest_driver.testSerializeable«  s�  € å
�u„uð /�Ø‡;‚;Ð6Ñ7Ô7Ð7ð/Ý	�Š˜^ˆÑ	,Ô	,ð ð Ý‡Z‚ZÐ;Ñ<Ô<Ð<à‡[‚[Ð<Ñ=Ô=Ð=Ø	×ÒÝ
�2�:Š:Ð5Ñ6Ô6Ñ7Ô7Ý
ˆ3�;Š;Ð6Ñ7Ô7Ñ8Ô8ñô ð ð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡K‚KÐ-Ñ.Ô.Ð.Ð.ø€C‡K‚KÐ-Ñ.Ô.Ð.Ð.øøøÐ.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /sM   �D!¦C9ÁBCÃC9ÃC	ÃC9ÃC	Ã C9Ã#D!Ã9DÄD!Ä!D%Ä(D%c                 ó*  —  G d„ dt           ¦  «        }	 t                               d¬¦  «        5  |                      t          j        t          j        d¦  «          |d¦  «        ‚# 1 swxY w Y   |                      d¦  «         d S # |$ r Y d S w xY w)Nc                   ó   — e Zd ZdS )ú+test_driver.testReadOnly.<locals>.somethingNr;  ro   ru   rj   Ú	somethingr  ¾  r@  ru   r€  z	read only)Úmodezcreate table ieeee(i int)zyeah, it raised.z$should have been passed by exception)rf   rc   r  r|   r}   ÚReadOnlyTransactionErrorrd   rF  )r   r€  s     rj   ÚtestReadOnlyztest_driver.testReadOnly¼  sí   € ðð ð ð ð •)ñ ô ð ð
Ý
�Š�{ˆÑ#Ô#ð (ð (Ø×ÒÝÔ$Ý„ZØ ñô ð ð
 ˆ)Ð&Ñ
'Ô
'Ð'ð(ð (ð (ð (øøøð (ð (ð (ð (ð ‡9‚9Ð3Ñ4Ô4Ð4Ð4Ð4øØ	ð ð ð Ø€4€4ðøøøs.   •B	 °7A'Á'A+Á+B	 Á.A+Á/B	 Â	BÂBc                 óf  — 	 t                                ¦   «         5  	 t                                d¦  «         n# t          j        $ r Y nw xY wd d d ¦  «         n# 1 swxY w Y   |                      d¦  «         d S # t          j        $ r&}|                      |j        d¦  «         Y d }~d S d }~ww xY w©Nz	selekt 1;z+__exit__ didn't identify failed transactionÚCLIENT©	rc   r  rd   r}   rU  rF  ÚInFailedTransactionErrorr…   Úsource©r   rO  s     rj   ÚtestFailedTransactionBlockz&test_driver.testFailedTransactionBlockÌ  s  € ð*Ý
�Š‰	Œ	ð 
ð 
ð
Ý‡Z‚Z�ÑÔÐÐøÝÔð 
ð 
ð 
Ø	€Tð
øøøð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð
 ‡9‚9Ð:Ñ;Ô;Ð;Ð;Ð;øÝ	Ô	(ð *ð *ð *Ø×Ò�C”J Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)øøøøð*øøøsZ   ‚A; ›A�8·A¸A
ÁAÁ	A
Á
AÁA; ÁAÁA; Á AÁ!A; Á;B0Â
B+Â+B0c                 óÊ  — t                                ¦   «         5  	 t                                ¦   «         5  	 t                                d¦  «         n# t          j        $ r Y nw xY wd d d ¦  «         n# 1 swxY w Y   |                      d¦  «         n7# t          j        $ r%}|                      |j        d¦  «         Y d }~nd }~ww xY wd d d ¦  «         d S # 1 swxY w Y   d S r…  r‡  rŠ  s     rj   ÚtestFailedSubtransactionBlockz)test_driver.testFailedSubtransactionBlockØ  sz  € å	‡w‚w�y„yð 
+ð 
+ð	+Ý	�Š‰Œð ð ðÝ‡j‚j�ÑÔÐÐøÝÔð ð ð Ø
€dðøøøðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 	‡I‚IÐ;Ñ<Ô<Ð<Ð<øÝ
Ô
)ð +ð +ð +à×Ò�S”Z Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*øøøøð+øøøð
+ð 
+ð 
+ñ 
+ô 
+ð 
+ð 
+ð 
+ð 
+ð 
+ð 
+ð 
+øøøð 
+ð 
+ð 
+ð 
+ð 
+ð 
+s€   šCœBµA3·AÁA3ÁA$Á!A3Á#A$Á$A3Á'BÁ3A7	Á7BÁ:A7	Á;BÂCÂCÂ#CÂ>CÃCÃCÃCÃCc           	      óŠ  — t                                ¦   «         5  t                                ¦   «         5  t                                d¦  «         t                                ¦   «         5  t                                d¦  «         	 t                                ¦   «         5  t                                d¦  «         d d d ¦  «         n# 1 swxY w Y   n# t          j        $ r Y nw xY wd d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t                                ¦   «         5  t                                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¦  «         t                                d¦  «         t                                d¦  «         d S )Nz%create temp table subxact_sx1(i int);z%create temp table subxact_sx2(i int);úselekt 1z%create temp table subxact_sx3(i int);zdrop table subxact_sx1zdrop table subxact_sx2zdrop table subxact_sx3)rc   r  rd   r}   rU  r
  s    rj   Ú!testSuccessfulSubtransactionBlockz-test_driver.testSuccessfulSubtransactionBlockæ  s¨  € å	‡w‚w�y„yð 8ð 8Ý
�Š‰	Œ	ð ð Ý‡J‚JÐ6Ñ7Ô7Ð7Ý	�Š‰Œð 
ð 
Ý‡Z‚ZÐ7Ñ8Ô8Ð8ðÝ�7Š7‰9Œ9ð ð Ý	‡z‚z�*ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øøåÔð ð ð à
€dðøøøð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 	�Š‰	Œ	ð 8ð 8Ý‡J‚JÐ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õ$ ‡*‚*Ð%Ñ&Ô&Ð&Ý‡*‚*Ð%Ñ&Ô&Ð&Ý‡*‚*Ð%Ñ&Ô&Ð&Ð&Ð&sÄ   šE*´4DÁ(C1ÂCÂC	Â8CÃCÃCÃCÃCÃC1ÃC"	ÃC1Ã!C"	Ã"C1Ã%DÃ1C5Ã5DÃ8C5Ã9DÃ<E*ÄD	ÄE*ÄD	ÄE*Ä,EÅE*ÅE	ÅE*ÅE	ÅE*Å*E.Å1E.c                 ón  — d }t                                ¦   «         5  	 t                                ¦   «         5  	 t                                ¦   «         5 }t                                d¦  «         d d d ¦  «         n# 1 swxY w Y   nO# t          j        $ r= t                                dt          t          |¦  «        ¦  «        z   dz   ¦  «         Y nw xY wd d d ¦  «         n# 1 swxY w Y   |                      d¦  «         n# t          j        $ r
}Y d }~nd }~ww xY wd d d ¦  «         d S # 1 swxY w Y   d S )Nr�  zRELEASE "xact(z)"z-InvalidSavepointSpecificationError not raised)	rc   r  rd   r}   rU  ÚhexÚidrF  Ú"InvalidSavepointSpecificationError)r   rû   rp   s      rj   ÚtestReleasedSavepointz!test_driver.testReleasedSavepointþ  sï  € ð €!Ý	‡w‚w�y„yð ?ð ?ð
?Ý	�Š‰Œð 7ð 7ð7Ý�7Š7‰9Œ9ð ˜Ý	‡z‚z�*ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øøåÔð 7ð 7ð 7Ý‡j‚jÐ!¥C­¨1©¬¡J¤JÑ.°Ñ5Ñ6Ô6Ð6Ð6Ð6ð7øøøð	7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 	‡I‚IÐ=Ñ>Ô>Ð>Ð>øõ Ô
3ð 	ð 	ð 	Ø€D€D€D€Døøøøð	øøøð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð ?ð ?sŸ   œD*žD·C ¹BÁA9Á-BÁ9A=Á=BÂ A=ÂBÂC ÂA	CÃC ÃCÃC ÃDÃ C$	Ã$DÃ'C$	Ã(DÃ+D*ÄDÄD*ÄDÄD*Ä*D.Ä1D.c                 óò   — 	 t                                ¦   «         5  t                                ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      d¦  «         d S # t          j        $ r Y d S w xY w©NzFtransaction __exit__ didn't identify cause ConnectionDoesNotExistError©rc   r  rˆ   rF  r}   r–   r
  s    rj   ÚtestCloseInSubTransactionBlockz*test_driver.testCloseInSubTransactionBlock  sµ   € ðÝ
�Š‰	Œ	ð ð Ý‡H‚H�J„J€Jðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à‡9‚9ÐUÑVÔVÐVÐVÐVøÝ	Ô	+ð ð ð Ø€4€4ðøøøs3   ‚A# ›AµA# ÁAÁA# ÁAÁ	A# Á#A6Á5A6c                 ó~  — 	 t                                ¦   «         5  t                                ¦   «         5  t                                ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      d¦  «         d S # t          j        $ r Y d S w xY wr—  r˜  r
  s    rj   r™  z*test_driver.testCloseInSubTransactionBlock  s>  € ðÝ
�Š‰	Œ	ð Xð XÝ	�Š‰Œð ð Ý‡X‚X�Z„Z€Zðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à‡I‚IÐVÑWÔWÐWðXð Xð Xñ Xô Xð Xð Xð Xð Xð Xð Xøøøð Xð Xð Xð Xð ‡9‚9ÐUÑVÔVÐVÐVÐVøÝ	Ô	+ð ð ð Ø€4€4ðøøøsW   ‚B) ›BµAÁBÁA	ÁBÁ"A	Á#BÁ;B) ÂBÂB) ÂBÂB) Â)B<Â;B<c                 ó(  — t           j        d         }t                                d¬¦  «        5  |                      t           j        d         d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t           j        d         |¦  «         d S )NrJ  rI  )rJ  ©rc   rL  r…   )r   Úorigs     rj   ÚtestSettingsCMztest_driver.testSettingsCM#  s·   € å	Œ�]Ô	#€$Ý	‡{‚{˜x€{Ñ(Ô(ð :ð :Ø×Ò•B”K Ô.°Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :à×Ò•2”;˜}Ô-¨tÑ4Ô4Ð4Ð4Ð4s   ®'A!Á!A%Á(A%c                 óÈ   — t           j        d= t           j        d         }dt           j        d<   t           j        d= |                      t           j        d         |¦  «         d S )NrJ  Ú
pg_catalogrœ  )r   Úcurs     rj   ÚtestSettingsResetztest_driver.testSettingsReset*  sS   € õ 	„k�-Ð Ý
Œ�MÔ"€#Ø+…"„+ˆmÑÝ„k�-Ð Ø×Ò•2”;˜}Ô-¨sÑ3Ô3Ð3Ð3Ð3ru   c                 ó´   — |                       t          t          j        ¦  «        t                               d¦  «                             ¦   «         ¦  «         d S )Nz select count(*) from pg_settings)r…   Úlenrc   rL  r†   r‡   r
  s    rj   ÚtestSettingsCountztest_driver.testSettingsCount3  sL   € à×ÒÝ…r„{ÑÔ•R—Z’ZÐ BÑCÔC×IÒIÑKÔKñô ð ð ð ru   c                 óò   — |                       t          j        d         t          j                             d¦  «        ¦  «         |                       d t          j                             d¦  «        ¦  «         d S )NrJ  z $*0293 vksnd)r…   rc   rL  rò   r
  s    rj   ÚtestSettingsGetztest_driver.testSettingsGet9  s`   € à×ÒÝ„;ˆ}Ô�rœ{Ÿš¨}Ñ=Ô=ñô ð ð ×Ò�4�œŸš¨Ñ9Ô9Ñ:Ô:Ð:Ð:Ð:ru   c                 óô   — t           j                             d¦  «        }|                      t           j        d         |d         ¦  «         |                      t           j        d         |d         ¦  «         d S )N)rJ  Údefault_statistics_targetrJ  r©  )rc   rL  Úgetsetr…   )r   Úsubs     rj   ÚtestSettingsGetSetztest_driver.testSettingsGetSet@  sj   € å
Œ×ÒØ/ñ	ô 	€#ð ×Ò•2”;˜}Ô-¨s°=Ô/AÑBÔBÐBØ×Ò•2”;Ð:Ô;¸SÐA\Ô=]Ñ^Ô^Ð^Ð^Ð^ru   c                 ó´  — t          t          j        ¦  «        }t          t          j                             ¦   «         ¦  «        }t	          t          j                             ¦   «         ¦  «        }t	          t          j                             ¦   «         ¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         |                      t          |¦  «        t          |¦  «        ¦  «         |D ]}|  	                    ||         |v ¦  «         Œ t	          t          j         
                    |¦  «                             ¦   «         ¦  «        }|                     t          d¦  «        ¬¦  «         t	          |                     ¦   «         ¦  «        }|                     t          d¦  «        ¬¦  «         |                      ||¦  «         d S )Nr   )Úkey)rñ   rc   rL  rï   r±   rì   rî   r…   r¤  r    rª  rí   r   )r   ÚdÚkrq   rû   ÚallÚdalls          rj   ÚtestSettingsztest_driver.testSettingsH  s^  € å
�2Œ;ÑÔ€!Ý
�2Œ;×ÒÑÔÑÔ€!Ý
�2Œ;×ÒÑÔÑÔ€!Ý
�2Œ;×ÒÑÔÑ Ô €!Ø×Ò•3�q‘6”6�3˜q™6œ6Ñ"Ô"Ð"Ø×Ò•3�q‘6”6�3˜q™6œ6Ñ"Ô"Ð"Øð ð €aØ‡?‚?�1�Q”4˜1�9ÑÔÐÐÝ�RŒ[×Ò Ñ"Ô"×(Ò(Ñ*Ô*Ñ+Ô+€#Ø‡(‚(�z˜!‰}Œ}€(ÑÔÐÝ	ˆa�gŠg‰iŒi‰Œ€$Ø‡)‚)•
˜1‘”€)ÑÔÐØ×Ò�4˜ÑÔÐÐÐru   c                 ó"  — t           j        d d…         dk     rd S dt           j                             ¦   «         vrt                                d¦  «         t                                dd¦  «         |                      t          t                               d¦  «        ¦   «         ¦  «        d¦  «         t                                dd¦  «         |                      t          t                               d¦  «        ¦   «         ¦  «        d	¦  «         d S )
Nr   )r  r%   ÚplpgsqlzCREATE LANGUAGE plpgsqlz8BEGIN CREATE TEMP TABLE do_tmp_table(i int, t text); ENDzSELECT * FROM do_tmp_tabler   z7BEGIN INSERT INTO do_tmp_table VALUES (100, 'foo'); ENDr   )	rc   Úversion_inforg   Ú	languagesrd   Údor…   r¤  r†   r
  s    rj   ÚtestDoztest_driver.testDoX  sÝ   € õ „_�R�a�RÔ˜5Ò Ð Ø	€6Ø•b”f×&Ò&Ñ(Ô(Ð(Ð(Ý‡:‚:Ð'Ñ(Ô(Ð(Ý‡%‚%ˆ	ÐMÑOÔOÐOØ×Ò•3•r—z’zÐ">Ñ?Ô?ÑAÔAÑBÔBÀAÑFÔFÐFÝ‡%‚%ˆ	ÐLÑMÔMÐMØ×Ò•3•r—z’zÐ">Ñ?Ô?ÑAÔAÑBÔBÀAÑFÔFÐFÐFÐFru   c                 óX  — t                                dd¦  «         |                      t          t                                ¦   «         ¦  «        ddh¦  «         t                                d¦  «         t                                dd¦  «         |                      t          t                                ¦   «         ¦  «        ddh¦  «         t                                dd¦  «         |                      t          t                                ¦   «         ¦  «        t          ¦   «         ¦  «         d S )Nr"   r#   )rc   Úlistenr…   r,  Úlistening_channelsÚunlistenr
  s    rj   ÚtestListeningChannelsz!test_driver.testListeningChannelsd  sà   € å‡)‚)ˆE�5ÑÔÐØ×Ò•3•r×,Ò,Ñ.Ô.Ñ/Ô/°%¸°Ñ?Ô?Ð?Ý‡+‚+ˆeÑÔÐÝ‡)‚)ˆE�5ÑÔÐØ×Ò•3•r×,Ò,Ñ.Ô.Ñ/Ô/°%¸°Ñ?Ô?Ð?Ý‡+‚+ˆe�UÑÔÐØ×Ò•3•r×,Ò,Ñ.Ô.Ñ/Ô/µ±´Ñ7Ô7Ð7Ð7Ð7ru   c                 ó(  — t                                dd¦  «         t                                dd¦  «         t                                d¦  «         t                                d¦  «         |                      t           j        d         j        d¦  «         |                      t           j        d         j        t           j        ¦  «         |                      t           j        d         j	        d¦  «         t           j        d= t                                d¦  «         t                                d¦  «         |                      t           j        d         j        d¦  «         |                      t           j        d         j        t           j        ¦  «         |                      t           j        d         j	        d¦  «         t           j        d= t            
                    d¦  «         t                                d¦  «         t                                d¦  «         |                      t           j        g ¦  «         |                      t          t           j        dd	¦  «         |                      dt                                ¦   «         v¦  «         d S )
Nr"   r#   Ú r   r    ru   s   barÚdoesntexistÚ@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)rc   r»  Únotifyrd   r…   Ú	_notifiesÚchannelÚpidÚ
backend_idÚpayloadr½  r|   rf   r    r¼  r
  s    rj   Ú
testNotifyztest_driver.testNotifyn  sÌ  € å‡)‚)ˆE�5ÑÔÐÝ‡)‚)ˆE�5ÑÔÐÝ‡)‚)ˆEÑÔÐÝ‡*‚*ˆR�.„.€.Ø×Ò•2”< ”?Ô*¨FÑ3Ô3Ð3Ø×Ò•2”< ”?Ô&­¬Ñ6Ô6Ð6Ø×Ò•2”< ”?Ô*¨CÑ0Ô0Ð0Ý„l�1€oÝ‡)‚)ˆEÑÔÐÝ‡*‚*ˆR�.„.€.Ø×Ò•2”< ”?Ô*¨FÑ3Ô3Ð3Ø×Ò•2”< ”?Ô&­¬Ñ6Ô6Ð6Ø×Ò•2”< ”?Ô*¨CÑ0Ô0Ð0Ý„l�1€oÝ‡+‚+ˆeÑÔÐÝ‡)‚)ˆEÑÔÐÝ‡*‚*ˆR�.„.€.Ø×Ò•2”< Ñ$Ô$Ð$à×Ò•I�rœy¨-¸Ñ@Ô@Ð@Ø‡/‚/�-¥r×'<Ò'<Ñ'>Ô'>Ð>Ñ?Ô?Ð?Ð?Ð?ru   c                 ó�  — t           j        d d…         dk    �r,t                                d¦  «         t                                d¬¦  «         |                      ddt           j        ft          t                                d¦  «        ¦  «        d         ¦  «         t                                d¦  «         |                      ddt           j        ft          t                                d¦  «        ¦  «        d         ¦  «         t                                ddd	d
¬¦  «         |                      ddt           j        fddt           j        fddt           j        fdd
t           j        fgt          t                                d¦  «        ¦  «        ¦  «         ddt           j        fddt           j        fg}t          t          |¦  «        ¦  «        }t                                d¦  «         t                                dd¬¦  «         |  	                    t          t                                d¦  «        ¦  «        ||fv ¦  «         d S d S )Nr   )r  r   r"   r#   r;  r   )r"   ÚbarredrË  )r"   ÚblehÚkwrÀ  rÌ  Úmeh)r"   r#   )
rc   r¶  r»  rÃ  r…   rÇ  r±   ÚiternotifiesÚreversedr    )r   ÚexpectÚrexpects      rj   ÚtestPayloadsztest_driver.testPayloads†  sà  € å„_�R�a�RÔ˜EÒ!Ñ!Ý‡9‚9ˆUÑÔÐÝ‡9‚9�5€9ÑÔÐØ×Ò�U˜E¥2¤=Ð1µ4½¿ºÈÑ8JÔ8JÑ3KÔ3KÈAÔ3NÑOÔOÐOÝ‡9‚9ÐÑÔÐØ×Ò�U˜H¥b¤mÐ4µd½2¿?º?È1Ñ;MÔ;MÑ6NÔ6NÈqÔ6QÑRÔRÐRå‡9‚9Ð  ¸d€9ÑCÔCÐCØ×ÒØˆX•r”}Ð%ØˆR•”ÐØˆV•R”]Ð#àˆT•2”=Ð!ðõ �B�OŠO˜AÑÔÑÔñô ð ð ˆE•2”=Ð!Ø
ˆE•2”=Ð!ð€6õ •(˜6Ñ"Ô"Ñ#Ô#€7Ý‡9‚9ˆUÑÔÐÝ‡9‚9�5 €9Ñ&Ô&Ð&Ø‡?‚?•4�Ÿš¨Ñ*Ô*Ñ+Ô+°¸Ð/@Ð@ÑAÔAÐAÐAÐAð1 "Ð!ru   c                 óX  ‡— t                                d¦  «        }t                                d¦  «        }|t           t           j        t           j        j        g}g Šˆfd„}t                                ¦   «         5  dt           j        d<   |D ]}||_         |¦   «          |` |¦   «          Œ 	 d d d ¦  «         n# 1 swxY w Y   |                      t          ‰¦  «        t          |¦  «        ¦  «         d }‰D ]1}|€|}Œ|  	                    | 
                    |¦  «        ¦  «         |}Œ2d S )Nz-CREATE TEMP TABLE msghook (i INT PRIMARY KEY)zDROP TABLE msghookc                 ó2   •— ‰                      | ¦  «         dS )NT)re   )rû   Únoticess    €rj   Úaddz(test_driver.testMessageHook.<locals>.add­  s   ø€ Ø
‡>‚>�!ÑÔÐà
ˆ$ru   ÚNOTICEÚclient_min_messages)rc   r†   Ú	connectorÚdriverr  rL  Úmsghookr…   r¤  r    Úisconsistent)r   ÚcreateÚdropÚpartsr×  rû   ÚlastrÖ  s          @rj   ÚtestMessageHookztest_driver.testMessageHook¢  s  ø€ å�:Š:ÐEÑFÔF€&Ý	�ŠÐ(Ñ	)Ô	)€$à	ÝÝ„<Ý„<Ôð	€%ð €'ðð ð ð ð õ 
‡w‚w�y„yð ð Ø(0…2„;Ð$Ñ%àð ð €qØ€A„IØ
€F�H„H€HØ	ˆ	Ø€D�F„F€F€Fð	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ×Ò•3�w‘<”<¥ U¡¤Ñ,Ô,Ð,Ø	€$Øð ð €aØ
€lØ€DØØ‡?‚?�1—>’> $Ñ'Ô'Ñ(Ô(Ð(Ø
€4€4ðð s   Á:2B9Â9B=Ã B=c                 ó  — ddl m} |t          j        _        t          d¦  «        }|                     ¦   «         }|                      |j        d¦  «         |                      |j	        d¦  «          |¦   «         d         }|                      |j        d¦  «         |                      |j	        d¦  «         | 
                    ¦   «                              d¦  «        d         }|                      |j        d¦  «         |                      |j	        d¦  «         t          d¦  «         t          d¦  «        }|                     ¦   «         }|                      |j        d¦  «         |                      |j	        d¦  «         d S )Nr   )ÚNamedTupleFactoryzselect 1 as foo, 2 as barr   r   z%create type rtf AS (foo int, bar int)zselect ROW(1, 2)::rtf)Útypes.namedtuplerä  rc   r¡   ÚRowTypeFactoryr†   r‡   r…   r"   r#   r‰   rŠ   rD  )r   rä  r�   Úfirst_resultsÚcall_resultsÚdeclare_resultsÚcomposite_resultss          rj   ÚtestRowTypeFactoryztest_driver.testRowTypeFactoryÂ  sc  € à2Ð2Ð2Ð2Ð2Ð2Ø-…"„(ÔÝÐ*Ñ+Ô+€"Ø—(’(‘*”*€-Ø×Ò�=Ô$ aÑ(Ô(Ð(Ø×Ò�=Ô$ aÑ(Ô(Ð(à�‘”�a”€,Ø×Ò�<Ô# QÑ'Ô'Ð'Ø×Ò�<Ô# QÑ'Ô'Ð'à—J’J‘L”L×%Ò% aÑ(Ô(¨Ô+€/Ø×Ò�?Ô&¨Ñ*Ô*Ð*Ø×Ò�?Ô&¨Ñ*Ô*Ð*å	Ð
1Ñ2Ô2Ð2ÝÐ&Ñ'Ô'€"Ø—h’h‘j”jÐØ×ÒÐ$Ô(¨!Ñ,Ô,Ð,Ø×ÒÐ$Ô(¨!Ñ,Ô,Ð,Ð,Ð,ru   c                 óÈ  — ddl m}  |t          d¦  «        ¦  «        }t           |d¦  «        ¦  «        d         }|                      |d         d¦  «         |                      |j        d¦  «         |                      |d         d¦  «         |                      |j        d¦  «         |                      |d         d¦  «         |                      |j        d¦  «         d S )Nr   )Únamedtuplesz,select 1 as foo, 2 as bar, $1::text as paramÚhellor   r   )rå  rí  r†   r±   r…   r"   r#   Úparam)r   rí  r�   r²   s       rj   ÚtestNamedTuplesztest_driver.testNamedTuplesÙ  sâ   € à,Ð,Ð,Ð,Ð,Ð,Ø€{•7ÐIÑJÔJÑKÔK€"Ý
ˆ2ˆ2ˆg‰;Œ;ÑÔ˜Ô€!Ø×Ò�1�Q”4˜ÑÔÐØ×Ò�1”5˜!ÑÔÐØ×Ò�1�Q”4˜ÑÔÐØ×Ò�1”5˜!ÑÔÐØ×Ò�1�Q”4˜Ñ!Ô!Ð!Ø×Ò�1”7˜GÑ$Ô$Ð$Ð$Ð$ru   c                 ó  — t           j        j                             ¦   «          |                      t
          j        t          d¦  «         |                      t          t
          j        t
          j
        ¦  «        ¦  «         d S )Nr“   )rc   r£   Úsocketrˆ   r|   r}   ÚConnectionFailureErrorrD  r    Ú
issubclassÚDisconnectionr
  s    rj   Ú	testBadFDztest_driver.testBadFDå  se   € å„%„,×ÒÑÔÐà×ÒÝ	Ô Ý
ˆJñô ð ð ‡/‚/•*�VÔ:½FÔ<PÑQÔQÑRÔRÐRÐRÐRru   c                 ó˜  — t          ¦   «         5 }|j        d d…         dk    r|j                             ¦   «          n|j                             ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      t          j        t          d¦  «         |  	                    t          t          j        t          j        ¦  «        ¦  «         d S )Nr   )r  r   r“   )r¿  r¶  rg   Úterminate_backendsÚterminate_backends_92r|   r}   ÚAdminShutdownErrorrD  r    rô  rõ  )r   Úkillers     rj   ÚtestAdminTerminatedztest_driver.testAdminTerminatedï  sï   € å
�u„uð '�ØÔ˜"˜1˜"Ô Ò&Ð&Ø
„J×!Ò!Ñ#Ô#Ð#Ð#à
„J×$Ò$Ñ&Ô&Ð&ð	'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð ×ÒÝ	ÔÝ
ˆJñô ð ð ‡/‚/•*�VÔ6½Ô8LÑMÔMÑNÔNÐNÐNÐNs   �AA"Á"A&Á)A&c                 óŠ  — |                       t                               d¦  «        dg¦  «         |                       t          j                             d¦  «        d¦  «         |                       t	          t          j                             d¦  «        ¦  «        d¦  «         |                       t	          t          j                             d¦  «        ¦  «        d¦  «         |                       t          j                             d¦  «                             ¦   «         dg¦  «         |                       t                               dd¦  «        dg¦  «         |                       t          j                             dd¦  «        d¦  «         |                       t	          t          j                             dd¦  «        ¦  «        d¦  «         |                       t	          t          j                             dd¦  «        ¦  «        d¦  «         |                       t          j                             dd¦  «                             ¦   «         dg¦  «         |                       t          j         	                    ddgg¦  «        d ¦  «         |                       t          j         
                    ddggg¦  «        d ¦  «         d S )Nrƒ   r¬   r   zselect $1::int)r…   rc   Úqueryr‡   r�  r  r¼   r‰   rŠ   r+  rE  r
  s    rj   Ú	testQueryztest_driver.testQueryý  s  € à×Ò•2—8’8˜JÑ'Ô'¨$¨Ñ0Ô0Ð0Ø×Ò•2”8—>’> *Ñ-Ô-¨qÑ1Ô1Ð1Ø×Ò•4�œŸš¨
Ñ3Ô3Ñ4Ô4°aÑ8Ô8Ð8Ø×Ò•4�œŸš jÑ1Ô1Ñ2Ô2°DÑ9Ô9Ð9Ø×Ò•2”8×#Ò# JÑ/Ô/×4Ò4Ñ6Ô6¸¸Ñ?Ô?Ð?à×Ò•2—8’8Ð,¨aÑ0Ô0°4°&Ñ9Ô9Ð9Ø×Ò•2”8—>’>Ð"2°AÑ6Ô6¸Ñ:Ô:Ð:Ø×Ò•4�œŸšÐ(8¸!Ñ<Ô<Ñ=Ô=¸qÑAÔAÐAØ×Ò•4�œŸšÐ&6¸Ñ:Ô:Ñ;Ô;¸TÑBÔBÐBØ×Ò•2”8×#Ò#Ð$4°aÑ8Ô8×=Ò=Ñ?Ô?À$ÀÑHÔHÐHà×Ò•2”8×%Ò%Ð&6¸!¸¸Ñ>Ô>ÀÑEÔEÐEØ×Ò•2”8×'Ò'Ð(8¸Q¸C¸5¸'ÑBÔBÀDÑIÔIÐIÐIÐIru   N)T)dr<  r=  r>  r   r�   r‘   r˜   rª   r³   r¹   r¿   rÃ   rÝ   rþ   r  r  r  r  r   r1  r7  rG  rQ  rV  r\  r^  ra  rc  re  ri  ro  rq  rs  r‰  r‹  r�  r‘  r¤  r­  r¯  r²  r+  rÃ  rÆ  rE  rË  rÍ  rÚ  ræ  rè  rê  rî  rð  rò  r   r  r  r   r"  r'  r*  r/  r5  r7  r9  rS  rV  rZ  r]  r`  re  rg  rj  rl  ro  rr  rw  r|  rƒ  r‹  r�  r�  r•  r™  rž  r¢  r¥  r§  r¬  r³  r¹  r¾  rÉ  rÓ  râ  rë  rð  rö  rü  rÿ  ro   ru   rj   r`   r`   N  só	  € € € € € Øð>ð >ñ 	„&ð>ð. 	ð(ð (ñ 	„&ð(ð8 	ðð ñ 	„&ðð, 	ðDð Dñ 	„&ðDð* 	ð(ð (ñ 	„&ð(ð 	ðð ñ 	„&ðð  	ðð ñ 	„&ðð$ 	ð4ð 4ñ 	„&ð4ð  	ð<;ð <;ñ 	„&ð<;ð| 	ð@;ð @;ñ 	„&ð@;ðD9ð 9ð 9ð 	ðð ñ 	„&ðð 	ðð ñ 	„&ðð 	ð9ð 9ñ 	„&ð9ð 	ð=ð =ñ 	„&ð=ð 	ð ð  ñ 	„&ð ð 	ð	 ð 	 ñ 	„&ð	 ð 	ð3ð 3ñ 	„&ð3ð& 	ð	ð 	ñ 	„&ð	ð 	ð:ð :ñ 	„&ð:ð%ð %ð %ð0 	ðð ñ 	„&ðð 	ðð ñ 	„&ðð 	ðð ñ 	„&ðð 	ð
ð 
ñ 	„&ð
ð 	ð ð  ñ 	„&ð ð
$ð $ð $ð$ 	ðð ñ 	„&ðð 	ðð ñ 	„&ððð ð ð4 	ðð ñ 	„&ðð 	ð(ð (ñ 	„&ð(ð 	ðð ñ 	„&ðð 	ð+#ð +#ð +#ñ 	„&ð+#ðZ 	ð&ð &ñ 	„&ð&ð%ð %ð %ð 	ð%ð %ñ 	„&ð%ð"$ð $ð $ð> 	ðð ñ 	„&ðð 	ðð ñ 	„&ðð$ð $ð $ð> 	ðð ñ 	„&ðð 	ðð ñ 	„&ðð 	ð ð  ñ 	„&ð ð"ð ð ð4 	ðð ñ 	„&ðð 	ðð ñ 	„&ððð ð ð  	ðð ñ 	„&ðð 	ðð ñ 	„&ðð 	ðð ñ 	„&ðð" 	ðð ñ 	„&ðð8 	ð&ð &ñ 	„&ð&ð03ð 3ð 3ðj 	ðð ñ 	„&ðð 	ðð ñ 	„&ðð
 	ðð ñ 	„&ðð 	ðð ñ 	„&ðð1ð 1ð 1ð 	ðRð Rñ 	„&ðRð 	ðð ñ 	„&ðð 	ð<-ð <-ñ 	„&ð<-ð| 	ð*ð *ñ 	„&ð*ð 	ð.ð .ñ 	„&ð.ð 	ð2ð 2ñ 	„&ð2ð 	ð3ð 3ñ 	„&ð3ð 	ð)ð )ñ 	„&ð)ð 	ð)ð )ñ 	„&ð)ð 	ð0ð 0ñ 	„&ð0ð 	ðð ñ 	„&ðð 	ðð ñ 	„&ðð 	ð	ð 	ñ 	„&ð	ð 	ðð ñ 	„&ðð 	ð/ð /ñ 	„&ð/ð  	ðð ñ 	„&ðð 	ð	*ð 	*ñ 	„&ð	*ð 	ð+ð +ñ 	„&ð+ð 	ð'ð 'ñ 	„&ð'ð. 	ð?ð ?ñ 	„&ð?ð  	ðð ñ 	„&ðð 	ðð ñ 	„&ðð 	ð5ð 5ñ 	„&ð5ð 	ð4ð 4ñ 	„&ð4ð 	ðð ñ 	„&ðð
 	ð;ð ;ñ 	„&ð;ð 	ð_ð _ñ 	„&ð_ð 	ðð ñ 	„&ðð 	ð	Gð 	Gñ 	„&ð	Gð 	ð8ð 8ñ 	„&ð8ð 	ð@ð @ñ 	„&ð@ð. 	ðBð Bñ 	„&ðBð6 	ðð ñ 	„&ðð> 	ð-ð -ñ 	„&ð-ð, 	ð	%ð 	%ñ 	„&ð	%ð 	ðSð Sñ 	„&ðSð 	ðOð Oñ 	„&ðOð 	ðJð Jñ 	„&ðJð Jð Jru   r`   c                   ó:   — e Zd Zed„ ¦   «         Zed„ ¦   «         ZdS )Ú
test_typioc                 óF   — t           j                             d¬¦  «         d S )Nzpg_catalog.reltime)Úcontrib_hstore)rc   r¡   Úidentifyr
  s    rj   ÚtestIdentifyztest_typio.testIdentify  s$   € õ „(×ÒÐ%9ÐÑ:Ô:Ð:Ð:Ð:ru   c                 ó&  — 	 t          d¦  «         n# t          $ r Y d S w xY wt          d¦  «        j        }t          d¦  «        j        }|                       |g d¢¦  «        g d¢¦  «         |                       |g d¢¦  «        g d¢¦  «         d S )NzSELECT ARRAY[1,NULL]::int[]zselect $1::int[]zselect $1::text[])r   r   N)r"   Nr#   )rD  rf   r†   r‡   r…   )r   ÚintaÚtextas      rj   ÚtestArrayNullsztest_typio.testArrayNulls  s»   € ð
Ý
Ð(Ñ)Ô)Ð)Ð)øÝ	ð 
ð 
ð 
à	€6€6ð
øøøõ 
Ð#Ñ	$Ô	$Ô	*€$Ý
Ð%Ñ
&Ô
&Ô
,€%Ø×Ò�4�4˜
˜
˜
Ñ#Ô# Z Z ZÑ0Ô0Ð0Ø×Ò�5�5Ð+Ð+Ð+Ñ,Ô,Ð.@Ð.@Ð.@ÑAÔAÐAÐAÐAs   ‚ ’
 Ÿ N)r<  r=  r>  r   r  r	  ro   ru   rj   r  r    sM   € € € € € Øð;ð ;ñ 	„&ð;ð 	ð	Bð 	Bñ 	„&ð	Bð 	Bð 	Bru   r  Ú__main__)2rg   Úunittestrž   rv   r-   rë   ré   r,  Ú	itertoolsr   r   Úoperatorr   Úpython.datetimer   r   r	   r
   r   rÀ  r   rÔ   Útypes.io.stdlib_xml_etreer   r   r}   Útypes.bitwiser   r   Útemporalr   rê   rÙ   Úbytesr¾   r,   Ú	timedeltarø  Ú	ipaddressÚextendÚIPv4AddressÚIPv6AddressÚIPv4NetworkÚIPv6NetworkÚImportErrorÚTestCaser`   r  r<  Úmainro   ru   rj   ú<module>r     s#  ðð €
€
€
Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð ð'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð !Ð  Ð  Ð  Ð  Ð  Ø -Ð -Ð -Ð -Ð -Ð -Ø #Ð #Ð #Ð #Ð #Ð #Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð ðð
ð
ð
 ð ZØðZàðZð ˆ�V€9ðZð €c�6ð	Zð
 ðZð
 	ðZð
 ðZð €7„?Ð%Ñ&Ô&ðZð €7„?Ð%Ñ&Ô&ðZð €7„?Ð&Ñ'Ô'ðZð €7„?Ð&Ñ'Ô'ðZð €7„?Ð4Ñ5Ô5ðZð €7„?Ð&Ñ'Ô'ðZð €7„?�4ÑÔðZð €7„?�5ÑÔðZð €7„?Ð+Ñ,Ô,ðZð €7„?�3�3Ð'Ñ(Ô(Ñ)Ô)ðZð  €7„?�<Ñ Ô ð!Zð" €7„?Ð&Ñ'Ô'ð#Zð$ €7„?Ð$Ñ%Ô%ð%Zð& €7„?Ð#Ñ$Ô$ð'Zð( €7„?�<Ñ Ô ð)Zð* €7„?�<Ñ Ô ð+Zð, €7„?�=Ñ!Ô!ð-Zð. €7„?�>Ñ"Ô"ð/Zð0 €7„?�?Ñ#Ô#ð1Zð2 €7„?Ð#Ñ$Ô$ð3Zð4 €7„?Ð$Ñ%Ô%ð5Zð6 €7„?Ð%Ñ&Ô&ð7Zð8 €7„?Ð$Ñ%Ô%ð9Zð: €7„?Ð#Ñ$Ô$ð;Zð< €7„?�?Ñ#Ô#ð=Zð> €7„?�=Ñ!Ô!ð?Zð@ €7„?�<Ñ Ô ðAZðB €7„?�;ÑÔðCZðD €7„?�:ÑÔðEZðF €7„?�9ÑÔðGZðH €7„?�8ÑÔðIZðJ €7„?�7ÑÔðKZðL €7„?�5ÑÔðMZðN €7„?�7ÑÔðOZðP €7„?�8ÑÔðQZðR €7„?�9ÑÔðSZðT €7„?�:ÑÔðUZðV €7„?�;ÑÔðWZðX €7„?�<Ñ Ô ðYZðZ €7„?�=Ñ!Ô!ð[Zð\ €7„?�>Ñ"Ô"ð]Zð^ €7„?�?Ñ#Ô#ð_Zð` €7„?Ð1Ñ2Ô2ðaZðb €7„?�5ÑÔðcZðd €7„?�5ÑÔðeZðf €7„?�6ÑÔðgZðh €7„?�;ÑÔðiZðj €7„?�:ÑÔðkZðl €7„?�;ÑÔðmZðn €7„?�<Ñ Ô ðoZðp €7„?�;ÑÔðqZðr €7„?�<Ñ Ô ðsZðt €7„?�<Ñ Ô ðuZðv €7„?�;ÑÔðwZðx €7„?Ð2Ñ3Ô3ðyZðz €7„?Ð2Ñ3Ô3ð{Zð| €7„?Ð1Ñ2Ô2ð}Zð~ €7„?Ð1Ñ2Ô2ðZð@ €7„?Ð0Ñ1Ô1ðAZðB €7„?Ð/Ñ0Ô0ðCZðD €7„?Ð.Ñ/Ô/ðEZðF €7„?Ð-Ñ.Ô.ðGZðH €7„?Ð,Ñ-Ô-ðIZðJ €7„?Ð+Ñ,Ô,ðKZðL €7„?Ð*Ñ+Ô+ðMZðN €7„?Ð)Ñ*Ô*ðOZðP €7„?Ð(Ñ)Ô)ðQZðR €7„?Ð'Ñ(Ô(ðSZðT €7„?Ð&Ñ'Ô'ðUZðV €7„?Ð%Ñ&Ô&ðWZðX €7„?Ð$Ñ%Ô%ðYZðZ €7„?Ð#Ñ$Ô$ð[Zð\ €7„?�?Ñ#Ô#ð]Zð^ €7„?�>Ñ"Ô"ð_Zð` €7„?�=Ñ!Ô!ðaZðb €7„?�<Ñ Ô ðcZðd €7„?�;ÑÔðeZðf €7„?�:ÑÔðgZðh €7„?�9ÑÔðiZðj €7„?�8ÑÔðkZðl €7„?�7ÑÔðmZðn €7„?�6ÑÔðoZðp €7„?�5ÑÔðqZð Zð [ðx 
Ø€5ˆˆˆs‰ŒÑÔØ€5ˆˆˆs�B˜Ñ	Ô	ÑÔØØ	ð	ð ð ØÐÐØðð ð
 
ØÐÐØ€Cˆˆ€9Øðð ð ðð ð ð ðð ð Ø	ˆ5€?Ø	ˆ5€?Øðð ð Ø€8Ô�T˜!˜B˜q  BÑ'Ô'Ø€8Ô�T˜!˜A˜a  2Ñ&Ô&Ø€8Ô�S˜˜1˜Q˜r "Ñ%Ô%Ø€8Ô�S˜˜1˜Q˜r "Ñ%Ô%ØØðð ð 	Ø€8„=��a˜ÑÔØ€8„=��a˜ÑÔØ€8„=��Q�qÑÔØ€8„=��1�QÑÔð	ð ð 	Ø€8„=��B�rÑÔØ€8„=��1�QÑÔØ€8„=��B�rÑÔðð ð ð €8Ô�T˜!˜B˜r " Q¨{¨{¸4Ñ/@Ô/@ÐAÑAÔAØ€8Ô�T˜!˜B˜r " Q¨{¨{¸4Ñ/@Ô/@ÐAÑAÔAØ€8Ô�T˜!˜A˜b  A¨k¨k¸$Ñ.?Ô.?Ð@Ñ@Ô@Ø€8Ô�T˜!˜A˜b  A¨k¨k¸$Ñ.?Ô.?Ð@Ñ@Ô@Ø€8Ô�T˜!˜A˜b  A¨k¨k¸$Ñ.?Ô.?Ð@Ñ@Ô@ØØð
ð ð à€8„=��B�q  ¨TÑ!2Ô!2Ð3Ñ3Ô3Ø€8„=��B�q  ¨TÑ!2Ô!2Ð3Ñ3Ô3Ø€8„=��B�q  ¨TÑ!2Ô!2Ð3Ñ3Ô3Ø€8„=��B�q  ¨TÑ!2Ô!2Ð3Ñ3Ô3Ø€8„=��B�q  ¨Q¡¤Ð0Ñ0Ô0ðð ð à€8Ô�b˜"˜dÑ#Ô#Ø€8Ô�a˜˜DÑ!Ô!Ø€8Ô�a˜ÑÔØ€8Ô�d˜AÑÔØ€8Ô�d˜DÑ!Ô!ðð ð 
ð 	ð 	ð 	ð 
ð 	ð ð ð ð ð ð ð ð ð 	ð ð 
ð 
ð 
ð ð Ø€3€s�8„8Ø€3€s�8„8Øð
ð ð Ø	€6ˆ#�;„;Ø	€6ˆ#�;„;Ø	€6ˆ$�<„<Ø	€6ˆ$�<„<Ø	€6ˆ$�<„<Ø	€6ˆ%�=„=Ø	€6ˆ%�=„=Ø	€6ˆ%�=„=Ø	€6ˆ&�>„>Ø	€6ˆ&�>„>Ø	€6ˆ&�>„>Ø	€6Ð
/Ñ0Ô0Ø	€6ˆ.ÑÔðð ð  ØÐ,Ð-ØBÐBÐBØWÐWÐWðð ðCG€ðR+ØÐÐÐà×ÒØ	Ø€IÔÐ+Ñ,Ô,Ø€IÔ˜+Ñ&Ô&Ø€IÔ˜*Ñ%Ô%Ø€IÔ˜)Ñ$Ô$Ø€IÔ˜%Ñ Ô Ø€IÔÐ,Ñ-Ô-Ø€IÔ˜)Ñ$Ô$Ø€IÔ˜)Ñ$Ô$Ø€IÔ˜$ÑÔð
ð ð 
Ø€IÔÐ.Ñ/Ô/Ø€IÔ˜-Ñ(Ô(Ø€IÔ˜.Ñ)Ô)Ø€IÔ˜-Ñ(Ô(Ø€IÔ˜+Ñ&Ô&Ø€IÔÐ5Ñ6Ô6Ø€IÔ˜)Ñ$Ô$Ø€IÔ˜-Ñ(Ô(Ø€IÔ˜+Ñ&Ô&Ø€IÔ˜+Ñ&Ô&Ø€IÔ˜&Ñ!Ô!ðð ð Ø€YÔ˜;Ñ'Ô'Ð)>¨Ô)>¸uÑ)EÔ)EÐFØ€YÔ˜:Ñ&Ô&Ð(=¨	Ô(=¸iÑ(HÔ(HÐIðð ð
 Ø€YÔ˜=Ñ)Ô)Ð+@¨9Ô+@ÀÑ+HÔ+HÐIØ€YÔ˜=Ñ)Ô)Ð+@¨9Ô+@ÀÑ+MÔ+MÐNØ€YÔ˜?Ñ+Ô+Ð-B¨YÔ-BÀ;Ñ-OÔ-OÐPðð ðA&ñ &ô &ð &ð &øðN ð ð ð Ø€ðøøøð~Jð ~Jð ~Jð ~Jð ~J�(Ô#ñ ~Jô ~Jð ~Jð@.Bð Bð Bð Bð B�Ô"ñ Bô Bð Bð$ ˆzÒÐØ€„�„€€€ð Ðs   äG,l ìlìl