§ w<ˆjI_ãó|—ddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd lm Z dd lm Z dd lm Z dd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZGd„dej¦«ZGd„dej¦«ZGd„dej¦«ZGd „d!ej¦«ZGd"„d#ej¦«Z Gd$„d%ej¦«Z!Gd&„d'ej¦«Z"Gd(„d)ej¦«Z#Gd*„d+ej¦«Z$d,S)-é)Úconfig)Úfixtures)Úeq_)Úin_)ÚColumn)ÚTableé)Ú bindparam)Úcase)ÚComputed)Úexists)Úfalse)Úfunc)ÚInteger)Úliteral)Úliteral_column)Únull)Úselect)ÚString)Útesting)Útext)Útrue)Útuple_)Úunion)Úutilcón—eZdZdZed„¦«Zed„¦«Zd„Zej j d„¦«Z dS)Ú CollateTestTc óŠ—td|tdtd¬¦«tdtd¦«¦«¦«dS)NÚ some_tableÚidT©Ú primary_keyÚdataéd©rrrr©ÚclsÚmetadatas úx/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib64/python3.11/site-packages/sqlalchemy/testing/suite/test_select.pyÚ define_tableszCollateTest.define_tablessI€å Ø Ø Ý �4�¨dÐ 3Ñ 3Ô 3Ý �6�6 #™;œ;Ñ 'Ô 'ñ  ô ð ð ð ócóz—| |jj ¦«dddœdddœg¦«dS)Néú collate data1©r r#rú collate data2©ÚexecuteÚtablesrÚinsert©r'Ú connections r)Ú insert_datazCollateTest.insert_data'sS€à×ÒØ ŒJÔ !× (Ò (Ñ *Ô *à /Ð2Ð2Ø /Ð2Ð2ð ñ ô ð ð ð r+có„—ttj |¦« ¦«|¦«dS©N©rrÚdbr2Úfetchall©ÚselfrÚresults r)Ú_assert_resultzCollateTest._assert_result1ó4€Ý �FŒI× Ò ˜fÑ %Ô %× .Ò .Ñ 0Ô 0°&Ñ9Ô9Ð9Ð9Ð9r+cóP—tj tj¦«}| t |jjg¦« |jjj j   |¦«  ¦«¦«ddg¦«dS)N)r-r.)rr0) rÚrequiresÚget_order_by_collationrr@rr3rÚorder_byÚcr#ÚcollateÚasc)r>Ú collations r)Útest_collate_order_byz!CollateTest.test_collate_order_by4s’€åÔ$×;Ò;½G¼NÑKÔKˆ à ×ÒÝ �D”KÔ*Ð+Ñ ,Ô ,× 5Ò 5Ø” Ô&Ô(Ô-×5Ò5°iÑ@Ô@×DÒDÑFÔFñ ô ð"Ð#7Ð 8ñ  ô ð ð ð r+N) Ú__name__Ú __module__Ú __qualname__Ú __backend__Ú classmethodr*r7r@rrCÚorder_by_collationrJ©r+r)rrs~€€€€€Ø€Kàð ð ñ„[ð ðð ð ñ„[ð ð:ð:ð:ð ÔÔ(ð ð ñ)Ô(ð ð ð r+rcó�—eZdZdZdZed„¦«Zed„¦«Zd„Zd„Z d„Z d„Z d „Z d „Z ejjd „¦«Zd S) ÚOrderByLabelTestz©Test the dialect sends appropriate ORDER BY expressions when labels are used. This essentially exercises the "supports_simple_order_by_label" setting. Tcó—td|tdtd¬¦«tdt¦«tdt¦«tdtd¦«¦«td td¦«¦«¦«dS) Nrr Tr!ÚxÚyÚqé2Úpr%r&s r)r*zOrderByLabelTest.define_tablesKsv€å Ø Ø Ý �4�¨dÐ 3Ñ 3Ô 3Ý �3�Ñ Ô Ý �3�Ñ Ô Ý �3�˜r™ œ Ñ #Ô #Ý �3�˜r™ œ Ñ #Ô #ñ ô ð ð ð r+c ó”—| |jj ¦«ddddddœddddddœddd d d dœg¦«dS) Nr-rÚq1Úp3)r rUrVrWrYr Úq2Úp2éÚq3Úp1r1r5s r)r7zOrderByLabelTest.insert_dataWsp€à×ÒØ ŒJÔ !× (Ò (Ñ *Ô *à˜q q¨t¸$Ð?Ð?ؘq q¨t¸$Ð?Ð?ؘq q¨t¸$Ð?Ð?ð ñ ô ð ð ð r+có„—ttj |¦« ¦«|¦«dSr9r:r=s r)r@zOrderByLabelTest._assert_resultbrAr+cóΗ|jj}|jj d¦«}| t |g¦« |¦«gd¢¦«dS)NÚlx)©r-©r©r )r3rrFrUÚlabelr@rrE©r>Útablerds r)Ú test_plainzOrderByLabelTest.test_plainesZ€Ø” Ô&ˆØ ŒWŒY�_Š_˜TÑ "Ô "ˆØ ×Ò�F B 4™LœL×1Ò1°"Ñ5Ô5Ð7IÐ7IÐ7IÑJÔJÐJÐJÐJr+cóè—|jj}|jj|jjz d¦«}| t|g¦« |¦«gd¢¦«dS)Nrd)rg©é©é) r3rrFrUrVrhr@rrEris r)Útest_composed_intz"OrderByLabelTest.test_composed_intjse€Ø” Ô&ˆØŒgŒi˜%œ'œ)Ñ#× *Ò *¨4Ñ 0Ô 0ˆØ ×Ò�F B 4™LœL×1Ò1°"Ñ5Ô5Ð7IÐ7IÐ7IÑJÔJÐJÐJÐJr+c ó—|jj}|jj|jjz d¦«}t j|jj¦«|jj z d¦«}|  t||g¦«  ||  ¦«¦«dtjd¦«fdtjd¦«fdtjd¦«fg¦«dS) NrdÚlyr Úq1p3rnÚq2p2rpÚq3p1)r3rrFrUrVrhrÚlowerrWrYr@rrEÚdescrÚu)r>rjrdrss r)Útest_composed_multiplez'OrderByLabelTest.test_composed_multipleosЀØ” Ô&ˆØŒgŒi˜%œ'œ)Ñ#× *Ò *¨4Ñ 0Ô 0ˆÝŒj˜œœÑ#Ô# e¤g¤iÑ/× 6Ò 6°tÑ <Ô <ˆØ ×ÒÝ �B˜�8Ñ Ô × %Ò % b¨"¯'ª'©)¬)Ñ 4Ô 4Ø•”˜‘”Ð  1¥d¤f¨V¡n¤nÐ"5¸½4¼6À&¹>¼>Ð7JÐ Kñ ô ð ð ð r+cóò—|jj}|jj d¦«}| t |g¦« | ¦«¦«gd¢¦«dS)Nrd)rgrfre) r3rrFrUrhr@rrErxris r)Útest_plain_descz OrderByLabelTest.test_plain_descxsm€Ø” Ô&ˆØ ŒWŒY�_Š_˜TÑ "Ô "ˆØ ×ÒÝ �B�4‰LŒL× !Ò ! "§'¢'¡)¤)Ñ ,Ô ,Ð.@Ð.@Ð.@ñ ô ð ð ð r+có —|jj}|jj|jjz d¦«}| t|g¦« |  ¦«¦«gd¢¦«dS)Nrd)rormrg) r3rrFrUrVrhr@rrErxris r)Útest_composed_int_descz'OrderByLabelTest.test_composed_int_descsx€Ø” Ô&ˆØŒgŒi˜%œ'œ)Ñ#× *Ò *¨4Ñ 0Ô 0ˆØ ×ÒÝ �B�4‰LŒL× !Ò ! "§'¢'¡)¤)Ñ ,Ô ,Ð.@Ð.@Ð.@ñ ô ð ð ð r+cóL—|jj}|jj|jjz d¦«}t tj|jj ¦«|g¦«  |¦«  |¦«}|  |gd¢¦«dS)Nrd))r-r )r-rn)r-rp) r3rrFrUrVrhrrÚcountr Úgroup_byrEr@)r>rjÚexprÚstmts r)Útest_group_by_composedz'OrderByLabelTest.test_group_by_composed†sŠ€à” Ô&ˆØ”” ˜EœGœIÑ%×,Ò,¨TÑ2Ô2ˆå •D”J˜uœwœzÑ*Ô*¨DÐ1Ñ 2Ô 2ß ŠX�d‰^Œ^ß ŠX�d‰^Œ^ð ð ×Ò˜DÐ":Ð":Ð":Ñ;Ô;Ð;Ð;Ð;r+N)rKrLrMÚ__doc__rNrOr*r7r@rkrqrzr|r~rrCÚgroup_by_complex_expressionr„rQr+r)rSrS@sÛ€€€€€ððð€Kàð  ð  ñ„[ð  ðð ð ñ„[ð ð:ð:ð:ðKðKðKð KðKðKð  ð ð ð ð ð ð ð ð ð ÔÔ1ð<ð<ñ2Ô1ð<ð<ðrr?Úparamss r)r@zLimitOffsetTest._assert_result«ó6€Ý �FŒI× Ò ˜f fÑ -Ô -× 6Ò 6Ñ 8Ô 8¸&ÑAÔAÐAÐAÐAr+cóÊ—|jj}| t|g¦« |jj¦« d¦«ddg¦«dS)Nr©r-r-r©rrr )r3rr@rrErFr Úlimit©r>rjs r)Útest_simple_limitz!LimitOffsetTest.test_simple_limit®sa€Ø” Ô&ˆØ ×ÒÝ �E�7‰OŒO× $Ò $ U¤W¤ZÑ 0Ô 0× 6Ò 6°qÑ 9Ô 9Ø ˜ Ð "ñ ô ð ð ð r+cóÊ—|jj}| t|g¦« |jj¦« d¦«ddg¦«dS)Nr©r r r_©r_r_rn)r3rr@rrErFr Úoffsetr˜s r)Útest_simple_offsetz"LimitOffsetTest.test_simple_offsetµsa€à” Ô&ˆØ ×ÒÝ �E�7‰OŒO× $Ò $ U¤W¤ZÑ 0Ô 0× 7Ò 7¸Ñ :Ô :Ø ˜ Ð "ñ ô ð ð ð r+cóð—|jj}| t|g¦« |jj¦« d¦« d¦«ddg¦«dS)Nrr-r–r›) r3rr@rrErFr r—r�r˜s r)Útest_simple_limit_offsetz(LimitOffsetTest.test_simple_limit_offset½so€à” Ô&ˆØ ×ÒÝ �E�7‰OŒO× $Ò $ U¤W¤ZÑ 0Ô 0× 6Ò 6°qÑ 9Ô 9× @Ò @ÀÑ CÔ CØ ˜ Ð "ñ ô ð ð ð r+cób—|jj}t|g¦« |jj¦« d¦« d¦«}| tj j ddi¬¦«}t|¦«}|  |ddg¦«dS) z7test that 'literal binds' mode works - no bound params.rr-Ú literal_bindsT)ÚdialectÚcompile_kwargsr–r›N)r3rrrErFr r—r�Úcompilerr;r£Ústrr@)r>rjrƒÚsqls r)Útest_limit_offset_nobindsz)LimitOffsetTest.test_limit_offset_nobindsÅsž€ð” Ô&ˆÝ�u�g‰Œ×'Ò'¨¬¬ Ñ3Ô3×9Ò9¸!Ñ<Ô<×CÒCÀAÑFÔFˆØ�lŠlÝ”IÔ%°ÈÐ6Mðñ ô ˆõ�#‰hŒhˆà ×Ò˜C )¨YÐ!7Ñ8Ô8Ð8Ð8Ð8r+cóì—|jj}| t|g¦« |jj¦« td¦«¦«ddgddi¬¦«dS)NÚlr•r–r©r’) r3rr@rrErFr r—r r˜s r)Útest_bound_limitz LimitOffsetTest.test_bound_limitÒss€à” Ô&ˆØ ×ÒÝ �E�7‰OŒO× $Ò $ U¤W¤ZÑ 0Ô 0× 6Ò 6µyÀ±~´~Ñ FÔ FØ ˜ Ð "ؘ�8ð ñ ô ð ð ð r+cóì—|jj}| t|g¦« |jj¦« td¦«¦«ddgddi¬¦«dS)NÚor›rœrr«) r3rr@rrErFr r�r r˜s r)Útest_bound_offsetz!LimitOffsetTest.test_bound_offsetÛss€à” Ô&ˆØ ×ÒÝ �E�7‰OŒO× $Ò $ U¤W¤ZÑ 0Ô 0× 7Ò 7½ À#¹¼Ñ GÔ GØ ˜ Ð "ؘ�8ð ñ ô ð ð ð r+có.—|jj}| t|g¦« |jj¦« td¦«¦«  td¦«¦«ddgdddœ¬¦«dS) Nrªr®r–r›rr-)rªr®r«) r3rr@rrErFr r—r r�r˜s r)Útest_bound_limit_offsetz'LimitOffsetTest.test_bound_limit_offsetäsˆ€à” Ô&ˆØ ×ÒÝ �E�7‰OŒOß ŠX�e”g”jÑ !Ô !ß ŠU•9˜S‘>”>Ñ "Ô "ß ŠV•I˜c‘N”NÑ #Ô #Ø ˜ Ð "Ø Ð#Ð#ð ñ ô ð ð ð r+N©rQ)rKrLrMrNrOr*r7r@r™rrCr�ržr r¨Úbound_limit_offsetr¬r¯r±rQr+r)rˆrˆ’s@€€€€€Ø€Kàð ð ñ„[ð ðð  ð  ñ„[ð  ðBðBðBðBð ð ð ð ÔÔð ð ñÔð ð ÔÔð ð ñÔð ð ÔÔð 9ð 9ñÔð 9ð ÔÔ(ð ð ñ)Ô(ð ð ÔÔ(ð ð ñ)Ô(ð ð ÔÔ(ð  ð  ñ)Ô(ð  ð  ð  r+rˆcó—eZdZdZed„¦«Zed„¦«Zdd„Zd„Zd„Z e j j e j j d„¦«¦«Ze j jd „¦«Zd „Ze j j d „¦«Zd „Zd S)ÚCompoundSelectTestTc ó¢—td|tdtd¬¦«tdt¦«tdt¦«¦«dSrŠr‹r&s r)r*z CompoundSelectTest.define_tablesôrŒr+c ó’—| |jj ¦«ddddœddddœddddœddddœg¦«dSrŽr1r5s r)r7zCompoundSelectTest.insert_dataþr�r+rQcó†—ttj ||¦« ¦«|¦«dSr9r:r‘s r)r@z!CompoundSelectTest._assert_result r“r+cól—|jj}t|g¦« |jjdk¦«}t|g¦« |jjdk¦«}t ||¦«}| | |jj¦«ddg¦«dS©Nrr r–r›) r3rrÚwhererFr rr@rE©r>rjÚs1Ús2Úu1s r)Útest_plain_unionz#CompoundSelectTest.test_plain_union s�€Ø” Ô&ˆÝ �U�G‰_Œ_× "Ò " 5¤7¤:°¢?Ñ 3Ô 3ˆÝ �U�G‰_Œ_× "Ò " 5¤7¤:°¢?Ñ 3Ô 3ˆå �2�r‰]Œ]ˆØ ×Ò˜BŸKšK¨¬¬Ñ0Ô0°9¸iÐ2HÑIÔIÐIÐIÐIr+có´—|jj}t|g¦« |jjdk¦«}t|g¦« |jjdk¦«}t ||¦« ¦« ¦«}| |  |jj¦«ddg¦«dSrº) r3rrr»rFr rÚaliasr@rEr¼s r)Útest_select_from_plain_unionz/CompoundSelectTest.test_select_from_plain_unions¨€Ø” Ô&ˆÝ �U�G‰_Œ_× "Ò " 5¤7¤:°¢?Ñ 3Ô 3ˆÝ �U�G‰_Œ_× "Ò " 5¤7¤:°¢?Ñ 3Ô 3ˆå �2�r‰]Œ]× Ò Ñ "Ô "× )Ò )Ñ +Ô +ˆØ ×Ò˜BŸKšK¨¬¬Ñ0Ô0°9¸iÐ2HÑIÔIÐIÐIÐIr+cóR—|jj}t|g¦« |jjdk¦« d¦« |jj¦«}t|g¦« |jjdk¦« d¦« |jj¦«}t||¦« d¦«}|  | |jj¦«ddg¦«dS©Nrr-r r–r›) r3rrr»rFr r—rErr@r¼s r)Ú&test_limit_offset_selectable_in_unionsz9CompoundSelectTest.test_limit_offset_selectable_in_unionssà€ð” Ô&ˆå �E�7‰OŒOß ŠU�5”7”: ’?Ñ #Ô #ß ŠU�1‰XŒXß ŠX�e”g”jÑ !Ô !ð õ �E�7‰OŒOß ŠU�5”7”: ’?Ñ #Ô #ß ŠU�1‰XŒXß ŠX�e”g”jÑ !Ô !ð õ�2�r‰]Œ]× Ò  Ñ #Ô #ˆØ ×Ò˜BŸKšK¨¬¬Ñ0Ô0°9¸iÐ2HÑIÔIÐIÐIÐIr+có—|jj}t|g¦« |jjdk¦« |jj¦«}t|g¦« |jjdk¦« |jj¦«}t||¦« d¦«}|  | |jj¦«ddg¦«dSrº) r3rrr»rFr rErr—r@r¼s r)Ú"test_order_by_selectable_in_unionsz5CompoundSelectTest.test_order_by_selectable_in_unions1s€à” Ô&ˆÝ �U�G‰_Œ_× "Ò " 5¤7¤:°¢?Ñ 3Ô 3× <Ò <¸U¼W¼ZÑ HÔ HˆÝ �U�G‰_Œ_× "Ò " 5¤7¤:°¢?Ñ 3Ô 3× <Ò <¸U¼W¼ZÑ HÔ Hˆå �2�r‰]Œ]× Ò  Ñ #Ô #ˆØ ×Ò˜BŸKšK¨¬¬Ñ0Ô0°9¸iÐ2HÑIÔIÐIÐIÐIr+cóÚ—|jj}t|g¦« |jjdk¦« ¦«}t|g¦« |jjdk¦« ¦«}t||¦« d¦«}|  |  |jj¦«ddg¦«dSrº) r3rrr»rFr Údistinctrr—r@rEr¼s r)Ú"test_distinct_selectable_in_unionsz5CompoundSelectTest.test_distinct_selectable_in_unions:s¶€Ø” Ô&ˆÝ �U�G‰_Œ_× "Ò " 5¤7¤:°¢?Ñ 3Ô 3× <Ò <Ñ >Ô >ˆÝ �U�G‰_Œ_× "Ò " 5¤7¤:°¢?Ñ 3Ô 3× <Ò <Ñ >Ô >ˆå �2�r‰]Œ]× Ò  Ñ #Ô #ˆØ ×Ò˜BŸKšK¨¬¬Ñ0Ô0°9¸iÐ2HÑIÔIÐIÐIÐIr+cóš—|jj}t|g¦« |jjdk¦« d¦« |jj¦«}t|g¦« |jjdk¦« d¦« |jj¦«}t||¦«  ¦«}|  | ¦« d¦« |jj¦«ddg¦«dSrÅ) r3rrr»rFr r—rErrÂr@r¼s r)Ú&test_limit_offset_in_unions_from_aliasz9CompoundSelectTest.test_limit_offset_in_unions_from_aliasBsÿ€à” Ô&ˆå �E�7‰OŒOß ŠU�5”7”: ’?Ñ #Ô #ß ŠU�1‰XŒXß ŠX�e”g”jÑ !Ô !ð õ �E�7‰OŒOß ŠU�5”7”: ’?Ñ #Ô #ß ŠU�1‰XŒXß ŠX�e”g”jÑ !Ô !ð õ�2�r‰]Œ]× Ò Ñ "Ô "ˆØ ×ÒØ �IŠI‰KŒK× Ò ˜aÑ Ô × )Ò )¨"¬$¬'Ñ 2Ô 2°YÀ Ð4Jñ ô ð ð ð r+cóâ—|jj}t|g¦« |jjdk¦« d¦« |jj¦« ¦« ¦«}t|g¦« |jjdk¦« d¦« |jj¦« ¦« ¦«}t||¦« d¦«}|  | |jj¦«ddg¦«dSrÅ) r3rrr»rFr r—rErÂrr@r¼s r)Ú.test_limit_offset_aliased_selectable_in_unionszACompoundSelectTest.test_limit_offset_aliased_selectable_in_unionsXs€Ø” Ô&ˆå �E�7‰OŒOß ŠU�5”7”: ’?Ñ #Ô #ß ŠU�1‰XŒXß ŠX�e”g”jÑ !Ô !ß ŠU‰WŒWß ŠV‰XŒXð õ �E�7‰OŒOß ŠU�5”7”: ’?Ñ #Ô #ß ŠU�1‰XŒXß ŠX�e”g”jÑ !Ô !ß ŠU‰WŒWß ŠV‰XŒXð õ�2�r‰]Œ]× Ò  Ñ #Ô #ˆØ ×Ò˜BŸKšK¨¬¬Ñ0Ô0°9¸iÐ2HÑIÔIÐIÐIÐIr+Nr²)rKrLrMrNrOr*r7r@rÀrÃrrCÚorder_by_col_from_unionÚ/parens_in_union_contained_select_w_limit_offsetrÆÚ0parens_in_union_contained_select_wo_limit_offsetrÈrËrÍrÏrQr+r)rµrµñs/€€€€€Ø€Kàð ð ñ„[ð ðð  ð  ñ„[ð  ðBðBðBðBðJðJðJðJðJðJð ÔÔ-Ø ÔÔEðJðJñFÔEñ.Ô-ðJð$ ÔÔFðJðJñGÔFðJðJðJðJð ÔÔEð ð ñFÔEð ð*JðJðJðJðJr+rµcó—eZdZdZed„¦«Zed„¦«Zdd„Zd„Ze j j d„¦«Z e j j d„¦«Z d „Ze j jd „¦«Ze j jd „¦«Zd „Zd „Zd„Zd„Zd„ZdS)ÚExpandingBoundInTestTc óÚ—td|tdtd¬¦«tdt¦«tdt¦«tdtd¦«¦«¦«dS) Nrr Tr!rUrVÚzrXr%r&s r)r*z"ExpandingBoundInTest.define_tablesrsc€å Ø Ø Ý �4�¨dÐ 3Ñ 3Ô 3Ý �3�Ñ Ô Ý �3�Ñ Ô Ý �3�˜r™ œ Ñ #Ô #ñ  ô ð ð ð r+c óš—| |jj ¦«dddddœdddddœdddddœddd d dœg¦«dS) Nr-rÚz1)r rUrVrÖr Úz2r_Úz3rnÚz4r1r5s r)r7z ExpandingBoundInTest.insert_data}sy€à×ÒØ ŒJÔ !× (Ò (Ñ *Ô *à˜q q¨tÐ4Ð4ؘq q¨tÐ4Ð4ؘq q¨tÐ4Ð4ؘq q¨tÐ4Ð4ð  ñ ô ð ð ð r+rQcó†—ttj ||¦« ¦«|¦«dSr9r:r‘s r)r@z#ExpandingBoundInTest._assert_result‰r“r+có¾—|jj}t|jjg¦« |jj tdd¬¦«¦«¦« |jj  tdd¬¦«¦«¦«  |jj¦«}|  |gggdœ¬¦«dS)NrWT©Ú expandingrY)rWrYr«) r3rrrFr r»rUrr rVrEr@©r>rjrƒs r)Útest_multiple_empty_setsz-ExpandingBoundInTest.test_multiple_empty_setsŒs¶€ð” Ô&ˆõ �E”G”J�<Ñ Ô ß ŠU�5”7”9—=’=¥¨3¸$Ð!?Ñ!?Ô!?Ñ@Ô@Ñ AÔ Aß ŠU�5”7”9—=’=¥¨3¸$Ð!?Ñ!?Ô!?Ñ@Ô@Ñ AÔ Aß ŠX�e”g”jÑ !Ô !ð ð ×Ò˜D "°2¸BÐ-?Ð-?ÐÑ@Ô@Ð@Ð@Ð@r+cón—|jj}t|jjg¦« t |jj|jj¦«  tdd¬¦«¦«¦«  |jj¦«}|  |gdgi¬¦«dS©NrWTrÞr«© r3rrrFr r»rrUrÖrr rEr@ràs r)Útest_empty_heterogeneous_tuplesz4ExpandingBoundInTest.test_empty_heterogeneous_tuplesšó¢€à” Ô&ˆõ �E”G”J�<Ñ Ô ß ŠUÝ�u”w”y %¤'¤)Ñ,Ô,×0Ò0ݘc¨TÐ2Ñ2Ô2ñôñô÷ ŠX�e”g”jÑ !Ô !ð ð ×Ò˜D "¨c°2¨YÐÑ7Ô7Ð7Ð7Ð7r+cón—|jj}t|jjg¦« t |jj|jj¦«  tdd¬¦«¦«¦«  |jj¦«}|  |gdgi¬¦«dSrã© r3rrrFr r»rrUrVrr rEr@ràs r)Útest_empty_homogeneous_tuplesz2ExpandingBoundInTest.test_empty_homogeneous_tuplesªrær+cóF—|jj}t|jjg¦« |jj tdd¬¦«¦«¦«  |jj¦«}|  |gd¢dgd¢i¬¦«dS)NrWTrÞ©rfrg©r_)rr r_r«© r3rrrFr r»rUrr rEr@ràs r)Útest_bound_in_scalarz)ExpandingBoundInTest.test_bound_in_scalarºs’€Ø” Ô&ˆõ �E”G”J�<Ñ Ô ß ŠU�5”7”9—=’=¥¨3¸$Ð!?Ñ!?Ô!?Ñ@Ô@Ñ AÔ Aß ŠX�e”g”jÑ !Ô !ð ð ×Ò˜DÐ"4Ð"4Ð"4¸cÀ9À9À9Ð=MÐÑNÔNÐNÐNÐNr+cóv—|jj}t|jjg¦« t |jj|jj¦«  tdd¬¦«¦«¦«  |jj¦«}|  |gd¢dgd¢i¬¦«dS)NrWTrÞrë))rr )r r_)r_rnr«rèràs r)Útest_bound_in_two_tuplez,ExpandingBoundInTest.test_bound_in_two_tupleÅs¾€à” Ô&ˆõ �E”G”J�<Ñ Ô ß ŠUÝ�u”w”y %¤'¤)Ñ,Ô,×0Ò0ݘc¨TÐ2Ñ2Ô2ñôñô÷ ŠX�e”g”jÑ !Ô !ð ð ×ÒØ Ð$Ð$Ð$¨cÐ3KÐ3KÐ3KÐ-Lð ñ ô ð ð ð r+cóv—|jj}t|jjg¦« t |jj|jj¦«  tdd¬¦«¦«¦«  |jj¦«}|  |gd¢dgd¢i¬¦«dS)NrWTrÞrë))rrÙ)r rÚ)r_rÛr«räràs r)Ú%test_bound_in_heterogeneous_two_tuplez:ExpandingBoundInTest.test_bound_in_heterogeneous_two_tuple×s¿€à” Ô&ˆõ �E”G”J�<Ñ Ô ß ŠUÝ�u”w”y %¤'¤)Ñ,Ô,×0Ò0ݘc¨TÐ2Ñ2Ô2ñôñô÷ ŠX�e”g”jÑ !Ô !ð ð ×ÒØ Ø Ð Ð ØÐ:Ð:Ð:Ð;ð ñ ô ð ð ð r+có>—|jj}t|jjg¦« |jj tdd¬¦«¦«¦«  |jj¦«}|  |gdgi¬¦«dSrãríràs r)Útest_empty_set_against_integerz3ExpandingBoundInTest.test_empty_set_against_integerë󆀨” Ô&ˆõ �E”G”J�<Ñ Ô ß ŠU�5”7”9—=’=¥¨3¸$Ð!?Ñ!?Ô!?Ñ@Ô@Ñ AÔ Aß ŠX�e”g”jÑ !Ô !ð ð ×Ò˜D "¨c°2¨YÐÑ7Ô7Ð7Ð7Ð7r+cóB—|jj}t|jjg¦« |jj tdd¬¦«¦«¦«  |jj¦«}|  |gd¢dgi¬¦«dS©NrWTrÞ)rerfrgrìr«) r3rrrFr r»rUÚnotin_r rEr@ràs r)Ú'test_empty_set_against_integer_negationz—|jj}t|jjg¦« |jj tdd¬¦«¦«¦«  |jj¦«}|  |gdgi¬¦«dSrã) r3rrrFr r»rÖrr rEr@ràs r)Útest_empty_set_against_stringz2ExpandingBoundInTest.test_empty_set_against_stringrõr+cóB—|jj}t|jjg¦« |jj tdd¬¦«¦«¦«  |jj¦«}|  |gd¢dgi¬¦«dSr÷) r3rrrFr r»rÖrør rEr@ràs r)Ú&test_empty_set_against_string_negationz;ExpandingBoundInTest.test_empty_set_against_string_negation rúr+c ób—ttt¦« t ddd¬¦«¦«t ¦«fgt ¦«¬¦«g¦«}ttj  |¦«  ¦«dd¦«dS)NÚfoorQT)Úvaluerß)Úelse_é)Fr) rr rrr rrrr;r2Úfetchone)r>rƒs r)Útest_null_in_empty_set_is_falsez4ExpandingBoundInTest.test_null_in_empty_set_is_falses¦€Ýåõ!™FœFŸJšJÝ )¨%°rÀTÐ JÑ JÔ Jñôõ!™FœFð ðõ ™'œ'ð ñ ô ð ñ ô ˆõ �FŒI× Ò ˜dÑ #Ô #× ,Ò ,Ñ .Ô .¨qÔ 1°:Ñ>Ô>Ð>Ð>Ð>r+Nr²)rKrLrMrNrOr*r7r@rárrCÚtuple_in_w_emptyrårérîÚtuple_inrðròrôrùrürþrrQr+r)rÔrÔosb€€€€€Ø€Kàð ð ñ„[ð ðð  ð  ñ„[ð  ðBðBðBðBð Að Að Að ÔÔ&ð 8ð 8ñ'Ô&ð 8ð ÔÔ&ð 8ð 8ñ'Ô&ð 8ð Oð Oð Oð ÔÔð ð ñÔð ð" ÔÔð ð ñÔð ð& 8ð 8ð 8ð Nð Nð Nð 8ð 8ð 8ð Nð Nð Nð?ð?ð?ð?ð?r+rÔcó —eZdZdZdZdZed„¦«Zed„¦«Zd„Z d„Z d„Z d „Z d „Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZdS)ÚLikeFunctionsTestTÚonceNc óŠ—td|tdtd¬¦«tdtd¦«¦«¦«dS)Nrr Tr!r#rXr%r&s r)r*zLikeFunctionsTest.define_tables0sI€å Ø Ø Ý �4�¨dÐ 3Ñ 3Ô 3Ý �6�6 "™:œ:Ñ &Ô &ñ  ô ð ð ð r+cóº—| |jj ¦«dddœdddœdddœdd dœd d dœd d dœdddœdddœdddœdddœg ¦«dS)Nr-Úabcdefgr/rzab/cdefgr zab%cdefgr_Úab_cdefgrnzabcde/fgézabcde%fgrpzab#cdefgéÚab9cdefgé zabcde#fgé Úabcd9fgr1r5s r)r7zLikeFunctionsTest.insert_data9s«€à×ÒØ ŒJÔ !× (Ò (Ñ *Ô *à )Ð,Ð,Ø *Ð-Ð-Ø *Ð-Ð-Ø *Ð-Ð-Ø *Ð-Ð-Ø *Ð-Ð-Ø *Ð-Ð-Ø *Ð-Ð-Ø *Ð-Ð-Ø 9Ð-Ð-ð ñ ô ð ð ð r+có>—|jj}tj ¦«5}d„| t |jjg¦«  |¦«¦«D¦«}ddd¦«n #1swxYwYt||¦«dS)Ncó—h|]\}|’ŒSrQrQ)Ú.0rs r)ú z*LikeFunctionsTest._test..Os*€ðððá�Eððððr+) r3rrr;Úconnectr2rrFr r»r)r>r‚ÚexpectedrÚconnÚrowss r)Ú_testzLikeFunctionsTest._testKsրؔ[Ô+ˆ å ŒY× Ò Ñ Ô ð  Dððà"ŸlšlݘJœLœOÐ,Ñ-Ô-×3Ò3°DÑ9Ô9ñôðñôˆDð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˆD�(ÑÔÐÐÐs«A BÂB Bcóˆ—|jjjj}| | d¦«hd£¦«dS)Núab%c¾ r-rr r_rnrrprrr©r3rrFr#rÚ startswith©r>Úcols r)Útest_startswith_unescapedz+LikeFunctionsTest.test_startswith_unescapedXs?€ØŒkÔ$Ô&Ô+ˆØ � Š �3—>’> &Ñ)Ô)Ð+JÐ+JÐ+JÑKÔKÐKÐKÐKr+cóŠ—|jjjj}| | dd¬¦«dh¦«dS)NrT©Ú autoescaper r!r#s r)Útest_startswith_autoescapez,LikeFunctionsTest.test_startswith_autoescape\s>€ØŒkÔ$Ô&Ô+ˆØ � Š �3—>’> &°T�>Ñ:Ô:¸Q¸CÑ@Ô@Ð@Ð@Ð@r+có¢—|jjjj}| | t d¦«¦«hd£¦«dS)Nz'ab%c'r )r3rrFr#rr"rr#s r)Útest_startswith_sqlexprz)LikeFunctionsTest.test_startswith_sqlexpr`sR€ØŒkÔ$Ô&Ô+ˆØ � Š Ø �NŠN�>¨(Ñ3Ô3Ñ 4Ô 4Ø +Ð +Ð +ñ ô ð ð ð r+cóŠ—|jjjj}| | dd¬¦«dh¦«dS)Nzab##cú#©Úescaperpr!r#s r)Útest_startswith_escapez(LikeFunctionsTest.test_startswith_escapegs>€ØŒkÔ$Ô&Ô+ˆØ � Š �3—>’> '°#�>Ñ6Ô6¸¸Ñ<Ô<Ð<Ð<Ð’> &°TÀ#�>ÑFÔFÈÈÑLÔLÐLØ � Š �3—>’> &°TÀ#�>ÑFÔFÈÈÑLÔLÐLÐLÐLr+cóˆ—|jjjj}| | d¦«hd£¦«dS)Núe%fg¾ r-rr r_rnrrprr©r3rrFr#rÚendswithr#s r)Útest_endswith_unescapedz)LikeFunctionsTest.test_endswith_unescapedps?€ØŒkÔ$Ô&Ô+ˆØ � Š �3—<’< Ñ'Ô'Ð)DÐ)DÐ)DÑEÔEÐEÐEÐEr+có¢—|jjjj}| | t d¦«¦«hd£¦«dS)Nz'e%fg'r6)r3rrFr#rr8rr#s r)Útest_endswith_sqlexprz'LikeFunctionsTest.test_endswith_sqlexprtsR€ØŒkÔ$Ô&Ô+ˆØ � Š Ø �LŠL�¨Ñ1Ô1Ñ 2Ô 2Ð4OÐ4OÐ4Oñ ô ð ð ð r+cóŠ—|jjjj}| | dd¬¦«dh¦«dS)Nr5Tr'rr7r#s r)Útest_endswith_autoescapez*LikeFunctionsTest.test_endswith_autoescapezs>€ØŒkÔ$Ô&Ô+ˆØ � Š �3—<’< °4�<Ñ8Ô8¸1¸#Ñ>Ô>Ð>Ð>Ð>r+cóŠ—|jjjj}| | dd¬¦«dh¦«dS)Nze##fgr-r.rr7r#s r)Útest_endswith_escapez&LikeFunctionsTest.test_endswith_escape~s>€ØŒkÔ$Ô&Ô+ˆØ � Š �3—<’< °�<Ñ4Ô4°q°cÑ:Ô:Ð:Ð:Ð:r+cóæ—|jjjj}| | ddd¬¦«dh¦«| | ddd¬¦«dh¦«dS)Nr5Tr-r2rze#fgrr7r#s r)Útest_endswith_autoescape_escapez1LikeFunctionsTest.test_endswith_autoescape_escape‚óh€ØŒkÔ$Ô&Ô+ˆØ � Š �3—<’< °4À�<ÑDÔDÀqÀcÑJÔJÐJØ � Š �3—<’< °4À�<ÑDÔDÀqÀcÑJÔJÐJÐJÐJr+cóˆ—|jjjj}| | d¦«hd£¦«dS)Núb%cder6©r3rrFr#rÚcontainsr#s r)Útest_contains_unescapedz)LikeFunctionsTest.test_contains_unescaped‡s?€ØŒkÔ$Ô&Ô+ˆØ � Š �3—<’< Ñ(Ô(Ð*EÐ*EÐ*EÑFÔFÐFÐFÐFr+cóŠ—|jjjj}| | dd¬¦«dh¦«dS)NrDTr'r rEr#s r)Útest_contains_autoescapez*LikeFunctionsTest.test_contains_autoescape‹s>€ØŒkÔ$Ô&Ô+ˆØ � Š �3—<’< °D�<Ñ9Ô9¸A¸3Ñ?Ô?Ð?Ð?Ð?r+cóŠ—|jjjj}| | dd¬¦«dh¦«dS)Nzb##cder-r.rprEr#s r)Útest_contains_escapez&LikeFunctionsTest.test_contains_escape�s>€ØŒkÔ$Ô&Ô+ˆØ � Š �3—<’< °�<Ñ5Ô5¸°sÑ;Ô;Ð;Ð;Ð;r+cóæ—|jjjj}| | ddd¬¦«dh¦«| | ddd¬¦«dh¦«dS)Nzb%cdTr-r2r zb#cdrprEr#s r)Útest_contains_autoescape_escapez1LikeFunctionsTest.test_contains_autoescape_escape“rBr+)rKrLrMrNÚ run_insertsÚ run_deletesrOr*r7rr%r)r+r0r3r9r;r=r?rArGrIrKrMrQr+r)r r *sR€€€€€Ø€Kà€KØ€Kàð ð ñ„[ð ðð ð ñ„[ð ð" ð ð ðLðLðLðAðAðAð ð ð ð=ð=ð=ðMðMðMð FðFðFð ð ð ð ?ð?ð?ð;ð;ð;ðKðKðKð GðGðGð@ð@ð@ð<ð<ð<ðKðKðKðKðKr+r cóN—eZdZdZdZed„¦«Zed„¦«Zd„Zd„Z dS)ÚComputedColumnTestT)Úcomputed_columnscó—td|tdtd¬¦«tdt¦«tdttd¦«¦«tdttd ¦«¦«¦«dS) NÚsquarer Tr!ÚsideÚareaz side * sideÚ perimeterz4 * side)rrrr r&s r)r*z ComputedColumnTest.define_tables�sq€å Ø Ø Ý �4�¨dÐ 3Ñ 3Ô 3Ý �6�7Ñ #Ô #Ý �6�7¥H¨]Ñ$;Ô$;Ñ <Ô <Ý �;¥­°*Ñ)=Ô)=Ñ >Ô >ñ  ô ð ð ð r+cóz—| |jj ¦«dddœdddœg¦«dS)Nr-r)r rUé*)r2r3rTr4r5s r)r7zComputedColumnTest.insert_data¨sP€à×ÒØ ŒJÔ × $Ò $Ñ &Ô &ؘrÐ "Ð "¨2°rÐ$:Ð$:Ð ;ñ ô ð ð ð r+có¤—tj ¦«5}| t t d¦«g¦« |jj¦«  |jjj j ¦«¦«  ¦«}t|ddg¦«ddd¦«dS#1swxYwYdS)NÚ*)r-rr$é()rrYéäé¨)rr;rr2rrÚ select_fromr3rTrErFr r<r©r>rÚress r)Útest_select_allz"ComputedColumnTest.test_select_all¯sî€Ý ŒY× Ò Ñ Ô ð > DØ—,’,Ý�˜S™ œ �{Ñ#Ô#ß’˜Tœ[Ô/Ñ0Ô0ß’˜$œ+Ô,Ô.Ô1Ñ2Ô2ñô÷Šh‰jŒjð õ �Ð&Ð(;Ð<Ñ =Ô =Ð =ð  >ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >sŸBCÃC à C cóÜ—tj ¦«5}| t |jjjj|jjjj g¦«  |jj¦«  |jjjj ¦«¦«  ¦«}t|ddg¦«ddd¦«dS#1swxYwYdS)N)r$r\)r]r^)rr;rr2rr3rTrFrVrWr_rEr r<rr`s r)Útest_select_columnsz&ComputedColumnTest.test_select_columns¸s€Ý ŒY× Ò Ñ Ô ð / DØ—,’,ÝØ”[Ô'Ô)Ô.°´ Ô0BÔ0DÔ0NÐOñô÷’˜Tœ[Ô/Ñ0Ô0ß’˜$œ+Ô,Ô.Ô1Ñ2Ô2ñ ô÷ Šh‰jŒjð õ ��i Ð-Ñ .Ô .Ð .ð /ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /sŸB5C!Ã!C%Ã(C%N) rKrLrMrNÚ __requires__rOr*r7rbrdrQr+r)rQrQ™sp€€€€€Ø€KØ(€Làð ð ñ„[ð ðð ð ñ„[ð ð >ð>ð>ð /ð /ð /ð /ð /r+rQcóJ—eZdZdZed„¦«Zed„¦«Zd„Zd„ZdS)Ú ExistsTestTc óŠ—td|tdtd¬¦«tdtd¦«¦«¦«dS)NÚstuffr Tr!r#rXr%r&s r)r*zExistsTest.define_tablesÇsI€å Ø Ø Ý �4�¨dÐ 3Ñ 3Ô 3Ý �6�6 "™:œ:Ñ &Ô &ñ  ô ð ð ð r+c óŠ—| |jj ¦«dddœdddœdddœdddœg¦«dS)Nr-ú some datar/rr r_zsome other data)r2r3rir4r5s r)r7zExistsTest.insert_dataÐsj€à×ÒØ ŒJÔ × #Ò #Ñ %Ô %à +Ð.Ð.Ø +Ð.Ð.Ø +Ð.Ð.ØÐ"3Ð4Ð4ð  ñ ô ð ð ð r+c ó@—|jj}t| t t d¦«g¦« t¦« |jj dk¦«¦«¦«  ¦«dg¦«dS)Nr-rkre© r3rirr2rrr»r rFr#r<©r>r6ris r)Útest_select_existszExistsTest.test_select_existsÜsŠ€Ø” Ô!ˆÝ Ø × Ò Ý� ™ œ �|Ñ$Ô$×*Ò*Ý‘H”H—N’N 5¤7¤<°;Ò#>Ñ?Ô?ñôñ ô ÷Šh‰jŒjØ ˆFñ  ô ð ð ð r+c ó>—|jj}t| t t d¦«g¦« t¦« |jj dk¦«¦«¦«  ¦«g¦«dS)Nr-zno datarmrns r)Útest_select_exists_falsez#ExistsTest.test_select_exists_falseçsˆ€Ø” Ô!ˆÝ Ø × Ò Ý� ™ œ �|Ñ$Ô$×*Ò*Ý‘H”H—N’N 5¤7¤<°9Ò#<Ñ=Ô=ñôñ ô ÷Šh‰jŒjØ ñ  ô ð ð ð r+N) rKrLrMrNrOr*r7rorqrQr+r)rgrgÄsk€€€€€Ø€Kàð ð ñ„[ð ðð  ð  ñ„[ð  ð  ð  ð  ð  ð  ð  ð  ð  r+rgc ól—eZdZdZdZed„¦«Zejdddddd d ¬ ¦«d „¦«Z d S)ÚIsOrIsNotDistinctFromTestT)Úsupports_is_distinct_fromc óª—td|tdtd¬¦«tdtd¬¦«tdtd¬¦«¦«dS)NÚis_distinct_testr Tr!Úcol_a)ÚnullableÚcol_br‹r&s r)r*z'IsOrIsNotDistinctFromTest.define_tables÷sZ€å Ø Ø Ý �4�¨dÐ 3Ñ 3Ô 3Ý �7�G¨dÐ 3Ñ 3Ô 3Ý �7�G¨dÐ 3Ñ 3Ô 3ñ  ô ð ð ð r+)Úboth_int_differentrr-r-)Ú both_int_samer-r-r)Úone_null_firstNr-r-)Úone_null_secondrNr-)Ú both_nullNNrÚiaaaz3col_a_value, col_b_value, expected_row_count_for_is)Úid_Úargnamescó„—|jj}| | ¦«d||dœg¦«| | |jj |jj¦«¦«¦«  ¦«}tt|¦«|¦«|dkrdnd}| | |jj  |jj¦«¦«¦«  ¦«}tt|¦«|¦«dS)Nr-)r rwryr) r3rvr2r4rrFrwÚis_distinct_fromryr<rÚlenÚisnot_distinct_from)r>Ú col_a_valueÚ col_b_valueÚexpected_row_count_for_isr6Útblr?Úexpected_row_count_for_isnots r)Útest_is_or_isnot_distinct_fromz8IsOrIsNotDistinctFromTest.test_is_or_isnot_distinct_froms3€ðŒkÔ*ˆà×ÒØ �JŠJ‰LŒLØ  °kÐ BÐ BÐ Cñ ô ð ð ×#Ò#Ø �JŠJ�s”u”{×3Ò3°C´E´KÑ@Ô@Ñ AÔ Añ ô ç Š(‰*Œ*ð õ Ý �‰KŒKØ %ñ ô ð ð +¨aÒ/Ð/ˆAˆA°Qð %ð×#Ò#Ø �JŠJ�s”u”{×6Ò6°s´u´{ÑCÔCÑ DÔ Dñ ô ç Š(‰*Œ*ð õ Ý �‰KŒKØ (ñ ô ð ð ð r+N) rKrLrMrNrerOr*rÚ combinationsr‹rQr+r)rsrsós~€€€€€Ø€KØ1€Làð ð ñ„[ð ð€WÔØ'Ø"Ø&Ø'Ø$Ø ØFðñôð ð ñôð ð ð r+rsN)%ÚrrÚ assertionsrrÚschemarrr r r r rrrrrrrrrrrrrrÚ TablesTestrrSrˆrµrÔr rQrgrsrQr+r)úr‘s”ðØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐð" ð" ð" ð" ð" �(Ô%ñ" ô" ð" ðJO<ðO<ðO<ðO<ðO<�xÔ*ñO<ôO<ðO<ðd\ ð\ ð\ ð\ ð\ �hÔ)ñ\ ô\ ð\ ð~{Jð{Jð{Jð{Jð{J˜Ô,ñ{Jô{Jð{Jð|x?ðx?ðx?ðx?ðx?˜8Ô.ñx?ôx?ðx?ðvlKðlKðlKðlKðlK˜Ô+ñlKôlKðlKð^(/ð(/ð(/ð(/ð(/˜Ô,ñ(/ô(/ð(/ðV, ð, ð, ð, ð, �Ô$ñ, ô, ð, ð^2 ð2 ð2 ð2 ð2  Ô 3ñ2 ô2 ð2 ð2 ð2 r+