
    5hY                        S SK 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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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 \RB                  5      r" " S! S"\RB                  5      r# " S# S$\RH                  5      r% " S% S&\RB                  5      r& " S' S(\RH                  5      r' " S) S*\RB                  5      r( " S+ S,\RB                  5      r) " S- S.\RT                  \)5      r+ " S/ S0\RB                  5      r, " S1 S2\RH                  5      r-g)3    N   )testing   )assert_raises)config)engines)eq_)fixtures)is_not_none)is_true)ne_)provide_metadata)expect_raises)expect_raises_message)requirements) set_default_schema_on_connection)Column)Table   )	bindparam)dialects)event)exc)Integer)literal_column)select)String)Compiled)inspect_getfullargspecc                       \ rS rSrSrS rSrg)PingTest(   Tc                     [         R                  R                  5        n[        [         R                  R                  R                  UR                  R                  5      5        S S S 5        g ! , (       d  f       g = fN)r   dbconnectr   dialectdo_ping
connectiondbapi_connection)selfconns     p/var/www/html/cementerio_25MayoBackend/env/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_dialect.pytest_do_pingPingTest.test_do_ping+   sJ    ZZ!T

""**4??+K+KL "!!s   AA//
A= N)__name__
__module____qualname____firstlineno____backend__r.   __static_attributes__r0       r-   r!   r!   (   s    Kr7   r!   c                   f    \ rS rSrSrS r\R                  " \" \" 5       5      S9S 5       r	S r
Srg)	ArgSignatureTest2   a  test that all visit_XYZ() in :class:`_sql.Compiler` subclasses have
``**kw``, for #8988.

This test uses runtime code inspection.   Does not need to be a
``__backend__`` test as it only needs to run once provided all target
dialects have been imported.

For third party dialects, the suite would be run with that third
party as a "--dburi", which means its compiler classes will have been
imported by the time this test runs.

c               #   4  #    [         R                   H4  n U R                  S5      (       a  M  [        R                  " SU -  5        M6     [
        /nU(       a>  UR                  S5      nUR                  UR                  5       5        Uv   U(       a  M=  g g 7f)N_zsqlalchemy.dialects.%sr   )	r   __all__
startswith	importlibimport_moduler   popextend__subclasses__)dstackclss      r-   _all_subclasses ArgSignatureTest._all_subclasses@   sr     !!A<<$$''(@1(DE " 
))A,CLL++-.I es   (BA&BB)paramsc              #   (   #    UR                   v   g 7fr$   )param)r+   requests     r-   all_subclassesArgSignatureTest.all_subclassesL   s     mms   c           	          UnUR                    HX  nUR                  S5      (       d  M  [        X#5      n[        U5      n[	        UR
                  SUR                   SU S35        MZ     g )Nvisit_zCompiler visit method .z:() does not accommodate for **kw in its argument signature)__dict__r>   getattrr   r   varkwr1   )r+   rM   rF   kmethinsps         r-    test_all_visit_methods_accept_kw1ArgSignatureTest.test_all_visit_methods_accept_kwP   sc    A||H%%s-d3JJ,S\\N!A3 ?I I r7   r0   N)r1   r2   r3   r4   __doc__rG   r   fixturelistrM   rX   r6   r0   r7   r-   r9   r9   2   s6    
 __D!234 5r7   r9   c                   Z    \ rS rSrSrSrSr\S 5       r\	R                  S 5       rS rSrg	)
ExceptionTest_   zTest basic exception wrapping.

DBAPIs vary a lot in exception behavior so to actually anticipate
specific exceptions from real round trips, we need to be conservative.

eachTc                 b    [        SU[        S[        SSS9[        S[        S5      5      5        g )N	manual_pkidTFprimary_keyautoincrementdatar:   r   r   r   r   rF   metadatas     r-   define_tablesExceptionTest.define_tablesk   s,    4d%H66":&		
r7   c           	         [         R                  R                  5        nUR                  5       nUR	                  U R
                  R                  R                  5       SSS.5        [        [        R                  UR                  U R
                  R                  R                  5       SSS.5        UR                  5         S S S 5        g ! , (       d  f       g = f)Nr   d1rc   rg   )r   r%   r&   beginexecutetablesrb   insertr   r   IntegrityErrorrollback)r+   r,   transs      r-   test_integrity_error"ExceptionTest.test_integrity_errort   s    YY DJJLELL%%,,.q$0G ""%%,,.$'	 NN !  s   B#C
Cc                    [         R                  R                  5        n UR                  [	        [        S5      5      5         e! [        R                   a9  n[        U5      n[        UR                  5      [        U5      ;   d   e S nAOS nAff = f[        U[        5      (       d   e S S S 5        g ! , (       d  f       g = f)Nu   méil)r   r%   r&   rq   r   r   r   
DBAPIErrorstrorig
isinstance)r+   r,   errerr_strs       r-   test_exception_with_non_ascii+ExceptionTest.test_exception_with_non_ascii   s    YY D1 VN7$;<=u>> 1c(388}C0001
 gs++++ !  s.   B7%AB/B	B7BB77
Cr0   N)r1   r2   r3   r4   rZ   run_deletesr5   classmethodrk   r   $duplicate_key_raises_integrity_errorrw   r   r6   r0   r7   r-   r^   r^   _   sD     KK
 
 66 7 ,r7   r^   c                      \ rS rSrSrSrS rS rS rS r	\
R                  R                  S 5       r\
R                  R                  \
R                  R                  S	 5       5       r\
R                  R                   S
 5       rSrg)IsolationLevelTest   Tisolation_levelc                     [         R                  " [        5      nUS   nUS   n[        U5      R	                  SU/5      nU(       a  UR                  5       $ [        R                  " S5        g )Ndefault	supported
AUTOCOMMITz(no non-default isolation level available)r   get_isolation_levelsr   set
differencerA   	skip_test)r+   levelsr   r   ss        r-    _get_non_default_isolation_level3IsolationLevelTest._get_non_default_isolation_level   s\    226:#;'		N%%|W&=>557NGHr7   c                     [        [        R                  R                  R                  [
        R                  " [        5      S   5        g )Nr   )r	   r   r%   r'   default_isolation_levelr   r   )r+   s    r-   test_default_isolation_level/IsolationLevelTest.test_default_isolation_level   s0    II55--f5i@	
r7   c                    U R                  5       n[        R                  R                  5        nUR	                  5       n[        X15        UR                  US9  [        UR	                  5       U5        UR                  R                  UR                  R                  5        [        UR	                  5       U5        S S S 5        g ! , (       d  f       g = f)Nr   )r   r   r%   r&   get_isolation_levelr   execution_optionsr	   r'   reset_isolation_levelr)   r*   )r+   non_defaultr,   existings       r-    test_non_default_isolation_level3IsolationLevelTest.test_non_default_isolation_level   s    ;;=YY D//1H&"";"?((*K8LL..00 ((*H5 !  s   BC
Cc                 h   [         R                  " [        5      nUS   n[        U5      R	                  S/5       H  n[        R
                  R                  5        nUR                  US9  [        UR                  5       U5        UR                  5       nUR                  5         [        UR                  5       U5        S S S 5        [        R
                  R                  5        n[        UR                  5       US   5        S S S 5        M     g ! , (       d  f       NW= f! , (       d  f       M  = f)Nr   r   r   r   )r   r   r   r   r   r%   r&   r   r	   r   rp   ru   )r+   r   
all_levelslevelr,   rv   s         r-   test_all_levels"IsolationLevelTest.test_all_levels   s    226:K(
_//?E""$&&u&=D,,.6

 D,,.6 % ""$,,.9% %$ @$$ %$s   A$D&D"
D	"
D1	c                 "   Un[        [        R                  SS< SUR                  R                  < SSR                  [        R                  " [        5      S   5      < 35         UR                  SS9  SSS5        g! , (       d  f       g= f)	z4test for the new get_isolation_level_values() methodInvalid value 'FOO3' for isolation_level. Valid isolation levels for '' are , r   r   N)
r   r   ArgumentErrorr'   namejoinr   r   r   r   )r+   connection_no_transr)   s      r-   #test_invalid_level_execution_option6IsolationLevelTest.test_invalid_level_execution_option   su     )
" ""''		 55f=kJ
 (((?
 
 
s   'B  
Bc                 :   U" [        SS9S9n[        [        R                  SS< SUR                  R
                  < SSR                  [        R                  " [        5      S   5      < 35         UR                  5         S	S	S	5        g	! , (       d  f       g	= f)
zutest for the new get_isolation_level_values() method
and support for the dialect-level 'isolation_level' parameter.

r   r   optionsr   r   r   r   r   N)dictr   r   r   r'   r   r   r   r   r   r&   )r+   testing_engineengs      r-   test_invalid_level_engine_param2IsolationLevelTest.test_invalid_level_engine_param   su     T%%@A"   		 55f=kJ
 KKM
 
 
s   2B
Bc                 ^   [         R                  " [        5      nUS   n[        [	        US   5      R                  US/5      5      S   nU" SU0S9nUR                  5        n[        UR                  5       U5        S S S 5        UR                  5        nUR                  US9  [        UR                  5       U5        S S S 5        UR                  5        n[        UR                  5       U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NS= f! , (       d  f       g = f)Nr   r   r   r   r   r   r   )
r   r   r   sortedr   r   r&   r	   r   r   )r+   r   r   r   r   er,   s          r-   %test_dialect_user_setting_is_restored8IsolationLevelTest.test_dialect_user_setting_is_restored   s    226:#F;'(33Wl4KL 		 $5y#ABYY[D((*I6  YY[D""7";((*G4  YY[D((*I6 [ [ [ [s$   #C<*DD<
D

D
D,r0   N)r1   r2   r3   r4   r5   __requires__r   r   r   r   r   requiresget_isolation_level_valuesr   #dialect_level_isolation_level_paramr    independent_readonly_connectionsr   r6   r0   r7   r-   r   r      s    K'L
I
6$, 00@ 1@$ 0099 : 1* 667 77r7   r   c                       \ rS rSrSrSrSr\S 5       rS r	S r
S rS	 r\R                  R                  \R                   " S
SS/5      S 5       5       rSrg)AutocommitIsolationTesti  r`   )
autocommitTc                 `    [        SU[        S[        SSS9[        S[        S5      5      SS9  g )	N
some_tablerc   TFrd   rg   r:   )test_needs_acidrh   ri   s     r-   rk   %AutocommitIsolationTest.define_tables  s/    4d%H66":& 	
r7   c                 6   UR                  5       nUR                  U R                  R                  R	                  5       SSS.5        UR                  5         [        UR                  [        U R                  R                  R                  R                  5      5      U(       a  SOS 5        UR                  5         UR                  5          UR                  U R                  R                  R                  5       5        S S S 5        g ! , (       d  f       g = f)Nr   z	some dataro   )rp   rq   rr   r   rs   ru   r	   scalarr   crc   delete)r+   r,   r   rv   s       r-   _test_conn_autocommits.AutocommitIsolationTest._test_conn_autocommits(  s    

KK""))+A{-K	
 	KKt{{5577::;<A	
 	ZZ\LL//6689 \\s   4D


Dc                     UnUR                  SS9nU R                  US5        UR                  R                  UR                  R
                  5        U R                  US5        g )Nr   r   TF)r   r   r'   r   r)   r*   )r+   r   r,   c2s       r-   test_autocommit_on*AutocommitIsolationTest.test_autocommit_on8  sV    "##L#A##B-


(()G)GH##D%0r7   c                 ,    UnU R                  US5        g )NF)r   r+   r   r,   s      r-   test_autocommit_off+AutocommitIsolationTest.test_autocommit_offA  s    "##D%0r7   c                     UnUR                  SS9nU R                  US5        UR                  [        R                  " [        5      S   S9  U R                  US5        g )Nr   r   Tr   F)r   r   r   r   r   r   s      r-   .test_turn_autocommit_off_via_default_iso_levelFAutocommitIsolationTest.test_turn_autocommit_off_via_default_iso_levelE  sg     #%%l%C##D$/(==fE 	 	

 	##D%0r7   use_dialect_settingFc                    U(       a	  U" SS0S9nOU" 5       R                  SS9n[        R                  " [        5      nUS   nUR	                  5        nU R                  US5        SSS5        UR	                  5        nUR                  US9  U R                  US5        SSS5        UR	                  5        nU R                  US5        SSS5        g! , (       d  f       Nt= f! , (       d  f       NK= f! , (       d  f       g= f)	ztest #10147r   r   r   r   r   TNF)r   r   r   r   r&   r   )r+   r   r   r   r   r   r,   s          r-   #test_dialect_autocommit_is_restored;AutocommitIsolationTest.test_dialect_autocommit_is_restoredS  s     (9<'HIA 22 , 3 A 226:#YY[D''d3  YY[D""7";''e4  YY[D''d3 [ [ [ [s$   C?"C&9C7
C#&
C47
Dr0   N)r1   r2   r3   r4   r   r   r5   r   rk   r   r   r   r   r   r   r   	variationr   r6   r0   r7   r-   r   r     sq    K"LK
 
: 111 66,tUm<4 = 74r7   r   c                   $    \ rS rSr\S 5       rSrg)EscapingTestip  c                 B   U R                   n[        SU[        S[        S5      5      5      nUR	                  [
        R                  5        [
        R                  R                  5        nUR                  UR                  5       [        SS95        UR                  UR                  5       [        SS95        [        UR                  [        UR                  R                  5      R!                  UR                  R                  [#        S5      :H  5      5      S5        [        UR                  [        UR                  R                  5      R!                  UR                  R                  [#        S5      :H  5      5      S5        S	S	S	5        g	! , (       d  f       g	= f)
zltest that the DBAPI accommodates for escaped / nonescaped
percent signs in a way that matches the compiler

trg   r:   zsome % value)rg   zsome %% other valuez'some % value'z'some %% other value'N)rj   r   r   r   creater   r%   rp   rq   rs   r   r	   r   r   r   rg   wherer   )r+   mr   r,   s       r-   test_percent_sign_round_trip)EscapingTest.test_percent_sign_round_tripq  s    MM#q&45	YY__$LLT~%>?LLT/D%EF13388$**N3C$DD
  13388$**N3J$KK
 & s   *DF
Fr0   N)r1   r2   r3   r4   r   r   r6   r0   r7   r-   r   r   p  s     r7   r   c                   4    \ rS rSrSrSrS rS rS rS r	Sr
g	)
 WeCanSetDefaultSchemaWEventsTesti  T)default_schema_name_switchc                    [         R                  R                  R                  n[        R
                  " 5       nUR                  5           S S S 5        [        UR                  R                  U5        g ! , (       d  f       N/= fr$   )r   r%   r'   default_schema_namer   r   r&   r	   )r+   r   r   s      r-   test_control_case2WeCanSetDefaultSchemaWEventsTest.test_control_case  sV    $ii//CC$$&[[]  	CKK++-@A ]s   
A55
Bc                    [         R                  R                  R                  n[        R
                  " 5       n[        R                  " US5      S 5       nUR                  5        nUR                  R                  U5      n[        U[         R                  5        S S S 5        [        UR                  R                  U5        g ! , (       d  f       N/= f)Nr&   c                 B    [        [        U [        R                  5        g r$   r   r   test_schemar*   connection_records     r-   
on_connectMWeCanSetDefaultSchemaWEventsTest.test_wont_work_wo_insert.<locals>.on_connect      ,(&*<*<r7   )r   r%   r'   r   r   r   r   listens_forr&   _get_default_schema_namer	   r   )r+   r   r   r   r,   what_it_should_bes         r-   test_wont_work_wo_insert9WeCanSetDefaultSchemaWEventsTest.test_wont_work_wo_insert  s    $ii//CC$$&			3		*	 
+	
 [[]d # D DT J!6#5#56  	CKK++-@A	 ]s   '6C
Cc                    [         R                  " 5       n[        R                  " USSS9S 5       nUR	                  5        nUR
                  R                  U5      n[        U[        R                  5        S S S 5        [        UR
                  R                  [        R                  5        g ! , (       d  f       N== f)Nr&   Trs   c                 B    [        [        U [        R                  5        g r$   r   r   s     r-   r   RWeCanSetDefaultSchemaWEventsTest.test_schema_change_on_connect.<locals>.on_connect  r   r7   )r   r   r   r   r&   r'   r   r	   r   r   r   )r+   r   r   r,   r   s        r-   test_schema_change_on_connect>WeCanSetDefaultSchemaWEventsTest.test_schema_change_on_connect  s    $$&			3	$	7	 
8	
 [[]d # D DT J!6#5#56  	CKK++V-?-?@	 ]s   6B//
B=c                 *   [         R                  " 5       n[        R                  " USSS9S 5       nUR	                  5        nUR                  5       nUR                  R                  U5      n[        U[        R                  5        UR                  5         UR                  R                  U5      n[        U[        R                  5        S S S 5        [        UR                  R                  [        R                  5        g ! , (       d  f       N== f)Nr&   Tr  c                 B    [        [        U [        R                  5        g r$   r   )r*   args     r-   r   \WeCanSetDefaultSchemaWEventsTest.test_schema_change_works_w_transactions.<locals>.on_connect  r   r7   )r   r   r   r   r&   rp   r'   r   r	   r   r   ru   r   )r+   r   r   r,   rv   r   s         r-   'test_schema_change_works_w_transactionsHWeCanSetDefaultSchemaWEventsTest.test_schema_change_works_w_transactions  s    $$&			3	$	7	 
8	
 [[]dJJLE # D DT J!6#5#56NN # D DT J!6#5#56  	CKK++V-?-?@ ]s   BD
Dr0   N)r1   r2   r3   r4   r5   r   r   r   r  r
  r6   r0   r7   r-   r   r     s$    K2LBB"AAr7   r   c                       \ rS rSrSrg)&FutureWeCanSetDefaultSchemaWEventsTesti  r0   N)r1   r2   r3   r4   r6   r0   r7   r-   r  r    s     	r7   r  c                       \ rS rSrSr\R                  " SSSSSSS	S
SSSSSSSSSSSSSSS9r\\R                  R                  S 5       5       r\R                  S 5       r\S 5       r\S 5       rSrg) DifficultParametersTesti  T)boring)zper cent)z
per % cent)z%percent)zpar(ens))zpercent%(ens)yah)zcol:ons)_starts_with_underscore)zdot.s)zmore :: %colons%)_name)___name)z[BracketsAndCase])	42numbers)zpercent%signs)z
has spaces)z	/slashes/)zmore/slashes)zq?marks)1param)z1col:on	paramname)argnamesc                 H   Un[        SU[        S[        SS9[        U[        S5      SS95      nUR	                  U5        UR                  UR                  5       R                  SSUS	05      5        [        UR                  U   5      R                  UR                  U   S	:H  5      n[        UR                  U5      S	5        [        UR                  U   5      R                  UR                  U   [        U5      :H  5      nUR                  XdS	05      R                  5       n[        UR                  U   S	5        [        UR                  U   5      R                  UR                  U   R!                  S	S
/5      5      nUR                  U5      R                  5       ng )Nr   rc   T)re   r:   F)nullabler   z	some namezsome other_name)r   r   r   r   r   rq   rs   valuesr   r   r   r	   r   r   first_mappingin_)r+   r  r)   rj   r   r   stmtrows           r-   !test_round_trip_same_named_column9DifficultParametersTest.test_round_trip_same_named_column  se   
 4d34e4	
 	
 	188:,,dAt[-IJK acc$i &&qss4yK'?@Jd#[1 acc$i &&qss4yIdO'CD  k':;AAC 	CLL, acc$i &&CCIMM;(9:;
   &,,.r7   c              #   $  #    [        SU[        S[        5      [        S[        S5      5      [        S[        S5      5      5      nUR	                  U5        UR                  UR                  5       SSSS	.S
SSS	.SSSS	.SSSS	./5        Uv   g 7f)Nmytablemyidr   r:   descr   aa_desc)r$  r   r%  r   bb_descr   r   c_desc   rD   d_desc)r   r   r   r   r   rq   rs   )r+   rj   r)   r#  s       r-   multirow_fixture(DifficultParametersTest.multirow_fixture  s     67#66":&66":&
 	z"NNC:C:C:C:		
 s   BBc                     Un[        UR                  R                  5      R                  UR                  R                  [        USS9:H  5      nUR                  XQS05      n[        US5        g )Nxvaluer   r   )r   r   r$  r   r   r   r   r	   r+   r  r)   r-  tbl1r  ress          r-    test_standalone_bindparam_escape8DifficultParametersTest.test_standalone_bindparam_escape5  s]      dffkk"((FFKK9Yc::
 #&67Cr7   c           	      f   Un[        UR                  R                  5      R                  UR                  R                  R                  [        USS/S95      5      R                  UR                  R                  5      nUR                  XQSS/05      R                  5       n[        USS/5        g )Nr&  r(  r1  rD   r   r+  )r   r   r$  r   r   r  r   order_byscalarsallr	   r3  s          r-   *test_standalone_bindparam_escape_expandingBDifficultParametersTest.test_standalone_bindparam_escape_expanding@  s      466;;U466;;??9YsCj#IJKXdffkk" 	   C:'>?CCEC!Qr7   r0   N)r1   r2   r3   r4   r5   r   combinationstough_parametersr   r   unusual_column_name_charactersr   r[   r-  r6  r<  r6   r0   r7   r-   r  r    s    K++$-2 77$/ 8 $/L __ ,    r7   r  c                   t    \ rS rSrSrSr\S 5       r\R                  S 5       r
S rS rS rS	 rS
 rS rSrg)ReturningGuardsTestiO  z=test that the various 'returning' flags are set appropriatelyTc                 b    [        SU[        S[        SSS9[        S[        S5      5      5        g )Nr   rc   TFrd   rg   r:   rh   ri   s     r-   rk   !ReturningGuardsTest.define_tablesT  s,    4d%H66":&		
r7   c                 D   ^^ U R                   R                  mUU4S jnU$ )Nc           
        > U R                  TR                  R                  5      n U(       a  U(       dt  [        [        R
                  STR                  R                   STR                  R                   S35         TR                  U USSS0USSS0US	SS
0/5      nS S S 5        g TR                  U USSS0USSS0US	SS
0/5      n[        UR                  5       / SQ5        g U(       d8  [        [        R                  5         TR                  XSSS05        S S S 5        g TR                  XSSS05      n[        UR                  5       S/5        g ! , (       d  f       g = f! , (       d  f       g = f)NzDialect z\+zW with current server capabilities does not support .*RETURNING when executemany is usedr   rg   rn   r   d2r   d3)r   )r   )r   rI  )	returningr   rc   r   r   StatementErrorr'   r   driverrq   r	   r;  r   rz   )r  executemanyid_param_nameexpect_successresultr)   r   s        r-   go(ReturningGuardsTest.run_stmt.<locals>.goa  sx   >>!##&&)D% /**#J$6$6$;$;#<B%--445 6?@ ",!3!3 !.64 @!.64 @!.64 @"   (//*Avt<*Avt<*Avt<F 

&89% 's~~6"** !VT"B 76
 (//a>F 

tf-K : 76s   >"EE(
E%(
E6)rr   r   )r+   r)   rQ  r   s    ` @r-   run_stmtReturningGuardsTest.run_stmt]  s    KKMM-	.^ 	r7   c                     U R                   R                  nUR                  5       nU" USSUR                  R                  5        g )NFrc   )rr   r   rs   r'   insert_returningr+   r)   rS  r   r  s        r-   test_insert_single&ReturningGuardsTest.test_insert_single  s4    KKMMxxzudJ$6$6$G$GHr7   c                     U R                   R                  nUR                  5       nU" USSUR                  R                  5        g )NTrc   )rr   r   rs   r'   insert_executemany_returningrW  s        r-   test_insert_many$ReturningGuardsTest.test_insert_many  s7    KKMMxxz$j00MM	
r7   c                 D   U R                   R                  nUR                  UR                  5       SSS.SSS.SSS./5        UR	                  5       R                  UR                  R                  [        S5      :H  5      nU" US	SUR                  R                  5        g 
Nr   rn   ro   r   rG  r   rH  b_idF)rr   r   rq   rs   updater   r   rc   r   r'   update_returningrW  s        r-   test_update_single&ReturningGuardsTest.test_update_single      KKMMHHJ$'$'$'	
 xxz)F*; ;<ufj&8&8&I&IJr7   c                 D   U R                   R                  nUR                  UR                  5       SSS.SSS.SSS./5        UR	                  5       R                  UR                  R                  [        S5      :H  5      nU" US	SUR                  R                  5        g 
Nr   rn   ro   r   rG  r   rH  r`  T)rr   r   rq   rs   ra  r   r   rc   r   r'   update_executemany_returningrW  s        r-   test_update_many$ReturningGuardsTest.test_update_many      KKMMHHJ$'$'$'	
 xxz)F*; ;<$
 2 2 O O	
r7   c                 D   U R                   R                  nUR                  UR                  5       SSS.SSS.SSS./5        UR	                  5       R                  UR                  R                  [        S5      :H  5      nU" US	SUR                  R                  5        g r_  )rr   r   rq   rs   r   r   r   rc   r   r'   delete_returningrW  s        r-   test_delete_single&ReturningGuardsTest.test_delete_single  re  r7   c                 D   U R                   R                  nUR                  UR                  5       SSS.SSS.SSS./5        UR	                  5       R                  UR                  R                  [        S5      :H  5      nU" US	SUR                  R                  5        g rg  )rr   r   rq   rs   r   r   r   rc   r   r'   delete_executemany_returningrW  s        r-   test_delete_many$ReturningGuardsTest.test_delete_many  rk  r7   r0   N)r1   r2   r3   r4   rZ   r5   r   rk   r   r[   rS  rX  r\  rc  ri  rn  rr  r6   r0   r7   r-   rB  rB  O  sV    GK
 
 __2 2hI
K 
$K 
r7   rB  ).r?    r   r   r   r   r	   r
   r   r   r   r   
assertionsr   r   r   	provisionr   schemar   r   r   r   r   r   r   r   r   r   sql.compilerr   utilr   TestBaser!   r9   
TablesTestr^   r   r   r   r   FutureEngineMixinr  r  rB  r0   r7   r-   <module>r}     s#              & . ! 8           $ *x   *x(( *Z5,H'' 5,p}7** }7@V4h11 V4r8$$ B@Ax'8'8 @AF	 @	rh// rjU
(-- U
r7   