ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ 4]c@sddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd lm Z dd lm Z d ej fd YZdS(i(tconfig(tfixtures(teq_(tColumn(tTablei(t ForeignKey(tInteger(tselect(tString(ttestingtCTETestcBseZeZd ZdZdZedZedZ dZ dZ dZ e jje jjdZe jje jjdZe jjd ZRS( tctesteachc Cstd|tdtdttdtdtdtdtd|tdtdttdtdtdtdS( Nt some_tabletidt primary_keytdatai2t parent_ids some_table.idtsome_other_table(RRRtTrueRR(tclstmetadata((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/testing/suite/test_cte.pyt define_tablessc Cstjj|jjjidd6dd6dd6idd6dd6dd6idd6d d6dd6id d6d d6dd6id d6d d6dd6gdS(NiRtd1RRitd2itd3itd4itd5(RtdbtexecutettablesR tinserttNone(R((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/testing/suite/test_cte.pyt insert_data&s c Cs|jj}tjj}t|gj|jjj dddgj d}|j t|jjgj|jjj ddg}t |j dgWdQXdS(NRRRtsome_cteR(R(RR RRtconnectRtwheretcRtin_tcteRRtfetchall(tselfR tconnR'tresult((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/testing/suite/test_cte.pyt#test_select_nonrecursive_round_trip3s ! 6c Cs"|jj}tjj}t|gj|jjj dddgj ddt }|j d}|j }|j t|gj|jj|jjk}|jt|jjgj|jjdkj|jjj}t|jdd d d d d gWdQXdS(NRRRR"t recursivetc1R(R(R(R(R(R(R(RR RRR#RR$R%RR&R'Rtaliast union_allRRRtorder_bytdescRR((R)R R*R't cte_aliastst1R+((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/testing/suite/test_cte.pyt test_select_recursive_round_tripAs  ! - c Cs|jj}|jj}tjj}t|gj|jj j dddgj d}|j |j jdddgt|gt|j t|gj|jjjd d dgWdQXdS(NRRRR"RRRiiii(iRi(iRi(iRi(RR RRRR#RR$R%RR&R'RRt from_selectRR1RR((R)R RR*R'((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/testing/suite/test_cte.pyt"test_insert_from_select_round_trip\s  !  $c Cs|jj}|jj}tjj}|j|jjdddgt |gt |gj |j j j dddgjd}|j|jjddj |j j |j j kt|jt |gj|j jjdddddgWdQXdS(NRRRRRRR"iiRiiiR(iRN(iRi(iRi(iRi(iRi(RR RRRR#RRR6RR$R%RR&R'tupdatetvaluesRR1RR(R (R)R RR*R'((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/testing/suite/test_cte.pyttest_update_from_round_triprs*   !  $c Cs|jj}|jj}tjj}|j|jjdddgt |gt |gj |j j j dddgjd}|j|jj |j j |j j kt|jt |gj|j jjd dgWdQXdS(NRRRRRRR"iRiRi(iRN(iRi(RR RRRR#RRR6RR$R%RR&R'tdeleteRR1RR(R (R)R RR*R'((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/testing/suite/test_cte.pyttest_delete_from_round_trips    !  $c Cs*|jj}|jj}tjj}|j|jjdddgt |gt |gj |j j j dddgjd}|j|jj |j j t |j j gj |j j|j jkkt|jt |gj|j jjd dgWdQXdS(NRRRRRRR"iRiRi(iRN(iRi(RR RRRR#RRR6RR$R%RR&R'R;RRR1R(R (R)R RR*R'((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/testing/suite/test_cte.pyt"test_delete_scalar_subq_round_trips$   !   "$(R (t__name__t __module__Rt __backend__t __requires__t run_insertst run_deletest classmethodRR!R,R5R7R trequirestctes_with_update_deletet update_fromR:t delete_fromR<R=(((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/testing/suite/test_cte.pyR s    # N(tRRt assertionsRtschemaRRRRRRR t TablesTestR (((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/testing/suite/test_cte.pyts