
    Bh^                         S SK Jr  S SKJr  S SKJr  S SKJr  SSK Jr  SSK Jr  SSK J	r	  SS	K J
r
  SS
K Jr  SSK Jr  SSK Jr   " S S\R                  5      rg)   )fixtures)eq_)Column)Table   )column)
ForeignKey)Integer)select)String)testing)valuesc                   *   \ rS rSrSrSrSrSr\S 5       r	\S 5       r
S rS rS	 r\R                  R                   \R                  R"                  S
 5       5       r\R                  R                   \R                  R&                  S 5       5       r\R                  R                   S 5       r\R,                  " SSS/5      \R,                  " SSS/5      \R,                  " SSS/5      \R                  R.                  S 5       5       5       5       rSrg)CTETest   T)cteseachc                    [        SU[        S[        SS9[        S[        S5      5      [        S[	        S5      5      5        [        S	U[        S[        SS9[        S[        S5      5      [        S[        5      5        g )
N
some_tableidT)primary_keydata2   	parent_idzsome_table.idsome_other_table)r   r   r
   r   r	   )clsmetadatas     d/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_cte.pydefine_tablesCTETest.define_tables   sm    4d366":&;
? ;<	
 	4d366":&;(	
    c                     UR                  U R                  R                  R                  5       SSS S.SSSS.SSSS.SS	SS.S
SSS./5        g )N   d1r   r   r   r   d2r   d3   d4   d5)executetablesr   insert)r   
connections     r   insert_dataCTETest.insert_data/   s]    JJ!!((*$T:$Q7$Q7$Q7$Q7		
r!   c                    U R                   R                  n[        U5      R                  UR                  R
                  R                  / SQ5      5      R                  S5      nUR                  [        UR                  R
                  5      R                  UR                  R
                  R                  SS/5      5      5      n[        UR                  5       S/5        g )Nr&   r'   r)   some_cter)   r+   r)   )r-   r   r   wherecr   in_cter,   r   fetchall)selfr/   r   r9   results        r   #test_select_nonrecursive_round_trip+CTETest.test_select_nonrecursive_round_trip<   s    [[++
 :U:<<$$(();<=S_ 	
 ##355::$$SUUZZ^^T4L%AB
 	FOOy)r!   c                    U R                   R                  n[        U5      R                  UR                  R
                  R                  / SQ5      5      R                  SSS9nUR                  S5      nUR                  5       nUR                  [        U5      R                  UR                  R                  UR                  R                  :H  5      5      nUR                  [        UR                  R
                  5      R                  UR                  R
                  S:g  5      R                  UR                  R
                  R                  5       5      5      n[        UR!                  5       / SQ5        g )Nr3   r4   T)	recursivec1r&   )r5   r'   rB   r$   rC   rC   )r-   r   r   r6   r7   r   r8   r9   alias	union_allr   r   r,   order_bydescr   r:   )r;   r/   r   r9   	cte_aliasst1r<   s          r    test_select_recursive_round_trip(CTETest.test_select_recursive_round_tripI   s   [[++
 :U:<<$$(();<=StS, 	 IIdO	  mm3Kceehh)++*?*??@
 ##355::U355::%&Xceejjoo'(

 	OOB	
r!   c                    U R                   R                  nU R                   R                  n[        U5      R	                  UR
                  R                  R                  / SQ5      5      R                  S5      nUR                  UR                  5       R                  / SQ[        U5      5      5        [        UR                  [        U5      R                  UR
                  R                  5      5      R                  5       / SQ5        g )Nr3   r4   r%   ))r   r&   r#   )r   r'   r#   )r(   r)   r   )r-   r   r   r   r6   r7   r   r8   r9   r,   r.   from_selectr   rF   r   r:   r;   r/   r   r   r9   s        r   "test_insert_from_select_round_trip*CTETest.test_insert_from_select_round_tripc   s    [[++
;;77 :U:<<$$(();<=S_ 	
 	##%11+VC[	

 	'(112B2D2D2G2GHhj6		
r!   c                    U R                   R                  nU R                   R                  nUR                  UR	                  5       R                  / SQ[        U5      5      5        [        U5      R                  UR                  R                  R                  / SQ5      5      R                  S5      nUR                  UR                  5       R                  SS9R                  UR                  R                  UR                  R                  :H  5      5        [        UR                  [        U5      R                  UR                  R                   5      5      R#                  5       / SQ5        g )Nr%   r3   r4   r*   )r   )r#   r$   N)r   r&   r*   )r   r'   r*   )r(   r)   r*   r*   r+   r   )r-   r   r   r,   r.   rM   r   r6   r7   r   r8   r9   updater   r   rF   r   r:   rN   s        r   test_update_from_round_trip#CTETest.test_update_from_round_tripx   s    [[++
;;77##%11+VJ-?	
 :U:<<$$(();<=S_ 	
 	##%VaV U#%%**ceejj89	

 	'(112B2D2D2G2GHhj		
r!   c                    U R                   R                  nU R                   R                  nUR                  UR	                  5       R                  / SQ[        U5      5      5        [        U5      R                  UR                  R                  R                  / SQ5      5      R                  S5      nUR                  UR                  5       R                  UR                  R                  UR                  R                  :H  5      5        [        UR                  [        U5      R                  UR                  R                  5      5      R!                  5       SS/5        g Nr%   r3   r4   rR   rS   )r-   r   r   r,   r.   rM   r   r6   r7   r   r8   r9   deleter   rF   r   r:   rN   s        r   test_delete_from_round_trip#CTETest.test_delete_from_round_trip   s    [[++
;;77##%11+VJ-?	
 :U:<<$$(();<=S_ 	
 	##%++ ""''355::5	

 	'(112B2D2D2G2GHhjl+		
r!   c           	      n   U R                   R                  nU R                   R                  nUR                  UR	                  5       R                  / SQ[        U5      5      5        [        U5      R                  UR                  R                  R                  / SQ5      5      R                  S5      nUR                  UR                  5       R                  UR                  R                  [        UR                  R                  5      R                  UR                  R                  UR                  R                  :H  5      R                  5       :H  5      5        [        UR                  [        U5      R!                  UR                  R                  5      5      R#                  5       SS/5        g rX   )r-   r   r   r,   r.   rM   r   r6   r7   r   r8   r9   rY   r   scalar_subqueryr   rF   r:   rN   s        r   "test_delete_scalar_subq_round_trip*CTETest.test_delete_scalar_subq_round_trip   sG   [[++
;;77##%11+VJ-?	
 :U:<<$$(();<=S_ 	
 	##%++ ""''#%%**%suuxx#3#5#5#8#889 "#	
 	'(112B2D2D2G2GHhjl+		
r!   values_namedF	cte_namedliteral_bindsc                 :   [        [        S[        5      [        S[        5      [	        U5      U(       a  SOS S9R                  SS/5      R                  U(       a  SOS 5      n[        U5      nUR                  U5      R                  5       n[        USS/5        g )Ncol1col2z	some name)rb   name)ar   )br   cte1)r   r   r   r
   boolr   r9   r   r,   allr   )r;   r/   r`   ra   rb   ri   stmtrowss           r   test_values_named_via_cte!CTETest.test_values_named_via_cte   s     vv&vw'"=1$0[d	 T8X&'S9$/ 	 d|!!$'++-D8X&'r!    N)__name__
__module____qualname____firstlineno____backend____requires__run_insertsrun_deletesclassmethodr   r0   r=   rJ   rO   r   requiresctes_with_update_deleteupdate_fromrU   delete_fromrZ   r^   	variationctes_with_valuesrn   __static_attributes__rp   r!   r   r   r      s?   KLKK
 
" 

 

*
4
* --!!
 " .
B --!!
 " .
6 --
 .
< ~e}5{T5M2u6&&( ' 7 3 6(r!   r   N) r   
assertionsr   schemar   r   r   r	   r
   r   r   r   r   
TablesTestr   rp   r!   r   <module>r      s<              W(h!! W(r!   