+
    i                       ^ RI t ^ RIt^ RIt^ RIt^RIHt ^RIHt ^RIHt ^RIH	t	 ^RIH
t
 ^RIHt ^RIHt ^R	IHt ^R
IHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIH t! ^RI"H#t# ^RI"H$t$ ^RI"H%t% ^RI&H't' ^RI&H(t( ^R IH)t) ^R!IH*t* ^R"I+H,t, ^R#I-H.t. ^R$IH/t/ ^R%IH0t0 ^R&IH1t1 ^R'IH2t2 ^R(IH3t3 ^R)IH4t4 RRut5t6 ! R* R+]Pn                  4      t8 ! R, R-]84      t9 ! R. R/]Pn                  4      t: ! R0 R1]Pv                  4      t< ! R2 R3]Pv                  4      t= ! R4 R5]Pn                  4      t>R6 t? ! R7 R8]0]84      t@ ! R9 R:]Pv                  4      tA ! R; R<]/]Pv                  4      tB ! R= R>]Pn                  4      tC ! R? R@]P                  4      tE ! RA RB]Pn                  4      tF ! RC RD]Pn                  4      tGREtHR# )F    N)config)engines)eq_)eq_regex)expect_raises)expect_raises_message)expect_warnings)fixtures)is_)get_temp_table_name)temp_table_keyword_args)Column)Table)Boolean)DateTime)event)
ForeignKey)func)Identity)inspect)Integer)MetaData)String)testing)types)	Inspector)
ObjectKind)ObjectScope)NoSuchTableError)UnreflectableTableError)DDL)Index)quoted_name)BLANK_SCHEMA)ComparesIndexes)ComparesTables)is_false)is_none)is_true)mockc                   0   a  ] tR t^;t o ]R 4       tRtV tR# )OneConnectionTablesTestc                    \         P                  P                  P                  '       d3   ^ RIHp \        P                  ! \        VP                  RR7      R7      # \         P                  # )r   )poolclass)	poolclassscope)options)r   requirementsindependent_connectionsenabled
sqlalchemyr.   r   testing_enginedict
StaticPooldb)clsr.   s   & ڂC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\venv\Lib\site-packages\sqlalchemy/testing/suite/test_reflection.py
setup_bind"OneConnectionTablesTest.setup_bind<   sL    
 66>>>'))tgF  99     N)__name__
__module____qualname____firstlineno__classmethodr=   __static_attributes____classdictcell____classdict__s   @r<   r,   r,   ;   s      r?   r,   c                   Z  a  ] tR t^Kt o RtRt]R 4       t]R 4       t]R 4       t	]R 4       t
R tR t]P                  P                  R	 4       t]P                  P                  R
 4       t]P                  P$                  R 4       t]P                  P(                  R 4       t]P                  P(                  ]P                  P,                  ]P                  P.                  R 4       4       4       t]P                  P$                  ]P                  P                  R 4       4       tRtV tR# )HasTableTestTNc                   \        R V\        R\        RR7      \        R\        ^24      4      4       \        P
                  P                  P                  '       dB   \        RV\        R\        RR7      \        R\        ^24      4      \        P                  R7       \        P
                  P                  '       d   V P                  V4       \        P
                  P                  P                  '       d   V P                  V4       R# R# )
test_tableidTprimary_keydatatest_table_sschemaN)r   r   r   r   r   requiresschemasr5   r   test_schemaview_reflectiondefine_viewshas_temp_tabledefine_temp_tablesr;   metadatas   &&r<   define_tablesHasTableTest.define_tablesP   s    4d366":&		
 ##+++tW$7vvbz*)) +++X&**222""8, 3r?   c                   R p\         P                  ! VR\        V4      4       \         P                  ! VR\        R4      4       \        P                  P
                  P                  '       d   R\        P                  : R\        P                  : R2p\         P                  ! VR\        V4      4       \         P                  ! VR\        R\        P                  ,          4      4       R# R# )	z1CREATE VIEW vv AS SELECT id, data FROM test_tableafter_createbefore_dropzDROP VIEW vvCREATE VIEW z.vv AS SELECT id, data FROM z.test_table_szDROP VIEW %s.vvN)	r   listenr!   r   rU   rV   r5   r   rW   )r;   r]   querys   && r<   rY   HasTableTest.define_viewsf   s    CX~s5z:X}c..AB##+++ &&&&  LL>3u:>LL%););<= ,r?   c                b    \        \        \        P                  R \        P                   24      # 	user_tmp_r   r   r:   identr;   s   &r<   temp_table_nameHasTableTest.temp_table_name|   %    "FII6<<.9
 	
r?   c                N   \        \        \        P                  4      pV P                  4       p\	        VV\        R \        P                  RR7      \        R\        P                  ! ^24      4      3/ VB p\        P                  P                  P                  '       d   \        P                  P                  P                  '       dZ   \        P                  ! VR\!        R\        P"                  ,          4      4       \        P                  ! VR\!        R4      4       R# R# R# )	rN   TrO   namera   =create temporary view user_tmp_v as select * from user_tmp_%srb   drop view user_tmp_vN)r   r   r:   rm   r   r   saINTVARCHARr   rU   rX   r5   temporary_viewsr   rd   r!   rk   r;   r]   kw
table_nameuser_tmps   &&   r<   r[   HasTableTest.define_temp_tables   s    $VVYY7((*
4T262::b>*	

 
 ,,444  00888LL028,,? LL=#6L2MN 9 5r?   c                   \         P                  P                  4       ;_uu_ 4       p\        \         P                  P                  P                  VR 4      4       \        \         P                  P                  P                  VR4      4       \        \         P                  P                  P                  VR4      4       RRR4       R#   + '       g   i     R# ; i)rM   rR   nonexistent_tableN)r   r:   beginr)   dialect	has_tabler'   selfconns   & r<   test_has_tableHasTableTest.test_has_table   s    YY__$FII%%//lCDVYY&&00~FGVYY&&007JKL s   BCC	c                $   \        \        P                  4      p\        VP	                  R 4      4       \        RV\        R\        4      4      p\        VP	                  R4      4       VP                  \        P                  4        \        VP	                  R4      4       VP                  4        \        VP	                  R4      4       VP                  \        P                  4       R#   TP                  \        P                  4       i ; i)rM   	new_tablecolN)r   r   r:   r)   r   r   r   r   r'   createclear_cachedrop)r   r]   inspnts   &&  r<   test_has_table_cache!HasTableTest.test_has_table_cache   s    vyy!|,-;&*@A,-
		&))	T^^K01DNN;/0GGFIIBGGFIIs   	AC. .!Dc           
        \         P                  P                  4       ;_uu_ 4       p\        \         P                  P                  P                  VR \         P                  R7      4       \        \         P                  P                  P                  VR\         P                  R7      4       \        \         P                  P                  P                  VR\         P                  R7      4       RRR4       R#   + '       g   i     R# ; i)rM   rS   rR   r~   N)r   r:   r   r'   r   r   rW   r)   r   s   & r<   test_has_table_schema"HasTableTest.test_has_table_schema   s    YY__$		!!++,v/A/A , 
 		!!++.1C1C , 
 		!!++-f6H6H ,  s   C
C;;D	c           
         \         P                  P                  4       ;_uu_ 4       p\        \         P                  P                  P                  VR RR7      4       RRR4       R#   + '       g   i     R# ; i)rM   nonexistent_schemarS   N)r   r:   r   r'   r   r   r   s   & r<   !test_has_table_nonexistent_schema.HasTableTest.test_has_table_nonexistent_schema   sQ    YY__$		!!++,/C ,  s   6A''A8	c                P    \        V4      p\        VP                  R 4      4       R# vvNr   r)   r   r   
connectionr   s   && r<   test_has_table_view HasTableTest.test_has_table_view   s    z"t$%r?   c                p    \        V4      pV P                  4       p\        VP                  V4      4       R # N)r   rm   r)   r   )r   r   r   rm   s   &&  r<   test_has_table_temp_table&HasTableTest.test_has_table_temp_table   s+    z"..0/0r?   c                P    \        V4      p\        VP                  R 4      4       R# 
user_tmp_vNr   r   s   && r<   test_has_table_temp_view%HasTableTest.test_has_table_temp_view   s     z"|,-r?   c                n    \        V4      p\        VP                  R \        P                  4      4       R# r   )r   r)   r   r   rW   r   s   && r<   test_has_table_view_schema'HasTableTest.test_has_table_view_schema   s'     z"tV%7%789r?   r@   )rA   rB   rC   rD   __sparse_driver_backend__run_deletesrE   r^   rY   rm   r[   r   r   r   rU   rV   r   r   viewsr   rZ   r   rX   rw   r   r   rF   rG   rH   s   @r<   rK   rK   K   sg     $K- -*  * 
 

 O O0M  $   & & $$1 %1
 $$%%%%. & & %. :  :r?   rK   c                      a  ] tR t^t o RtRt]R 4       t]P                  ! RRRR7      t
R t]
R 4       t]P                  P                  ]
R	 4       4       tR
tV tR# )HasIndexTestTc                   \        R V\        R\        RR7      \        R\        ^24      4      \        R\        ^24      4      4      p\	        RVP
                  P                  4       \        P                  P                  P                  '       dd   \        R V\        R\        RR7      \        R\        ^24      4      \        P                  R7      p\	        RVP
                  P                  4       R	# R	# )
rM   rN   TrO   rQ   data2my_idxrS   my_idx_sN)r   r   r   r   r"   crQ   r   rU   rV   r5   r   rW   )r;   r]   tts   && r<   r^   HasIndexTest.define_tables   s    4d366":&7F2J'
 	h		"##+++tW$7vvbz*))B *bddii( ,r?   r   	inspectorkindargnamesc                H   a VR 8X  d   V3R l# \        S4      P                  # )r   c                  `   < \         P                  P                  P                  ! S.V O5/ VB # r   )r   r:   r   	has_index)akr   s   *,r<   <lambda>)HasIndexTest._has_index.<locals>.<lambda>   s$    699#4#4#>#>t#Ma#M1#Mr?   )r   r   )r   r   r   s   &&fr<   
_has_indexHasIndexTest._has_index   s!    9MM4=***r?   c           	     D   V P                  W4      pV! R R4      '       g   Q hV! R R4      '       d   Q hV! RR4      '       d   Q hV! R R4      '       d   Q hV! R R4      '       d   Q hV! RR4      '       d   Q h\        RV P                  P                  P                  P
                  4      p\        RV\        R\        4      \        RR4      4      pVP                  V4       VP                  V4        VR	8X  d=   V! R R4      '       d   Q hV! RR4      '       d   Q hVP                  P                  4        V! R R4      R
J g   Q hV! RR4      R
J g   Q h VP                  V4       VP                  V4       R#   TP                  T4       TP                  T4       i ; i)rM   r   r   r~   nonexistent_idxmy_idx_2test_table_2my_idx_3foor   TN)r   r"   tablesrM   r   r   r   r   r   r   __self__r   r   )r   r   r   r]   methidxtbls   &&&&   r<   test_has_indexHasIndexTest.test_has_index  s   t0L(++++j1111+X6666&78888j1111
3333J 6 6 8 8 > >?5'"*e$	
 	

:

:		!{"j9999
;;;;))+j1T999
3t;;;HHZ HHZ  HHZ HHZ s   5E; E; :E; ;$Fc                0   V P                  W4      pV! R R\        P                  R7      '       g   Q hV! R R\        P                  R7      '       d   Q hV! RR\        P                  R7      '       d   Q hV! R R\        P                  R7      '       d   Q hR# )rM   r   rS   r   r~   nonexistent_idx_sN)r   r   rW   )r   r   r   r   s   &&& r<   test_has_index_schema"HasIndexTest.test_has_index_schema"  s     t0L*V5G5GHHHHhv7I7IJJJJF4F4F
 
 	
 
 -f6H6H
 
 	
 
 
r?   r@   N)index_reflection)rA   rB   rC   rD   r   __requires__rE   r^   r   combinationsr   r   r   rU   rV   r   rF   rG   rH   s   @r<   r   r      sy      $(L) )( 	;HD+ 
! 
!: 		
 
 	
r?   r   c                     a  ] tR tRt o RtR tR t]P                  ! RRR.4      ]! 4       ]! 4       ]P                  P                  R 4       4       4       4       t]! 4       ]! 4       ]P                  P                  R 4       4       4       t]! 4       ]! 4       ]P                  P                  R	 4       4       4       tR
tV tR# )BizarroCharacterTesti0  Tc                 8    \         P                  ! RRRRRR7      # )	plainname
columnnamer   )r   )z(3))zcol%p)z[brack]r   r   r@   r?   r<   column_names!BizarroCharacterTest.column_names4  s$    ##!
 	
r?   c                 8    \         P                  ! RRRRRR7      # )plain	tablenamer   )r   )z(2))z
per % cent)z
[brackets]r   r@   r?   r<   table_names BizarroCharacterTest.table_names=  s$    ## 
 	
r?   use_compositeFc                   \        VV\        V\        RRR7      RR7      pV'       d"   VP                  \        R\        RR7      4       V'       d   \        RV\        R\        RR7      \        R\        4      \        R	\        4      \        P
                  ! RR	.VP                  P                  VP                  P                  .4      RR7       MG\        RV\        R\        RR7      \        R\        VP                  P                  4      4      RR7       VP                  V4       \        4       p\        RWqR
7      pVP                  V,          p	VP                  P                  P                  V	P                  ^ ,          4      '       g   Q hV'       dA   VP                  P                  P                  V	P                  ^,          4      '       g   Q hR# R# )ztests for #10275rN   T)keyrP   test_needs_fkid2rO   otherrefref2autoload_withN)r   r   r   append_columnrt   ForeignKeyConstraintr   rN   r   r   
create_allr   r   r   
referencesr   )
r   r   r]   r   r   r   r   m2o2t1s
   &&&&&&    r<   test_fk_ref BizarroCharacterTest.test_fk_refF  s[    :wDdC	
 VE7EFtW$7ug&vw'''"$$''244889LM" tW$7uj12" 	J'Z7B9YYy!ttxx""2447++++4499''Q0000 r?   c                    \        VV\        V\        \        4       R R7      4       VP	                  V4       \        V4      p\        VP                  V4      ^ ,          R,          R,          ^4       R# )TrO   identitystartNr   r   r   r   r   r   r   get_columnsr   r   r   r   r]   r   s   &&&&& r<   test_reflect_identity*BizarroCharacterTest.test_reflect_identityu  s`     	:w
E	

 	J'z"DY'*:6w?Cr?   c                    \        VV\        R \        RR7      \        V\        RR7      4       VP                  V4       \	        V4      p\        VP                  V4      ^,          R,          R4       R# )rN   TrO   some commentcommentr  Nr   r   r   r   r   r   r   r   s   &&&&& r<   test_reflect_comments*BizarroCharacterTest.test_reflect_comments  sc     	4d3:w?		
 	J'z"DY'*95~Fr?   r@   N)rA   rB   rC   rD   r   r   r   r   	variationrU   !foreign_key_constraint_reflectionr   identity_columnsr   comment_reflectionr  rF   rG   rH   s   @r<   r   r   0  s      $

 u6^]77)1 8   7)1V ^]&&D '  D ^]((G )  Gr?   r   c                      a  ] tR tRt o RtRt]P                  R 4       t]P                  P                  R 4       t]P                  P                  R 4       tRtV tR# )	TempTableElementsTesti  Tc                b    \        \        \        P                  R \        P                   24      # )
ident_tmp_rj   r   s   &r<   r   TempTableElementsTest.tablename  s%    "FIIFLL>:
 	
r?   c                    \        VV\        R \        \        4       RR7      4       VP	                  V4       \        V4      p\        VP                  V4      ^ ,          R,          R,          ^4       R# )rN   TrO   r   r   Nr   r   r   r   r]   r   s   &&&& r<   r   +TempTableElementsTest.test_reflect_identity  s^    4(*$?	

 	J'z"DY'*:6w?Cr?   c                    \        VV\        R \        RR7      \        R\        RR7      4       VP                  V4       \	        V4      p\        VP                  V4      ^,          R,          R4       R# )rN   TrO   foobarr  r  r  Nr  r  s   &&&& r<   r  +TempTableElementsTest.test_reflect_comments  sa    4d38Wn=		
 	J'z"DY'*95~Fr?   r@   N)temp_table_reflection)rA   rB   rC   rD   r   r   r   fixturer   rU   r  r   temp_table_comment_reflectionr  rF   rG   rH   s   @r<   r  r    sj      $-L__
 

 &&	D '	D 33
G 4
Gr?   r  c                     a  ] tR tRt o RtRt]R 4       tR t]R 4       t	]]
P                  P                  R 4       4       t]R 4       t]R	 4       t]]
P                  P                   R
 4       4       t]]
P                  P$                  R 4       4       t]]
P                  P(                  R 4       4       t]]
P                  P,                  R 4       4       t]]
P                  P0                  R 4       4       tRtV tR# )QuotedNameArgumentTesti  onceTc                   \        R V\        R\        4      \        R\        ^24      4      \        R\        ^24      4      \        R\        4      \        P
                  ! RRR7      \        P                  ! RR4      \        P                  ! RRR7      \        P                  ! R.R	.R
R7      \        P                  ! RRR7      RRR7       \        P                  P                  P                  '       d   \        RV\        R\        4      \        R\        ^24      4      \        R\        ^24      4      \        R\        4      \        P
                  ! RRR7      \        P                  ! RR4      \        P                  ! RRR7      \        P                  ! R.R	.RR7      \        P                  ! RRR7      RRR7       \        RV\        R\        RR7      \        R\        4      RR7       \        P                  P                  P                  '       Ed2   \        P                  P                  P                  '       d   R R.pMR .pV F  pR\        P                   P"                  P$                  P'                  RV,          4      : R\        P                   P"                  P$                  P'                  V4      : 2p\(        P*                  ! VR\-        V4      4       \(        P*                  ! VR\-        R\        P                   P"                  P$                  P'                  RV,          4      ,          4      4       K  	  R # R # )!quote ' onerN   rq   rQ   
related_idzpk quote ' onerq   zix quote ' onezuq quote' onez
related.idzfk quote ' onezname != 'foo'zck quote ' onezquote ' one commentT)r  r   quote " twozpk quote " twozix quote " twozuq quote" twozfk quote " twozck quote " two zquote " two commentrelatedrO   r   rc   view %s AS SELECT * FROM ra   rb   zDROP VIEW %sN)r   r   r   r   rt   PrimaryKeyConstraintr"   UniqueConstraintr   CheckConstraintr   rU   symbol_names_w_double_quoter5   view_column_reflectionr   r:   r   identifier_preparerquoter   rd   r!   )r;   r]   namesrq   re   s   &&   r<   r^   $QuotedNameArgumentTest.define_tables  s   4!66":&66":&<)##D/?@HH%v.$ ##-= 5EF.%	
* 77???tW%vvbz*vvbz*|W-''3CD)62##( ''F\N1A ""?9JK2"%* 	4d39g&	
 22:::;;CCC!! " II%%99??!D( II%%99??E	 X~s5zB!& ))++??EE%,	  ;r?   c                p    \         P                  ! RR\         P                  P                  34      ! V 4      # )r   r#  )r   )r   r   rU   r*  )fns   &r<   quote_fixtures%QuotedNameArgumentTest.quote_fixtures  s6    ##G,,HHI
  	r?   c                n   \        \        P                  4      p\        P                  P
                  P                  '       d-   VP                  V4      p\        \        V\        4      4       R # \        \        4      ;_uu_ 4        VP                  V4       R R R 4       R #   + '       g   i     R # ; ir   )r   r   r:   r   rU   reflect_table_optionsr5   get_table_optionsr)   
isinstancer8   r   NotImplementedError)r   rq   r   ress   &&  r<   test_get_table_options-QuotedNameArgumentTest.test_get_table_options  sp    vyy!11999((.CJsD)*233&&t, 4333s   B##B4	c                x    \        \        P                  4      pVP                  R V,          4      '       g   Q hR# )r%  N)r   r   r:   get_view_definitionr   rq   r   s   && r<   test_get_view_definition/QuotedNameArgumentTest.test_get_view_definition%  s.     vyy!''	D(89999r?   c                j    \        \        P                  4      pVP                  V4      '       g   Q hR # r   )r   r   r:   r   r>  s   && r<   test_get_columns'QuotedNameArgumentTest.test_get_columns+  s'    vyy!%%%%r?   c                j    \        \        P                  4      pVP                  V4      '       g   Q hR # r   )r   r   r:   get_pk_constraintr>  s   && r<   test_get_pk_constraint-QuotedNameArgumentTest.test_get_pk_constraint0  s'    vyy!%%d++++r?   c                j    \        \        P                  4      pVP                  V4      '       g   Q hR # r   )r   r   r:   get_foreign_keysr>  s   && r<   test_get_foreign_keys,QuotedNameArgumentTest.test_get_foreign_keys5  s)     vyy!$$T****r?   c                j    \        \        P                  4      pVP                  V4      '       g   Q hR # r   )r   r   r:   get_indexesr>  s   && r<   test_get_indexes'QuotedNameArgumentTest.test_get_indexes;  s)     vyy!%%%%r?   c                j    \        \        P                  4      pVP                  V4      '       g   Q hR # r   )r   r   r:   get_unique_constraintsr>  s   && r<   test_get_unique_constraints2QuotedNameArgumentTest.test_get_unique_constraintsA  s)     vyy!**40000r?   c                j    \        \        P                  4      pVP                  V4      '       g   Q hR # r   )r   r   r:   get_table_commentr>  s   && r<   test_get_table_comment-QuotedNameArgumentTest.test_get_table_commentG  s)     vyy!%%d++++r?   c                j    \        \        P                  4      pVP                  V4      '       g   Q hR # r   )r   r   r:   get_check_constraintsr>  s   && r<   test_get_check_constraints1QuotedNameArgumentTest.test_get_check_constraintsM  s)     vyy!))$////r?   r@   N)rA   rB   rC   rD   run_create_tablesr   rE   r^   r2  r:  r   rU   r+  r?  rB  rF  r
  rJ  r   rN  unique_constraint_reflectionrR  r  rV  check_constraint_reflectionrZ  rF   rG   rH   s   @r<   r  r    sW     $P Pd - - ,,: - : & & , , 77+ 8 + &&& ' & 221 3 1 ((, ) , 110 2 0r?   r  c                    \         P                  ! R R \         P                  P                  3RR7      p\         P                  ! \        P
                  \        P                  \        P                  RR7      p\         P                  ! \        P                  \        P                  \        P                  \        P                  \        P                  \        P                  \        P                  ,          \        P                  \        P                  ,          RR7      p\         P                  ! RRRR7      pV! V! V! V! V 4      4      4      4      # )	Nc                  "    \         P                  # r   )r   rW   r@   r?   r<   r   $_multi_combination.<locals>.<lambda>X  s
    F&&r?   rT   r   r1   r   TF
use_filter)r   r   rU   rV   r   DEFAULT	TEMPORARYANYr   TABLEVIEWMATERIALIZED_VIEWANY_VIEW)r1  rT   r1   r   filter_namess   &    r<   _multi_combinationrk  T  s    !!&$$	
 F   	E $$:??*:777	D ''elKL%\"-./00r?   c                     a  ] tR tRt o R;ttRt]R 4       t]R 4       t	]R 4       t
]R 4       t]R 4       tR	 tR
 tR tR]P"                  ]P"                  R3R ltR]P"                  ]P"                  R3R ltR]P"                  ]P"                  R3R lt]R 4       tR]P"                  ]P"                  R3R lt]R 4       tR]P"                  ]P"                  R3R lt]R 4       tR]P"                  ]P"                  R3R lt]R 4       tR]P"                  ]P"                  RR3R lt]R 4       tR]P"                  ]P"                  R3R lt ]R 4       t!]"PF                  PH                  R 4       t%]"PF                  PH                  R 4       t&]"PF                  PH                  R 4       t']"PF                  PH                  R 4       t(]"PF                  PH                  ]"PF                  PR                  R 4       4       t*]"PF                  PH                  R  4       t+]"PF                  PH                  R! 4       t,]"PZ                  ! RR"]"PF                  P\                  3R#R$7      ]"PZ                  ! R]"PF                  P^                  3RR%R$7      R& 4       4       t0]"PZ                  ! R]"PF                  P^                  3RR%R$7      R' 4       t1]"PF                  Pd                  R( 4       t3]"PF                  Ph                  ]"PF                  Pj                  R) 4       4       t6]"PF                  Pn                  R* 4       t8]"PF                  Pn                  ]"PF                  P^                  R+ 4       4       t9RvR, lt:]"PZ                  ! RwRR]"PF                  P^                  3RR]"PF                  Ph                  3RR]"PF                  P^                  ]"PF                  Ph                  ,           3R-R$7      R. 4       t;]"PF                  Px                  R/ 4       t=]"PF                  Px                  R0 4       t>]"PF                  Px                  ]"PF                  P~                  ]"PF                  Pj                  R1 4       4       4       t@]"PZ                  ! RxR]"PF                  P^                  3R%R$7      ]"PF                  P                  R2 4       4       tB]"PZ                  ! R3R4R5R6R7R$7      ]"PF                  P                  ]"PF                  P                  R8 4       4       4       tD]"PZ                  ! RxR]"PF                  P^                  3R%R$7      ]"PF                  P\                  R9 4       4       tE]"PZ                  ! R:R;R<R=R>R$7      ]"PF                  P\                  R? 4       4       tF]"PF                  P                  ]"PF                  P^                  R@ 4       4       tH]"PZ                  ! RxR]"PF                  P^                  3R%R$7      ]"PF                  P                  RA 4       4       tJ]"PZ                  ! RyRzRBR$7      ]"PF                  P                  ]"PF                  P                  ]"PF                  P                  RC 4       4       4       4       tM]"PZ                  ! RDRERFRGRHR$7      ]"PF                  P                  RI 4       4       tN]"PF                  Px                  ]"PF                  P                  RJ 4       4       tP]"PF                  P                  RK 4       tR]"PZ                  ! R]"PF                  P^                  3RxR%R$7      ]"PF                  P                  RL 4       4       tS]"PZ                  ! RMRNRORPRQR$7      ]"PF                  P                  RR 4       4       tT]"PF                  Ph                  ]"PZ                  ! RxR]"PF                  P^                  3R%R$7      RS 4       4       tU]"PF                  Ph                  RT 4       tV]"PF                  P                  RU 4       tX]"PZ                  ! R]"PF                  P^                  3RxR%R$7      RV 4       tY]"PZ                  ! R]"PF                  P^                  3R4      RW 4       tZ]"P                  RX 4       t\]"PF                  P                  ]^RY 4       4       t_]"PF                  Pn                  ]^RZ 4       4       t`R[ taR{R\ ltbR|R] ltc]^R^ 4       td]"PF                  P                  ]^R_ 4       4       teR` tf]"PF                  P\                  ]^Ra 4       4       tg]"PF                  P                  ]^Rb 4       4       th]"PF                  P                  ]^Rc 4       4       ti]"PF                  P                  ]^Rd 4       4       tk]"PZ                  ! Re]"PF                  P                  3RfRg]"PF                  P                  3Rh]"PF                  P\                  3Ri]"PF                  P                  3Rj]"PF                  P                  3Rk]"PF                  P                  3Rl]"PF                  Pn                  3RmR$7	      Rn 4       tlRo tm]"PZ                  ! RRR%R$7      ]"PZ                  ! R]"PF                  P                  3RRpR$7      Rq 4       4       to]"PF                  Pn                  Rr 4       tp]"PF                  P                  Rs 4       tr]"PF                  P                  ]"PF                  P                  Rt 4       4       tuRutvV twR# )}ComponentReflectionTestir  NTc                    V P                  VR 4       \        P                  P                  P                  '       d-   V P                  V\        P
                  P                  4       R # R # r   )define_reflected_tablesr   rU   rV   r5   r   rW   r\   s   &&r<   r^   %ComponentReflectionTest.define_tablesw  sI    ##Hd3##+++'''..2L2LM ,r?   c                V   V'       d   VR ,           pMRp\         P                  P                  P                  '       d   \	        RV,          RR7      3pMRFp\        RV\        R\        P                  RR7      \        R	\        P                  ! ^4      R
R7      \        R\        P                  ! 4       R
R7      \        R\        P                  .VO5!  \        P                  ! RRRR7      \        P                  ! R4      VRR7
      p\        RV\        R\        P                  RR7      \        R\        P                  \	        RV,          RRR7      4      \        R\        P                  \	        RV,          4      4      \        R\        P                  ! ^4      RR7      \        P                  ! RRR7      \        P                  ! RRRR R7      VRR7
       \        R!V\        R\        P                  4      \        R"\        P                  \	        VP                  P                   4      4      \        R#\        P                  ! ^4      RR$7      \        P"                  ! RR%R&R7      VRR7       \        R'V\        R(\        P                  RR)R*7      \        R\        P                  ! ^4      R+R,7      \        R-\        P                  ! ^4      R.R,7      \        R/\        P                  ! ^*4      R0R,7      VR1R27       \        R3V\        R\        P                  ! ^4      4      VR4R27       \         P                  P$                  P                  '       Eds   Vf   \        R6V\        R(\        P                  RR7      \        R\        P                  ! ^4      4      \        R7\	        R8\         P&                  P(                  ,          4      4      R\&        P*                  P,                  P.                  R97       M\        R:V\        R(\        P                  RR7      \        R;\	        R<\&        P*                  P,                  P.                  ,          4      4      \        R\        P                  ! ^4      4      VRR7       \        R=V\        R(\        P                  RR7      \        R\        P                  ! ^4      4      VRR7       \         P                  P0                  P                  '       Ed   \3        R>VP                  P4                  VP                  P6                  RR7       \3        R?VP                  P                   VP                  P6                  VP                  P4                  4       V'       Eg&   \        R@V\        RA\        P                  ! ^4      4      RRB7      p\        RCV\        R(\        P                  RR7      \        RA\        P                  ! ^4      4      RRB7      p\         P                  P8                  P                  '       d   \         P                  P:                  P                  '       d]   \3        RDVP                  P<                  P?                  4       4       \3        REVP                  P<                  P?                  4       4       \         P                  P@                  P                  '       d   V PC                  W4       V'       g@   \         P                  PD                  P                  '       d   V PG                  V4       R5# R5# R5# )G. z%susers.user_id
user_id_fkr"  usersuser_idTrO   test1Fnullabletest2parent_user_id	test2 > 0zz_test2_gt_zerousers check constraintrq   r  test2 <= 1000rT   r   
dingalingsdingaling_id
address_idz%semail_addresses.address_idzz_email_add_id_fgdi fk commentid_userrQ   )uniquez$address_id > 0 AND address_id < 1000address_id_gt_zerozz_dingalings_multipledi unique commentemail_addressesremote_user_idemail_address)indexemail_ad_pkea pk commentcomment_testrN   
id comment)rP   r  data % commentr  d2)Comment types type speedily ' " \ '' Fun!d3Comment
withescapesthe test % ' " \ table comment)rT   r  no_constraints"no
constraintshasescapedcommentNlocal_table	remote_idz%s.remote_table_2.id)r   rT   remote_tablelocal_idz%s.local_table.idremote_table_2users_t_idxusers_all_idxnoncol_idx_test_nopkqr   noncol_idx_test_pknoncol_idx_nopknoncol_idx_pkr@   )$r   rU   self_referential_foreign_keysr5   r   r   r   rt   ru   CHARFloatr   r)  r   r(  r   rv  r'  cross_schema_fk_reflectionr   rW   r:   r   default_schema_namer   r"   rw  rz  indexes_with_ascdescreflect_indexes_with_ascdescr  descr+  rY   r  r[   )r;   r]   rT   schema_prefixparent_id_argsru  r  r  s   &&&     r<   ro  /ComponentReflectionTest.define_reflected_tables}  sI   "SLMM99AAA%5LN  N9bff$77BGGAJ77BHHJ7#RZZA.A'0
 /
" 	>2::4@

2]B-+ 

,}<=
 6299R=66) -+	 =	
@ 	<,#RZZEGGOO1LM?BIIbM>##=/ 	
 	4|L6299R=2BC		"H
 420HI9	
 	6299R=)<	
 66>>>~!4>6299R=1#"2W^^5O5OO #'!99,,@@ "4>""/$ii//CCD 6299R=1!"& $4>6299R=1!"& ,,444-dK%''-- 6',*3		!-"&	($ &+(4>3		!-"&&" $$99AAA((EEMMM+-A-C-C-E-E-J-J-LM/+=+?+?+A+A+F+F+HI22:::X.'**@@HHH""8, Ivr?   c                b    \        \        \        P                  R \        P                   24      # rh   rj   rl   s   &r<   rm   'ComponentReflectionTest.temp_table_name+  ro   r?   c                   \        \        \        P                  4      pV P                  4       p\	        VV\        R \        P                  RR7      \        R\        P                  ! ^24      4      \        R\        P                  4      \        P                  ! RR\        P                   2R7      \        P                  ! RR4      3/ VB p\        P                  P                  P                  '       d   \        P                  P                   P                  '       dZ   \"        P$                  ! VR\'        R	\        P                  ,          4      4       \"        P$                  ! VR
\'        R4      4       R# R# R# )rN   TrO   rq   r   user_tmp_uq_r"  user_tmp_ixra   rr   rb   rs   N)r   r   r:   rm   r   r   rt   ru   rv   r(  rk   r"   r   rU   rX   r5   rw   r   rd   r!   rx   s   &&   r<   r[   *ComponentReflectionTest.define_temp_tables1  s   $VVYY7((*
4T262::b>*5"&&! |FLL>-JKHH]E*
 
" ,,444  00888LL028,,? LL=#6L2MN 9 5r?   c                0   \         P                  P                  P                  '       d   R 0pM
\	        4       pR F  pTpV'       d   V RV 2pVR,           pWC9   d   RMRpRV RV RV 2p\
        P                  ! VR\        V4      4       WC9   dX   R	p	V'       d$   \         P                  ! R
4      '       d   V RV	 2p	RV	 RV R2p
\
        P                  ! VR\        V
4      4       \
        P                  ! VR\        RV RV 24      4       K  	  R# )r  rr  _vzMATERIALIZED rs  zCREATE zVIEW r&  ra   	mat_indexoraclezCREATE INDEX z ON z(data)rb   zDROP Nru  r  r  )	r   rU   materialized_viewsr5   setr   rd   r!   against)r;   r]   rT   materializedrz   fullname	view_nameprefixre   
index_namer   s   &&&        r<   rY   $ComponentReflectionTest.define_viewsS  s   ..666(>L5LDJ!H$XQzl3 4I(2(B_F&yk1CH:N  LL>3u:>)(
gooh77$*81ZL!9J%j\i[GX~s3x@LL-uVHE)-M)N# Er?   c                    / p\         P                  V9   d   VP                  V4       \         P                  V9   d   VP                  V4       \         P                  V9   d   VP                  V4       V# r   )r   rf  updaterg  rh  )r   r   r   r   r  r9  s   &&&&& r<   _resolve_kind%ComponentReflectionTest._resolve_kindn  sX    t#JJv??d"JJu''4/JJ|$
r?   c                8   \         P                  P                  P                  '       g#   VP	                  4        VP	                  4        R # \         P                  P
                  P                  '       g$   VP                  V4       VP	                  4        R # R # r   )r   rU   r+  r5   clearr  r  )r   r   r  s   &&&r<   _resolve_views&ComponentReflectionTest._resolve_viewsx  sd    66>>> KKM!!44<<<LL&  =r?   c           	        R  pV\         P                  J d   R pV\         P                  J d   R pRRR0\        P                  P
                  RRRR	V P                  4       0/p\        P                  P                  P                  '       gK   VR,          P                  R4       V\        P                  P
                  ,          P                  RR.4       \        P                  P                  P                  '       g   VR,          P                  RR.4       \        P                  P                  P                  '       d+   \        P                  P                  P                  '       g)   VR,          P                  R	V P                  4       .4       \        P                  P                  P                  '       g   VR,          P                  R	.4       VP!                  4        UUu/ uFE  w  rxV! V4      '       g   K  V^,          Wa,          9  g   K+  V'       d   V^,          V9   g   KC  WxbKG  	  p	ppV	# u uppi )
c                     R # )Tr@   )_s   &r<   r   8ComponentReflectionTest._resolve_names.<locals>.<lambda>  s    r?   c                     R V ^,          9  # tmpr@   r   s   &r<   r   r    s    U!A$%6r?   c                     R V ^,          9   # r  r@   r  s   &r<   r   r    s    Uad]r?   Nr  r  r  r  r  r   )r   rc  rd  r   r   rW   rm   rU   r  r5   addr  r   r  temp_table_namesrw   items)
r   rT   r1   rj  valuesscope_filterremovedr   vr9  s
   &&&&&     r<   _resolve_names&ComponentReflectionTest._resolve_names  s   %K'''6LK)))2L >#34NN&&&$$$&)	
 ::BBBDMm,GNN../66!12 00888DM  ')=>   66>>>##44<<<DM  ,0D0D0F!GH//777DM  ,0 
&A  !GO+  "QqT\%9	 AD& 	 
 

s   /H?H?H?$H?4H?c                   VR 3\         P                  /pVR3\         P                  VR3\         P                  VR3\         P                  /pV P                  We4       VR3\         P                  VR3\         P                  VR3\         P                  VR3\         P                  VR3\         P                  VR	3\         P                  VR
3\         P                  VR3\         P                  VR3\         P                  VR3\         P                  WP                  4       3\         P                  /pV P	                  W7We4      pV P                  WWH4      pV# )dingalings_vemail_addresses_vusers_vr   ru  r  r  r  r  r  r  r  r  r  r*   re  r  rm   r  r  )	r   rT   r1   r   rj  r  r   r   r9  s	   &&&&&    r<   exp_options#ComponentReflectionTest.exp_options  s1     0$((;()488Y\"DHH

 	E0Wtxx\"DHH&'^$dhh%&]#TXX^$dhh%&+,dhh)*DHH))+,dhh
   uC!!&C
r?   c                   R R/pVR3V/pVR3VVR3VVR3V/pV P                  Wv4       VR3VVR3VVR3VVR	3R R
/VR3R R/VR3VVR3VVR3VVR3VVR3VWP                  4       3V/pV P                  W8Wv4      p	V P                  WWI4      p	V	# )textNr  r  r  r   ru  r  r  r  r  r  r  r  r  r  r  r  )r  rm   r  r  )
r   rT   r1   r   rj  emptyr  r   r   r9  s
   &&&&&     r<   exp_comments$ComponentReflectionTest.exp_comments  s    0%8()5Y\"E

 	E0Wu\"E&'^$=' %&@) ]#U^$e%&+,e)*E))+,e
"   uC!!&C
r?   c                  a
 R \         P                  RR3R lo
V
3R lpVR3S
! RR\         P                  R7      S
! R	4      S
! R
4      S
! R4      ./pVR3S
! R	R\         P                  R7      S
! R4      S
! R4      .VR3S
! RR\         P                  R7      S
! R\         P                  R7      S
! R\         P                  R7      S
! R4      .VR3S
! RR\         P                  R7      S
! R4      S
! R4      ./pV P                  Wv4       VR3V! R4      S
! RR R7      S
! RR R7      S
! R4      .VR3V! R4      S
! R	4      S
! R
4      S
! R4      .VR3V! R	4      S
! R4      S
! R4      .VR3V! RRR7      S
! RRR7      S
! R R!R7      S
! R"R#R7      .VR$3S
! R4      .VR%3V! R4      S
! R4      S
! R&4      .VR'3V! R4      S
! R(4      S
! R4      .VR)3V! R4      S
! R4      .VR*3S
! R+4      .VR,3V! R4      S
! R+4      .WP                  4       3V! R4      S
! R4      S
! R4      ./pV P	                  W8Wv4      p	V P                  WWI4      p	V	# )-FNTc                 n    R V RVR\         P                  RVRVRV/pVR8X  d   VP                  R4       V# )rq   autoincrementtypedefaultr  ry  omit)r*   re  pop)rq   autor  r  ry  r9  s   &&&&& r<   r   0ComponentReflectionTest.exp_columns.<locals>.col  sG     77HC v~(Jr?   c                 F   < R RR\         P                  RR/VCpS! V 3/ VB # )r  Tr  ry  Fr*   re  )rq   ry   r   s   &,r<   pk/ComponentReflectionTest.exp_columns.<locals>.pk  s,    $	488ZM"MBt?r?"r?   r  r  r  )r  ry  r  r  rQ   r  r  r  r  rv  rw  rx  rz  r{  r   rN   rq   r   ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )r   rT   r1   r   rj  r  r  r   r   r9  r   s   &&&&&     @r<   exp_columns#ComponentReflectionTest.exp_columns  s    dhht		#
 ^$N$((CL!IF	'
 ()LvA$%O$,
 YIFTXX>Gdhh/Gdhh/$%	" \"Dv9FE
%
$ 	E0W9Ge,Ge,$%	  \">"L!IF	% &'< $%O$*
 ^$4.F$45L D":;' %&V]#bhFS=M%N^$r$xZ#f+&N%&D3v;(?+,s3xj)*RXs3x,@))+,4FE
/C&
N   uC!!&C
r?   c                
    0 Rm# )rq   >   rq   r  r  ry  r@   r  s   &r<   _required_column_keys-ComponentReflectionTest._required_column_keysN  s    66r?   c                   R \         P                  RR/R lpV! RR7      p\        P                  P                  P
                  '       d   VR3V! R4      /pMVR3V/pVR3VVR3VVR	3V/pV P                  W4       VR
3V! R4      VR3V! R4      VR3V! RRRR7      VR3V! R4      VR3VVR3V! R4      VR3V! R4      VR3V! R4      VR3VVR3V! R4      WP                  4       3V! R4      /p	\        P                  P                  P
                  '       g8   V	P                  4        F#  p
V
R ,          f   K  \         P                  V
R &   K%  	  V P                  W9W4      pV P                  WWK4      pV# )rq   r  Nc                 $    R \        V4      RV RV/# )constrained_columnsrq   r  )list)rq   r  colss   $$*r<   r  +ComponentReflectionTest.exp_pks.<locals>.pkY  s    %tDz7 r?   r"  r  r  r  r  r   ru  rv  r  r  r  r  r  r  r  rN   r  r  r  r  r  r  )r*   re  r   rU   materialized_views_reflect_pkr5   r  rm   reflects_pk_namesr  r  r  )r   rT   r1   r   rj  r  r  r  r   r   valr9  s   &&&&&       r<   exp_pksComponentReflectionTest.exp_pksR  s   	488 	T 	 99AAA#^4b6HIL#^4e<L()5Y\"E

 	E0Wr)}\"B~$6&'=/* ^$bh%&]#RX^$bh%&4+,e)*BtH))+,bh
 11999}}v;*"&((CK '   uC!!&C
r?   c                
    R R0# )rq   r  r@   r  s   &r<   _required_pk_keys)ComponentReflectionTest._required_pk_keys  s    -..r?   c                  a  ! R  R4      oV\         P                  R3V3R llpVR3. /pVR3. VR3. VR3. /pV P                  Wv4       VR3V! R	.R
.RRR7      .VR3V! R.R
.R4      V! R.R.RRRR7      .VR3V! R.R
.R4      .VR3. VR3. VR3V! R.R.R\        P                  R7      .VR3V! R.R.RRR7      .VR3. VR3. VR3. WP                  4       3. /p\        P                  P                  P                  '       g   WR3,          P                  4        \        P                  P                  P                  '       gQ   VP                  4        F<  p	V	 F3  p
V
R ,          \         P                  Jg   K   \         P                  V
R &   K5  	  K>  	  V P                  W8Wv4      pV P                  WWK4      pV# )!c                   &   a  ] tR tRt o R tRtV tR# )+ComponentReflectionTest.exp_fks.<locals>.tti  c                h    VR J ;'       g(    \         P                  P                  P                  V8H  # r   )r   r:   r   r  )r   r   s   &&r<   __eq__2ComponentReflectionTest.exp_fks.<locals>.tt.__eq__  s2    TM F Fyy((<<Er?   r@   NrA   rB   rC   rD   r  rF   rG   rH   s   @r<   r   r    s      r?   r   Nc                 V   < R T RTRTR\         P                  RVe   TMS! 4       RVRV/# )r  referred_columnsrq   r2   referred_schemareferred_tabler  r  )r  ref_col	ref_table
ref_schemarq   r  r   s   &&&&&&r<   fk+ComponentReflectionTest.exp_fks.<locals>.fk  s@     &t"G488!","8Jbd )7
 
r?   r  r  r  r   ru  r{  rv  rt  r"  r  r  r  r  r  r  r  r  r  r  r  r  rN   r  )r  r  r  r  r  rq   )r*   re  r  r   rW   rm   r   rU   r  r5   r  named_constraintsr  r  r  )r   rT   r1   r   rj  r  r  r   r   valsr  r9  r   s   &&&&&       @r<   exp_fksComponentReflectionTest.exp_fks  s-   	 	 	(  0"5()2Y\"B

 	E0W$%	{G,O  \"I;W5!N!N%-+	% &'$%	{G<* ^$b%&]# MF$%11	& ^$J<$4H' %&+,b)*B))+,bC"
F ==EEEG$%++-11999C6{$((2&*hhF   (
   uC!!&C
r?   c                
    0 Rm# )rq   >   rq   r  r  r  r  r@   r  s   &r<   _required_fk_keys)ComponentReflectionTest._required_fk_keys  s    
 	
r?   c                   R RRRRRRR/R lpVR3. /pVR3. VR	3. VR
3. /pV P                  Wv4       V'       d"   WaR3,          P                  V! RRR7      4       VR3. V! RRRR7      OV! RRRRR7      OV! RRRRR7      OVR3. V! R\        P                  RRR7      OV! R\        P                  RR7      OV! RRRRRR7      OVR3. V! R \        P                  R7      OV! R!\        P                  RR7      OVR"3. VR#3. VR$3. V! R%\        P                  RR7      OVR&3. V! R'\        P                  RR7      OVR(3. VR)3. V! R*R+R*R4/R,7      OVR-3. V! R*R.R*R4/R,7      OWP	                  4       3. V! R/R0R7      OV! R1R2\
        P                   2RRR37      O/p\        P                  P                  P                  '       d+   \        P                  P                  P                  '       g1   WR)3,          P                  4        WR-3,          P                  4        V P                  W8Wv4      p	V P                  WWI4      p	V	# )5r  Fcolumn_sortingN
duplicatesr  c           
      
   \         P                  P                  p\         P                  P                  p\         P                  P                  pV'       d   VP
                  '       d   V'       d   VP
                  '       g   R	# R VR\        V4      RV R\        P                  R. /p	V'       dB   W)R&   VP
                  '       d,   V	R,          ;V	R&   p
V
 Uu. uF  qV9   d   RMTNK  	  upV	R&   V'       d   W	R&   V	.# u upi )
r  r   rq   dialect_optionsinclude_columnsr%  expressionsNduplicates_constraintr@   )	r   rU   foreign_keys_reflect_as_index#unique_constraints_reflect_as_index*reflect_indexes_with_ascdesc_as_expressionr5   r  r*   re  )rq   r  r%  r&  r  r  fk_reqdup_reqsorting_expressionr9  origr   s   $$$$$*      r<   r   0ComponentReflectionTest.exp_indexes.<locals>.idx  s     %%CCF&&JJG  KK  6>>>7???	&T
!488!2C (6$%%---03N0CCC&DH+DHq^ 3:D+C' /3+,5L+s   D r  r  r  r   rQ   r  r"  ru  r{  rt  T)rq   r  rv  rz  rw  r  r  )rq   r  r  )rq   r  r&  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )rq   r%  r  r  r   r  rq   r  )rq   r&  r  )r  )r  extendr*   re  rm   r   rk   r   rU   r  r5   r  r  r  r  )
r   rT   r1   r   rj  r   r  r   r   r9  s
   &&&&&     r<   exp_indexes#ComponentReflectionTest.exp_indexes  s   #	 #	  	#	
 #	 #	J  0"5()2Y\"B

 	E0.1299F- W  %LTB YG  WgM$G 
 \" 
%V$((4DI
%YTXX$7
%  "1#
% &' *_4884*%DHH>* ^$b%&]# &[txxD9& ^$ 'Zdhh48' %&+, /*$'#3/ )* -osI>N-
 ))+, /U//'~6#	/U3
j   55===##@@HHH234::<01288:  uC!!&C
r?   c                
    0 Rm# )rq   >   rq   r  r   r@   r  s   &r<   _required_index_keys,ComponentReflectionTest._required_index_keys]  s    11r?   Fc                   R RRRRR/R lpVR3. /pVR3. VR3. VR	3. /pV P                  W4       VR
3. V! RRRRRR7      OVR3. V! R\        P                  \        P                  R7      OV! RRRRRR7      OVR3. VR3. VR3. VR3. VR3. VR3. VR3. VR3. WP                  4       3. V! R R!\        P
                   2R"7      O/p	V'       d	   / VCVCV	C# V P                  W9W4      p
V P                  WWJ4      p
V
# )#duplicates_indexNis_indexFr  c                     \         P                  P                  pV'       d   VP                  '       g   R# R \	        V4      RV RV/pV'       d   WR&   V.# )r   rq   r  r;  r@   )r   rU   *unique_index_reflect_as_unique_constraintsr5   r  )rq   r;  r<  r  r  reqr9  s   $$$$*  r<   uc+ComponentReflectionTest.exp_ucs.<locals>.uci  sT     ""MMC	T
7C
  *:&'5Lr?   r  r  r  r   ru  rw  rz  r  T)rq   r;  r<  r  rQ   )rq   r;  r  r  r  r  )rq   r;  r  r  r  r  r  r  r  r  r  rq   r  r"  )r  r*   re  rm   r   rk   r  r  )r   rT   r1   r   rj  all_r@  r  r   r   r9  s   &&&&&&     r<   exp_ucsComponentReflectionTest.exp_ucsa  s   	*.	9>	HL	  0"5()2Y\"B

 	E0W  &%2!  \" 	%FDHHE	% "1%=/	% &'^$b%&]#R^$b%&+,b)*B))+, /F<~!>?/9
@ 6l6e6v66$$T5GC%%f\GCJr?   c                
    R R0# )rq   r   r@   r  s   &r<   _required_unique_cst_keys1ComponentReflectionTest._required_unique_cst_keys  s    ''r?   c                  a
  ! R  R\         4      o
RV
3R llpVR3. /pVR3. VR3. VR3. /pV P                  Wv4       VR3V! R\        P                  4      V! R	R
RR7      .VR3V! RRR7      .VR3. VR3. VR3. VR3. VR3. VR3. VR3. VR3. WP	                  4       3. /pV P                  W8Wv4      p	V P                  WWI4      p	V	# )c                   &   a  ] tR tRt o R tRtV tR# )+ComponentReflectionTest.exp_ccs.<locals>.tti  c                    VP                  4       P                  R R4      P                  RR4      P                  RR4      pW9   # )(rs  )`)lowerreplace)r   r   r9  s   && r<   r  2ComponentReflectionTest.exp_ccs.<locals>.tt.__eq__  s>    KKMWS"%WS"%WS"%	  {"r?   r@   Nr  rH   s   @r<   r   rJ    s     # #r?   r   c                     < R S! V 4      RVRV/# )sqltextrq   r  r@   )r  rq   r  r   s   &&&r<   cc+ComponentReflectionTest.exp_ccs.<locals>.cc  s    r$xy'JJr?   r  r  r  r   ru  r  r|  r}  r~  r  r  z$address_id > 0 and address_id < 1000r  r"  r  r  r  r  r  r  r  r  r   )strr  r*   re  rm   r  r  )r   rT   r1   r   rj  rT  r  r   r   r9  r   s   &&&&&     @r<   exp_ccsComponentReflectionTest.exp_ccs  s?   	# 	#	K
  0"5()2Y\"B

 	E0W?DHH-&4  \":-% &'^$b%&]#R^$b%&+,b)*B))+,b/
2   uC!!&C
r?   c                
    R R0# )rq   rS  r@   r  s   &r<   _required_cc_keys)ComponentReflectionTest._required_cc_keys  s    	""r?   c                    \        V4      p\        \        P                  P                  VP                  4       9   4       R # r   )r   r)   r   r   rW   get_schema_namesr   s   && r<   test_get_schema_names-ComponentReflectionTest.test_get_schema_names  s,    z"**d.C.C.EEFr?   c                    \        V4      p\        VP                  \        P                  P
                  4      4       \        VP                  R 4      4       R# )sa_fake_schema_fooN)r   r)   
has_schemar   r   rW   r'   r   s   && r<   test_has_schema'ComponentReflectionTest.test_has_schema  s9    z" : :;<!567r?   c                    VP                  RR\        \        P                  P                  /R7      p\        V4      p\        \        P                  P                  VP                  4       9   4       R# )z
test #7300r   barschema_translate_mapN)execution_optionsr$   r   r   rW   r   r)   r]  r   s   && r<   %test_get_schema_names_w_translate_map=ComponentReflectionTest.test_get_schema_names_w_translate_map  s^      11ugnn88" 2 

 z"**d.C.C.EEFr?   c                   VP                  R R\        \        P                  P                  /R7      p\        V4      p\        VP                  \        P                  P                  4      4       \        VP                  R4      4       R# )r   rf  rg  ra  N)	ri  r$   r   r   rW   r   r)   rb  r'   r   s   && r<   test_has_schema_w_translate_map7ComponentReflectionTest.test_has_schema_w_translate_map  si    11ugnn88" 2 

 z" : :;<!567r?   c                (   \        V4      p\        R VP                  4       9   4       \        VP                  R 4      4       VP	                  \        R4      4        \        R VP                  4       9   4       \        VP                  R 4      4       VP                  4        \        R VP                  4       9   4       \        VP                  R 4      4       VP	                  \        R4      4       R#   TP	                  \        R4      4       i ; i)foo_barzCREATE SCHEMA foo_barzDROP SCHEMA foo_barN)r   r'   r]  rb  executer!   r   r)   r   s   && r<   test_schema_cache)ComponentReflectionTest.test_schema_cache  s     z"d33556+,3678	;Y$"7"7"99:T__Y/0I!6!6!889DOOI./s#89:Js#89:s   A<C5 5Dc                    \         P                  ! 4       p\        V4       \        VP                  R 4      '       g   Q hR# )r  N)r   r7   r   hasattrr   )r   engines   & r<   test_dialect_initialize/ComponentReflectionTest.test_dialect_initialize!  s/    '')v~~'<====r?   c                p    \        V4      p\        VP                  VP                  P                  4       R # r   )r   r   r  r   r   s   && r<   test_get_default_schema_name4ComponentReflectionTest.test_get_default_schema_name'  s(    z"D$$j&8&8&L&LMr?   foreign_keyorder_byr   
use_schemac                   V'       d   \         P                  pMR p0 Rmp\        V4      pV'       d:   VP                  V4       Uu. uF  pV^ ,          '       g   K  V^ ,          NK  	  ppMVP	                  V4      pV U	u. uF  qV9  g   K  V	NK  	  p
p	VR8X  d   . ROp\        W4       R # . ROp\        \        V
4      V4       R # u upi u up	i )Nr|  >   r  r  r  r  r  r  r  r  )r  r  ru  )r   rW   r   get_sorted_table_and_fkc_namesget_table_namesr   sorted)r   r   r}  r~  rT   _ignore_tablesr   recr   tr   answers   &&&&        r<   test_get_table_names,ComponentReflectionTest.test_get_table_names,  s     ''FF
 z"  >>vFFCq66 AF  F ))&1F"(D&Q^,Cqq&D}$?F$?F{#V, Es   C	C	CCc                d   \        V4      pV'       d   \        P                  pMR pVP                  V4      p\        P
                  P                  P                  '       d6   \        \        V4      RR.4       \        VP                  V4      R.4       R # . ROp\        \        V4      V4       R # )Nr  r  r  )r  r  r  )r   r   rW   get_view_namesr   rU   r  r5   r   r  get_materialized_view_names)r   r   r~  r   rT   r   r  s   &&&    r<   test_get_view_names+ComponentReflectionTest.test_get_view_namesW  s     z"''FF))&1..666{#&99%EF008>:JKEF{#V,r?   c                    \        V4      pVP                  4       p\        \        V4      R \        P
                   2.4       R# )ri   N)r   get_temp_table_namesr   r  r   rk   r   r   r   r  s   &&  r<   test_get_temp_table_names1ComponentReflectionTest.test_get_temp_table_namesh  s9    z"446F#$6<<.'A&BCr?   c                h    \        V4      pVP                  4       p\        \        V4      R .4       R# r   )r   get_temp_view_namesr   r  r  s   &&  r<   test_get_temp_view_names0ComponentReflectionTest.test_get_temp_view_namesn  s/     z"335F#$|n5r?   c                (    V P                  V4       R # r   )_test_get_commentsr   r   s   &&r<   test_get_comments)ComponentReflectionTest.test_get_commentsu  s    
+r?   c                Z    V P                  V\        P                  P                  4       R # r   )r  r   r   rW   r  s   &&r<   test_get_comments_with_schema5ComponentReflectionTest.test_get_comments_with_schemay  s     	
GNN,F,FGr?   c                   \        V4      pV P                  VR 7      p\        VP                  RVR 7      WBR3,          4       \        VP                  RVR 7      WBR3,          4       \        VP                  RVR 7      WBR3,          4       V P                  P
                  P                  p\        VP                  WRR 7      WBV3,          4       R# )rS   r  ru  N)r   r  r   rU  r   r  rq   )r   r   rT   r   expno_csts   &&&   r<   r  *ComponentReflectionTest._test_get_comments~  s    z"v."">&"A()	

 	""76":!"	

 	"">&"A()	

 ++00""6"9 !	
r?   zuse_views,use_schemac                l   V'       d   \         P                  pMR pV P                  P                  V P                  P                  reV'       d   . ROpMRR.p\        V4      p\        WuV34       EF?  w  rTpVP                  WR7      p\        \        V4      ^ 8  \        V4      4       \        V
P                  4       EF  w  r\        VP                  W,          R,          4       W,          R,          P                  pVP                  p\!        V\"        P$                  P&                  4      '       d   VP                  p\(        P*                  ! R4      '       d6   V\,        P.                  \,        P0                  39   d   \,        P.                  p\        \        \3        VP4                  4      P7                  VP4                  4      P7                  \,        P8                  \,        P:                  \,        P0                  \,        P.                  \,        P<                  \,        P>                  \,        P@                  .4      4      ^ 8  VP                  : RVP                  : RW,          R,          : RV: R	24       VPB                  '       d   EK  W,          R
,          f   EK  Q h	  EKB  	  R # )Nru  r  rS   rq   r  r  rL  z), rM  r  r  r  r  )"r   rW   r   ru  r  r   zipr   r)   len	enumeratecolumnsr   rq   	__class__r  r7  rt   r   
TypeEnginer   r  	sql_typesDater   r  __mro__intersectionr   NumericTimer   _BinaryrP   )r   r   	use_viewsr~  rT   ru  	addressesr   r   rz   tableschema_namer  ir   ctype	ctype_defs   &&&&             r<   rB  (ComponentReflectionTest.test_get_columns  s    ''FF KK--t{{/J/JyJK"$56Kz"!$[)2D!EJ K##J#CDCIM3t9- $EMM2CHHdgfo.11HH	i)<)<== ) 3 3I ??8,,NN&&? 2 !*I
 EMM*%i&7&78% ) 1 1 ) 1 1 ) 2 2 ) ) ) 0 0 ) 1 1
 " xx476??EC#* 79-555Q 3 "Fr?   c                    V P                  4       pV P                  V,          p\        V\        4       VR 7      pV P	                  W4RR7       R# )r   F)strict_constraintsN)rm   r   r   r   assert_tables_equal)r   r   rz   r{   reflected_user_tmps   &&   r<   test_reflect_table_temp_table5ComponentReflectionTest.test_reflect_table_temp_table  sL    ))+
;;z*"
*
 	  U 	! 	
r?   c                H   V P                  4       pV P                  V,          p\        V4      pVP                  V4      p\	        \        V4      ^ 8  \        V4      4       \        VP                  4       F(  w  rg\        VP                  WV,          R,          4       K*  	  R# )r   rq   N)
rm   r   r   r   r)   r  r  r  r   rq   )r   r   rz   r{   r   r  r  r   s   &&      r<   test_get_temp_table_columns3ComponentReflectionTest.test_get_temp_table_columns  sy    ))+
;;z*z"
+D	As4y) 0 01FA$'&/* 2r?   c                    \        V4      pVP                  R 4      p\        V Uu. uF  qDR,          NK  	  up. RO4       R# u upi )r   rq   N)rN   rq   r   )r   r   r   )r   r   r   r  r   s   &&   r<   test_get_temp_view_columns2ComponentReflectionTest.test_get_temp_view_columns  s?     z"-D)DS[[D)+@A)s   Ac                ~   V'       d   \         P                  P                  pMR pV P                  P                  V P                  P
                  rT\        V4      pV P                  VR7      pVP                  VP                  VR7      pV P                  V.WsVP                  3,          .V P                  4       VP                  VP                  VR7      p	WsVP                  3,          R,          p
\        V	R,          V
4       \         P                  P                  P                  4       ;_uu_ 4        \        V	R,          R4       R R R 4       V P                  P                   P                  pV P                  VP                  WR7      .WsV3,          .V P                  4       R #   + '       g   i     Li; i)NrS   r  rq   r  )r   r   rW   r   ru  r  r   r  rE  rq   _check_listr  r   rU   r  fail_ifr  )r   r   r~  rT   ru  r  r   r  
users_cons	addr_consexp_colsr  s   &&&         r<   rF  .ComponentReflectionTest.test_get_pk_constraint  s_   
 ^^//FF;;,,dkk.I.Iyz"ll&l)++EJJv+F
L3

345t7M7M	
 **9>>&*I		/01FGI+,h7//7799	&!=1 : ++00##F#:;&!"#""	
	 :9s   7F,,F<	PK_test_tablepk_test_tablemixedCasePKzpk.with.dotspk_namec                :   \        RV\        R\        4      \        R\        ^24      4      \        P
                  ! RVR7      4       VP                  V4       \        V4      pVP                  R4      p\        VR,          V4       \        VR,          R.4       R# )zRTest that primary key constraint names with various casing are
properly reflected.rM   rN   rQ   r"  rq   r  N)
r   r   r   r   rt   r'  r   r   rE  r   )r   r   r]   r  r   pk_conss   &&&&  r<   "test_get_pk_constraint_quoted_name:ComponentReflectionTest.test_get_pk_constraint_quoted_name"  s     	4!66":&##Dw7	
 	J'z"((6GFOW%G)*TF3r?   c                   V'       d   \         P                  pMR pV P                  P                  V P                  P                  rT\        V4      pTp\        P                  P                  P                  '       d   VP                  VP                  VR7      pV^ ,          p	\        P                  P                  P                  4       ;_uu_ 4        \        V	R,          R4       R R R 4       \        V	R,          V4       \        V	R,          VP                  4       \        V	R,          R.4       \        V	R,          R	.4       VP                  VP                  VR7      p
V
^ ,          p	\        P                  P                  P                  4       ;_uu_ 4        \!        V	R,          R J4       R R R 4       \        V	R,          V4       \        V	R,          VP                  4       \        V	R,          R.4       \        V	R,          R
.4       V P                  P"                  P                  p\        VP                  WR7      . 4       R #   + '       g   i     ELr; i  + '       g   i     L; i)NrS   rq   rt  r  r  r  rv  r  r{  r  )r   rW   r   ru  r  r   r   rU   r  r5   rI  rq   r  r  r   implicitly_named_constraintsr)   r  )r   r   r~  rT   ru  r  r   expected_schemausers_fkeysfkey1
addr_fkeysr  s   &&&         r<   rJ  -ComponentReflectionTest.test_get_foreign_keysA  s   
 ''FF KK--t{{/J/Jyz"  99AAA//

6/JKNE!!33;;==E&M<0 > '(/:&'4()I;7+,/?.@A **9>>&*I
1::BBDDE&M-. E 	E#$o6E"#UZZ0E$%	{3E'(+;*<=++00D!!&!8"=+ >== EDs   II%I"	%I5	FK_users_idfk_users_idmixedCaseNamezfk.with.dotsfk_namec                   \        RV\        R\        RR7      RR7       \        RV\        R\        RR7      \        R\        4      \        P                  ! R.R.VR	7      RR7       VP                  V4       \        V4      pVP                  R4      p\        \        V4      ^4       V^ ,          p\        P                  P                  P                  4       ;_uu_ 4        \        VR
,          V4       RRR4       \        VR,          R4       \        VR,          R.4       \        VR,          R.4       R#   + '       g   i     LM; i)zRTest that foreign key constraint names with various casing are
properly reflected.	users_refrv  TrO   r   user_ordersorder_idzusers_ref.user_idr"  rq   Nr  r  r  )r   r   r   rt   r   r   r   rI  r   r  r   rU   r  r  )r   r   r]   r  r   fkeysfkeys   &&&&   r<   !test_get_foreign_keys_quoted_name9ComponentReflectionTest.test_get_foreign_keys_quoted_namek  s    	9g48		
 	:wD99g&##$%
 	
 	J'z"%%m4CJQx//7799Vg& : 	D!"K0D#$yk2D&')5 :9s   #D<<E	c                   V P                  R VP                  P                  ,          R\        P                  P
                  ,          R\        P                  P
                  ,          4      w  r#p\        V4      pVP                  VP                  4      p\        \        V4      ^4       V^ ,          p\        VR,          \        P                  P
                  4       \        VR,          VP                  4       \        VR,          R.4       \        VR,          R.4       VP                  VP                  \        P                  P
                  R	7      p\        \        V4      ^4       V^ ,          p	\        V	R,          R
VP                  P                  39   4       \        V	R,          VP                  4       \        V	R,          R.4       \        V	R,          R.4       R
# )z%s.local_tablez%s.remote_tablez%s.remote_table_2r  r  r  rN   r  r  rS   Nr  )r   r   r  r   r   rW   r   rI  rq   r   r  r)   )
r   r   r  r  r  r   local_fkeysr  remote_fkeysfkey2s
   &&        r<   "test_get_inter_schema_foreign_keys:ComponentReflectionTest.test_get_inter_schema_foreign_keys  s    59KKz11EEE : ::'.."<"<<5
1> z"++K,<,<=Ca AE#$gnn&@&@AE"#^%8%89E$%v.E'(;-8,,gnn&@&@ - 
 	Cq!Q#$""66	
 	E"#[%5%56E$%v.E'(:,7r?   c                   V'       d   \         P                  pMR p\        V4      pVP                  RVR7      pV P	                  VR7      pV P                  WVVR3,          V P                  4       V P                  P                  P                  pV P                  VP                  WsR7      WcV3,          V P                  4       R # )Nru  rS   )
r   rW   r   rM  r5  r  r8  r   r  rq   )r   r   r~  rT   r   indexesr  r  s   &&&     r<   rN  (ComponentReflectionTest.test_get_indexes  s    
 ''FF z"""76":f-&'*+T-F-F	
 ++00V3 !%%	
r?   ztname,ixnamec                   \        V4      pVP                  V4      pV P                  4       R V3,          pV P                  WVV P                  4       \        V\        4       VR7      p\        \        VP                  4      ^4       \        \        VP                  4      ^ ,          P                  V4       \        \        VP                  4      ^ ,          P                  V4       R # )Nr   )r   rM  r5  r  r8  r   r   r   r  r  r   r  r  rq   )r   r   tnameixnamer   r  expected_indexesr  s   &&&&    r<   test_get_noncol_index-ComponentReflectionTest.test_get_noncol_index  s     z"""5)  ++-tUm<D4M4MN%:>C		NADOA$$a(DOA##V,r?   IX_test_dataix_test_datamixedCaseIndexzix.with.dotsidx_namec                   \        RV\        R\        RR7      \        R\        ^24      4      4      p\	        W4P
                  P                  4       VP                  V4       \        V4      pVP                  R4      pV Uu. uF  qwR,          NK  	  ppW89   g   Q RV RV 24       hV Uu. uF  qwR,          V8X  g   K  VNK  	  p	p\        \        V	4      ^4       \        V	^ ,          R	,          R.4       R
# u upi u upi )zATest that index names with various casing are properly reflected.rM   rN   TrO   rQ   rq   z	Expected z in r   N)r   r   r   r   r"   r   rQ   r   r   rM  r   r  )
r   r   r]   r  r  r   r  r   index_namesmatching_idxs
   &&&&      r<   test_get_indexes_quoted_name4ComponentReflectionTest.test_get_indexes_quoted_name  s     4d366":&	
 	h!J'z"""<0.56gs6{{g6&O)H:T+(OO& (/Jwf+2IwJCq!LON+fX6 7 Ks   C:,C? C?c                    \        V4      pV P                  4       pVP                  V4      pV P                  R R7      RV3,          pV P	                  WEV P
                  4       R# )T)rB  N)r   rm   rQ  rC  r  r8  )r   r   r   rq   	reflectedr  s   &&    r<   &test_get_temp_table_unique_constraints>ComponentReflectionTest.test_get_temp_table_unique_constraints  s[     z"##%//5	lll%tTl3)B)BCr?   c                t   \        V4      pV P                  4       pVP                  V4      pV F  pVP                  R R4       K  	  RRRR.RR/.p\        P
                  P                  P                  '       d   . V^ ,          R&   \        V Uu. uF  qwR,          R8X  g   K  VNK  	  upV4       R# u upi )	r(  Nr  Fr   r   rq   r  r)  )	r   rm   rM  r  r   rU   index_reflects_included_columnsr5   r   )r   r   r   rz   r  indexpectedr   s   &&      r<   test_get_temp_table_indexes3ComponentReflectionTest.test_get_temp_table_indexes  s    z"))+
"":.CGG%t,  unugv}M
 ;;CCC-/HQK)*#DGS6{m'CSSGD	
Ds   B5%B5c                   V'       d   \         P                  pMR p\        RRRR./RRR. RO/RRR. RO/RR	RR
R./RRRR./RRRR./.\        P                  ! R4      R7      p\        RV\        R\        P                  ! ^4      4      \        R\        P                  ! ^4      4      \        R\        P                  4      \        R
\        P                  ! ^4      4      \        R\        P                  ! ^4      4      VR7      pV F6  pVP                  \        P                  ! VR,          RVR,          / 4       K8  	  VP                  V4       \        V4      p\        VP                  RVR7      \        P                  ! R4      R7      p	\        4       p
\!        \#        V4      \#        V	4      4       \%        WY4       Fi  w  rVP'                  RR 4      pV'       d   V
P)                  V4       \!        VP'                  RR 4      R 4       VP'                  RR 4       \!        W4       Kk  	  \+        4       p\        RVVVR7      p	V	P,                   Uu0 uF  qP.                  kK  	  ppV	P0                   Uu0 uF1  p\3        V\        P                  4      '       g   K%  VP.                  kK3  	  upP5                  R.4      pVP7                  V4      '       d   Q hV
'       d!   \!        V
V4       \!        V\        4       4       V P8                  P:                  P.                  p\!        VP                  VVR7      . 4       R # u upi u upi )Nrq   unique_ar   r   unique_a_b_cbr   unique_c_a_bunique_asc_keyascr   zi.have.dotszi have spacesr   testtblrS   r;  r  r(  )r   rT   )r   r  r   )r   r   r  )r   rW   r  operator
itemgetterr   r   rt   r   r   append_constraintr(  r   r   rQ  r  r   r  r  r  r  r   r  rq   constraintsr7  
differencer  r   r  )r   r]   r   r~  rT   uniquesr  r@  r   r  names_that_duplicate_indexr2  refldupereflected_metadatar   	idx_namesuquq_namesr  s   &&&&                r<   rR  3ComponentReflectionTest.test_get_unique_constraints*  s    ''FF^cU;II)>E5>J>.3%@ ##F+

 3		"&3		"&3

#5"))B-(5"))B-(

 B####R%7IbjI  	Z z"''	&'A##F+
	
 &)U"CL#i.)g1JD 88.5D*..t4D)40HH&-O 2 &Z$	
	 *3):):;):#XX):	;  ++
+"b112 BGG+
 *n%
&	 	 ))(3333%*I6#% ++00D''v'>C <
s   M<"M#MUQ_emailuq_emailmixedCaseUQzuq.with.dotsuq_namec                   \        RV\        R\        RR7      \        R\        ^24      4      \        P
                  ! RVR7      4       VP                  V4       \        V4      pVP                  R4      p\        \        V4      ^4       \        V^ ,          R,          V4       \        V^ ,          R,          R.4       R	# )
zMTest that unique constraint names with various casing are
properly reflected.rM   rN   TrO   emailr"  rq   r   N)r   r   r   r   rt   r(  r   r   rQ  r   r  )r   r   r]   r$  r   uq_conss   &&&&  r<   'test_get_unique_constraints_quoted_name?ComponentReflectionTest.test_get_unique_constraints_quoted_name  s     	4d37F2J'g6	
 	J'z"--l;CL!GAJv(GAJ~&	2r?   c                    V'       d   \         P                  pMR p\        V4      pR F)  pVP                  WSR7      p\	        \        V4      4       K+  	  R # )NrS   r  )r   rW   r   r=  r)   bool)r   r   r~  rT   r   viewr  s   &&&    r<   r?  0ComponentReflectionTest.test_get_view_definition  sK    
 ''FFz"DD(((=ADG Er?   c                .   \        V4      p\        \        4      ;_uu_ 4        VP                  R 4       RRR4       \        \        4      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     LC; i  + '       g   i     R# ; i)view_does_not_existNru  )r   r   r   r=  r   s   && r<   'test_get_view_definition_does_not_exist?ComponentReflectionTest.test_get_view_definition_does_not_exist  sa    z"+,,$$%:; -+,,$$W- -, -,,,,s   A0B0B 	B	c                    \        V4      pR FP  w  r4VP                  V4      pV Uu/ uF  qfR,          VbK  	  upV,          pVP                  RR4      '       d   KP  Q h	  R# u upi )aX  test that 'autoincrement' is reflected according to sqla's policy.

Don't mark this test as unsupported for any backend !

(technically it fails with MySQL InnoDB since "id" comes before "id2")

A backend is better off not returning "autoincrement" at all,
instead of potentially returning "False" for an auto-incrementing
primary key column.

rq   r  TN))ru  rv  )r  r  )r  r  )r   r   get)r   r   r   r  cnamer  r   id_s   &&      r<   test_autoincrement_col.ComponentReflectionTest.test_autoincrement_col  si     z"
LE
 ##E*D)-.AV9a<.u5C77?D1111
 /s   A$c                   \        \        P                  4      pV'       d   \        P                  MR p\        P
                  P                  P                  '       d[   VP                  RVR7      p\        \        V\        4      4       VP                  RVR7      p\        \        V\        4      4       R # \        \        4      ;_uu_ 4        VP                  RVR7       R R R 4       R #   + '       g   i     R # ; i)Nru  rS   r  )r   r   r:   rW   r   rU   r5  r5   r6  r)   r7  r8   r   r8  )r   r~  r   rT   r9  s   &&   r<   r:  .ComponentReflectionTest.test_get_table_options  s     vyy!'1##t11999(((@CJsD)*(()9&(ICJsD)*233&&wv&> 4333s   C--C>	c           	        \        \        P                  4      p\        P                  P
                  P                  '       dm   V'       d   \        P                  MR pVP                  VR7      pVP                  VR7       Uu/ uF  pW53VP                  WSR7      bK  	  pp\        WF4       R # \        \        4      ;_uu_ 4        VP                  4        R R R 4       R # u upi   + '       g   i     R # ; i)NrS   )r   r   r:   r   rU   r5  r5   rW   get_multi_table_optionsr  r6  r   r   r8  )r   r~  r   rT   r9  r  r  s   &&     r<   test_multi_get_table_options4ComponentReflectionTest.test_multi_get_table_options  s    vyy!11999+5V''4F..f.=C "111@@E !7!7!7!MM@   M233,,. 43 433s   C"C''C8	c                   a V3R  lpV# )c                   < \        S4      pV! VR 4       RVRV/pV '       d   V ! 4       p . p\        P                  V9   d   VP                  . R	O4       \        P                  V9   d   VP                  RR.4       \        P
                  V9   d   VP                  RR.4       V '       d   WR&   V'       d   WR&   V! V VVVP                  R4      R7      p	V.p
V\        P                  8X  d3   VP                  4       pVP                  R4       V
P                  V4       V\        P                  8X  d3   VP                  4       pVP                  R4       V
P                  V4       \        S4      W3# )
r  r1   r   does-not-existr  r  rT   rj  )rT   r1   r   rj  )r  ru  r@  )r   r   rf  r4  rg  rh  r3  r   rc  copyr  append)rT   r1   r   rb  single_reflect_fn
exp_methodr   ry   rj  r  kwsnkwr   s   &&&&&&      r<   provide_fixture>ComponentReflectionTest.get_multi_exp.<locals>.provide_fixture  sI    :&D d$565&$/BL4'##? $&##%8:J$KL++t3##^5E$FG%8%1>"VVN3	C $C+++ggi 

3z'''ggi

3:&00r?   r@   )r   r   rG  s   &f r<   get_multi_exp%ComponentReflectionTest.get_multi_exp  s    ,	1\ r?   c                    V! VVVV\         P                  V P                  4      w  rgpV F0  p	VP                  4        VP                  ! R/ V	B p
\        W4       K2  	  R # Nr@   )r   r6  r  r   r;  r   r   rI  rT   r1   r   rb  r   rE  r  ry   results   &&&&&&     r<   #test_multi_get_table_options_tables;ComponentReflectionTest.test_multi_get_table_options_tables'	  sc    
 '''
3 B117B7F r?   c                    V! VVVV\         P                  V P                  4      w  rgpV F/  p	VP                  4        \	        VP
                  ! R/ V	B V4       K1  	  R # rL  )r   rU  r  r   r   get_multi_table_comment)
r   rI  rT   r1   r   rb  r   rE  r  ry   s
   &&&&&&    r<   test_get_multi_table_comment4ComponentReflectionTest.test_get_multi_table_comment9	  s`    
 '''
3 B,,2r2C8 r?   c           	        R  R lp\        V\        4      '       d8   \        VP                  4        UUu/ uF  w  rVV! V4      VbK  	  uppW#4       R# \        V Uu. uF
  qT! V4      NK  	  upW#4       R# u uppi u upi )c                $    V ^8  d   QhR\         /# )   r  )rV  )formats   "r<   __annotate__@ComponentReflectionTest._check_expressions.<locals>.__annotate__K	  s     	7 	7 	7r?   c                 N    \         P                  ! R RV 4      P                  4       # )z['\" ]rs  )resubrO  )r  s   &r<   _clean:ComponentReflectionTest._check_expressions.<locals>._cleanK	  s    66)R.4466r?   N)r7  r8   r   r  )r   rN  r  err_msgr^  er  s   &&&&   r<   _check_expressions*ComponentReflectionTest._check_expressionsJ	  sd    	7 c4  &,,.9.$!A.93HF+FqF+S: :+s   A7
A=c                   Vf   \        WV4       R # \        \        V4      \        V4      V4       \        W4       F  w  rV\        V4      \        V4      ,           Fd  pWs9   g   Wu9   g   K  Wv9   g   K  V RV RV 2pVR9   d"   V P	                  WW,          Wg,          V4       KK  \        WW,          Wg,          V4       Kf  	  K  	  R # )Nz - )r*  r%  )r   r  r  r  rb  )	r   rN  r  req_keysmsgrra  r   r`  s	   &&&&&    r<   r  #ComponentReflectionTest._check_listS	  s    S!FSXs+F(Q#a&A}AF%(EQCs1#"6 AA 33AD!$HadG4 ) )r?   c                    \        \        VP                  4       4      \        VP                  4       4      4       V F1  pW,          W%,          rvV'       d   V.V.rvV P                  WgW54       K3  	  R # r   )r   r  keysr  )r   rN  r  re  
make_listsr   rg  ra  s   &&&&&   r<   _check_table_dict)ComponentReflectionTest._check_table_dicta	  sT    CCHHJ0A9cfqsQC1Q8/	 r?   c                    V! VVVV\         P                  V P                  4      w  rgpV FA  p	VP                  4        VP                  ! R/ V	B p
V P                  WV P                  4       KC  	  R # rL  )r   r   r  r   get_multi_columnsrl  r  rM  s   &&&&&&     r<   test_get_multi_columns.ComponentReflectionTest.test_get_multi_columnsi	  sq     '!!
3 B++1b1F""60J0JK r?   c                    V! VVVV\         P                  V P                  4      w  rgpV FC  p	VP                  4        VP                  ! R/ V	B p
V P                  WV P                  R R7       KE  	  R# )T)rk  Nr@   )r   rE  r  r   get_multi_pk_constraintrl  r  rM  s   &&&&&&     r<   test_get_multi_pk_constraint4ComponentReflectionTest.test_get_multi_pk_constraint{	  sy    
 '''LL
3 B117B7F""T33 #  r?   c                `   \         P                  P                  P                  '       g   W3 Fz  pVP	                  4        Fc  p\        V4      ^8  g   K  \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       g   KQ  VP                  VR7       Ke  	  K|  	  R# R# )   c              3   h   "   T F(  qP                  R 4      R\        P                  39   x  K*  	  R# 5i)rq   N)r3  r*   re  ).0r  s   & r<   	<genexpr>7ComponentReflectionTest._adjust_sort.<locals>.<genexpr>	  s'      ,CFaf$)993s   02TFr  N)r   rU   r  r5   r  r  anysort)r   rN  r  r   objr  s   &&&&  r<   _adjust_sort$ComponentReflectionTest._adjust_sort	  s    <<DDD)::<C3x!| ,CF, ,CF, ) ) S)	 ( * Er?   c                
   V! VVVV\         P                  V P                  4      w  rgpV FT  p	VP                  4        VP                  ! R/ V	B p
V P                  WR  4       V P                  WV P                  4       KV  	  R# )c                 &    \        V R ,          4      # )r  tupleds   &r<   r   EComponentReflectionTest.test_get_multi_foreign_keys.<locals>.<lambda>	  s    uQ/D-E'Fr?   Nr@   )r   rI  r  r   get_multi_foreign_keysr  rl  r"  rM  s   &&&&&&     r<   test_get_multi_foreign_keys3ComponentReflectionTest.test_get_multi_foreign_keys	  s    
 '&&LL
3 B00626FF ""60F0FG r?   c                    V! VVVV\         P                  V P                  4      w  rgpV FA  p	VP                  4        VP                  ! R/ V	B p
V P                  WV P                  4       KC  	  R # rL  )r   rM  r5  r   get_multi_indexesrl  r8  rM  s   &&&&&&     r<   test_get_multi_indexes.ComponentReflectionTest.test_get_multi_indexes	  sq    
 '!!
3 B++1b1F""60I0IJ r?   c                
   V! VVVV\         P                  V P                  4      w  rgpV FT  p	VP                  4        VP                  ! R/ V	B p
V P                  WR  4       V P                  WV P                  4       KV  	  R# )c                 &    \        V R ,          4      # )r   r  r  s   &r<   r   KComponentReflectionTest.test_get_multi_unique_constraints.<locals>.<lambda>	  s    U1^;L5Mr?   Nr@   )r   rQ  rC  r   get_multi_unique_constraintsr  rl  rF  rM  s   &&&&&&     r<   !test_get_multi_unique_constraints9ComponentReflectionTest.test_get_multi_unique_constraints	  s    
 ',,LL
3 B66<<Ff+MN""60N0NO	 r?   c                
   V! VVVV\         P                  V P                  4      w  rgpV FT  p	VP                  4        VP                  ! R/ V	B p
V P                  WR  4       V P                  WV P                  4       KV  	  R# )c                 &    \        V R ,          4      # rS  r  r  s   &r<   r   JComponentReflectionTest.test_get_multi_check_constraints.<locals>.<lambda>	  s    U1Y<5Hr?   Nr@   )r   rY  rW  r   get_multi_check_constraintsr  rl  rZ  rM  s   &&&&&&     r<    test_get_multi_check_constraints8ComponentReflectionTest.test_get_multi_check_constraints	  s    
 '++LL
3 B55;;Ff+HI""60F0FG	 r?   r6  r   rE  rI  rM  rQ  rY  rU  methodc                    \        V4      p\        W14      p\        \        4      ;_uu_ 4        V! R 4       RRR4       R#   + '       g   i     R# ; i)table_does_not_existsN)r   getattrr   r   )r   r  r   r   r   s   &&&  r<   test_not_existing_table/ComponentReflectionTest.test_not_existing_table	  s<    0 z"t$+,,() -,,,s   	AA	c                  a \         P                  oV3R  lp\        P                  P	                  \         RV4      ;_uu_ 4        \        \        R4      ;_uu_ 4        \        V4      P                  \        R\        4       4      R4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)c                  T   < VP                  R / 4      p\        R4      VR&   S! V / VB # )unreflectableerr)N
some_table)
setdefaultr    )r   r   urmcs   *, r<   patched;ComponentReflectionTest.test_unreflectable.<locals>.patched
  s1    or2B'>u'EB#$q;A;r?   ro  r  r  N)r   ro  r*   patchobjectr   r    r   reflect_tabler   r   )r   r   r  r  s   && @r<   test_unreflectable*ComponentReflectionTest.test_unreflectable
  s    ((	
 ZZy*=wGG&'>FF
#11,
3T G HGFF HGGs$   B1.B	B1B.)B11C	r   c                   \        4       pV'       d   \        P                  MR pVP                  WVRR7       \	        V4      pVP                  V4      pV'       d0   WvP                  V4      ,          p WvP                  V4      ,          pV'       d   V Uu. uF	  q RV 2NK  	  pp\        \        VP                  4      \        V4      4       R #   \         d     LTi ; iu upi )NF)rT   r   resolve_fksrr  )r   r   rW   reflectr   r  r  r  r8  r   r  r   )	r   r   r~  r   mrT   r   r   r  s	   &&&&     r<   test_metadata%ComponentReflectionTest.test_metadata
  s    
 J'1##t			*5e	Lz"%%f-))&11F::6BB /56v!!ovF6F188fVn-	 '  7s   5C C$C! C!c                h   \        R V\        R\        RR7      \        R\        RR7      RR7       VP                  V4       \	        V4      pVP                  R 4      p\        VRR/4       VP                  R 4      pV Uu/ uF  qfR,          VR	,          bK  	  ppRRRR/p\        Wx4       R
# u upi )unicode_commentsunicodeu   é試蛇ẟΩr  emojiu	   ☁️✨u   試蛇ẟΩ✨r  rq   r  Nr   r   r   r   r   rU  r   r   )	r   r   r]   r   tcr  r   valuer  s	   &&&      r<   test_comments_unicode-ComponentReflectionTest.test_comments_unicode%
  s    9g?7G[9$	
 	J'z"##$67B)*+ 23267$Q6AiL($7/7K@E 8s   B/c           
     &   \        R V\        R\        RR7      RR7       VP                  V4       \	        V4      pVP                  R 4      p\        VRR/4       VP                  R 4      ^ ,          p\        VR,          VR,          /RR/4       R# )	r  r  u&   🐍🧙🝝🧙‍♂️🧙‍♀️r  u&   🎩🁰🝑🤷‍♀️🤷‍♂️r  rq   r  Nr  )r   r   r]   r   r  r   s   &&&   r<   test_comments_unicode_full2ComponentReflectionTest.test_comments_unicode_full:
  s    7G-UV<		
 	J'z"##$67BABC/03QvY)%1Y'Z[r?   c                   \         P                  P                  \        4      p\	        R V\        R\        P                  ! VR7      4      \        R\        P                  ! 4       4      4       VP                  V4       \        4       p\	        R WAR7      p\        VP                  P                  P                  P                  V4       \        VP                  P                   P                  P                  4       \#        V4      pVP%                  R 4      w  rx\        VR,          P                  V4       \        VR,          P                  4       R# )r  collated)	collationnot_collatedr   r  N)r   rU   get_order_by_collationr   r   r   rt   r   r   r   r   r   r  r  r  r(   r  r   r   )	r   r   r]   r  r   t2r   r  r  s	   &&&      r<    test_column_collation_reflection8ComponentReflectionTest.test_column_collation_reflectionK
  s     $$;;FC	:ryy9=>>299;/		
 	J'Z35BDDMM(()4!!&&001z"!%!1!1#!6HV&&	2V$../r?   r@   r   )FF)F)r  r  )r  r  )NN)NF)xrA   rB   rC   rD   run_insertsr   r   rE   r^   ro  rm   r[   rY   r  r  r  r   re  r   r  r  r  propertyr  r  r  r  r"  r5  r8  rC  rF  rW  rZ  r   rU   schema_reflectionr^  rc  rj  rm  schema_create_deleterr  rw  rz  r   r
  rV   r  r  r  r  rX   rw   r  r  r  r  r  rB  r  r  r  r+  r  !primary_key_constraint_reflectionrF  r  r  rJ  r  r  r  r   rN  r  r  r  r  r]  r  temp_table_reflect_indexesr  rR  r(  r?  r0  table_reflectionr6  r:  r<  r  rI  r5  rk  rO  rS  rb  r  rl  rp  rt  r  r  r  r  r^  r  r  r  r   r  r  comment_reflection_full_unicoder  column_collation_reflectionorder_by_collationr  rF   rG   rH   s   @r<   rm  rm  r  sv     $$K+ $N N
 k- k-Z 
 

 O OB  4!)Z oo^^B oo^^"L oo^^^@ 7 7
 oo^^.` / /
 oo^^Vp 
 
 oo^^sj 2 2
 oo^^CJ ( (
 oo^^8t # # ''G (G
 ''8 (8 ''G (G ''
8 (
8 ''**; + (; ''> (>
 ''N (N 	((JJK
 	w''(%,!-!-F 	w''(%,-- &&D 'D
 %%%%6 & &6
 ((, ), ((H  )H
0 	g&&../	ug&&667$$w'7'7'G'GG	

 (
<6
<6B ++	
 ,	
 +++ ,+ ++,,%%B & - ,B
 4))112\ 77
 8
:  77''4 ( 84, 4))112\ 77$> 8$>L  77%6 8%6N 00"8  1"8H 4))112\ &&
 '
, 3/
 &&**22- 3 + '-  &&7 '70 ++22D 3 ,D 00
 1
  	w''((\ 22VD 3VDp  223 33. %%4))112\ & %%. &. &&2 '20 	w''((\?? 4!1!1!9!9:EB/ C/ __/ /b ++  ,  ((9  )9;50 L L" 77  8$* 77H  8H& &&K  'K  22P  3P" 11H  2H" 	g..DDE>>	

 >>	
 
((99:$99	

 $88	
 
g..AAB+.*/.* $=	w%%&. >." (( )( 55\ 6\  11((0 ) 20r?   rm  c                      a  ] tR tRt o RtRt]P                  R 4       t]P                  R 4       t	R t
R tR t]P                  P                  R 4       t]P                  P                  R	 4       tR
tV tR# )TableNoColumnsTestic
  Tc                @    \        R V4       VP                  V4       R# r  N)r   r   r   r   r]   s   &&&r<   table_no_columns#TableNoColumnsTest.table_no_columnsg
  s    gx J'r?   c                    \        R V4       \        P                  ! VR\        R4      4       \        P                  ! VR\        R4      4       VP	                  V4       R# )r  ra   z*CREATE VIEW empty_v AS SELECT * FROM emptyrb   zDROP VIEW IF EXISTS empty_vN)r   r   rd   r!   r   r  s   &&&r<   view_no_columns"TableNoColumnsTest.view_no_columnsl
  sR    gx <=	
 	mS)F%G	
 	J'r?   c                p    \        R \        4       VR7      p\        \        VP                  4      . 4       R# )r  r   Nr   r   r   r  r   )r   r   r  r  s   &&& r<   test_reflect_table_no_columns0TableNoColumnsTest.test_reflect_table_no_columns|
  s$    7HJjADJr?   c                    \        V4      p\        VP                  R 4      . 4       VP                  4       p\        VR. /4       R# )r  N)Nr  )r   r   r   ro  )r   r   r  r   multis   &&&  r<   !test_get_columns_table_no_columns4TableNoColumnsTest.test_get_columns_table_no_columns
  s>    z"DW%r*&&(EOR()r?   c                    \        4       pVP                  V4       \        VP                  4      P	                  R .4      '       g   Q hR# r  )r   r  r  r   r  )r   r   r  r  s   &&& r<   "test_reflect_incl_table_no_columns5TableNoColumnsTest.test_reflect_incl_table_no_columns
  s6    J			*188}))7)4444r?   c                p    \        R \        4       VR7      p\        \        VP                  4      . 4       R# )empty_vr   Nr  )r   r   r  r  s   &&& r<   test_reflect_view_no_columns/TableNoColumnsTest.test_reflect_view_no_columns
  s$    9hj
CDJr?   c                    \        V4      p\        VP                  R 4      . 4       VP                  \        P
                  R7      p\        VR. /4       R# )r  )r   N)Nr  )r   r   r   ro  r   rg  )r   r   r  r   r  s   &&&  r<    test_get_columns_view_no_columns3TableNoColumnsTest.test_get_columns_view_no_columns
  sH    z"DY',&&JOO&<E%r*+r?   r@   N)reflect_tables_no_columns)rA   rB   rC   rD   r   r   r   r  r  r  r  r  r  rU   r   r  r  rF   rG   rH   s   @r<   r  r  c
  s     1L $__( ( __( (*5
   , ,r?   r  c                   |  a  ] tR tRt o Rt]P                  ! RR.R7      R 4       t]P                  ! 4       R 4       tR t	]P                  P                  R 4       t]P                  P                  ]P                  ! R	R
RRR7      R 4       4       t]P                  P                  ]P                  ! RRRRR7      R 4       4       t]P                  P                  R 4       t]P                  P$                  R 4       t]P                  P(                  R 4       t]P                  P,                  R 4       tR t]P                  P2                  R 4       t]P                  P2                  ]P                  ! ]P8                  ]P:                  ]P<                  ]P>                  ]P                  P@                  3]PB                  ]P                  P@                  3RR7      R 4       4       t"]P                  P2                  R 4       t#]P                  ! RRR]P                  PH                  3RRR]P                  PJ                  3/ RR]P                  PJ                  3/ RR]P                  PL                  3RRR]P                  PN                  3RRR]P                  PP                  3RR7      R  4       t)]P                  ! ]*]+PX                  ! R!4      R"3]*R!R"3]-]+P\                  ! 4       R#3]*]+PX                  ! R$4      R%]P                  P^                  3]*]+PX                  ! R&4      R']P                  P^                  3]0]1Pd                  ! 4       R(3]*]+Pf                  ! R)4      ]+Pf                  ! R*4      ,           R%]P                  P^                  3R+R7      ]P                  Ph                  R, 4       4       t5R-t6V t7R# ).ComponentReflectionTestExtrai
  TF)paramsc                J    VP                   '       d   \        P                  # R # r   )paramr   rW   )r   requests   &&r<   use_schema_fixture/ComponentReflectionTestExtra.use_schema_fixture
  s    ===%%%r?   c                B   aaa \         P                  VVV3R  l4       pV# )c              3   P   <"   S\        S4      3x  SP                  S4       R # 5ir   )r   r   )r   r   r]   r  s   &r<   go:ComponentReflectionTestExtra.inspect_for_table.<locals>.go
  s$     $gj&999
+s   #&)
contextlibcontextmanager)r   r]   r   r  r  s   &fff r<   inspect_for_table.ComponentReflectionTestExtra.inspect_for_table
  s"    		"	"	, 
#	,
 	r?   c                    R  p\        V Uu. uF  pRVR,          RV! VR,          4      /NK  	  upR R7      p\        VR R7      p\        W4       R# u upi )c                     R P                  \        P                  ! RV P                  4       \        P                  4      4      # ) zand|\d|=|a|b|c|or|<|>)joinr\  findallrO  Ir  s   &r<   	normalize5ComponentReflectionTestExtra.ck_eq.<locals>.normalize
  s.    88

3W]]_bddK r?   rq   rS  c                     V R ,          # r  r@   items   &r<   r   4ComponentReflectionTestExtra.ck_eq.<locals>.<lambda>
      d9or?   r  c                     V R ,          # r  r@   r  s   &r<   r   r  
  r  r?   N)r  r   )r   r  r  r  r  s   &&&  r<   ck_eq"ComponentReflectionTestExtra.ck_eq
  sl    	
  &%D fy)DO2LM% /
	 .
 	I s   #Ac                   V! R 4      ;_uu_ 4       w  r4\        R V\        R\        P                  ! ^4      4      VR7       RRR4       V P	                  XP                  R XR7      . 4       R#   + '       g   i     L5; i)r  rQ   rS   N)r   r   rt   r   r  rY  )r   r]   r   rT   r   s   &&&  r<   #test_check_constraint_no_constraint@ComponentReflectionTestExtra.test_check_constraint_no_constraint
  si    /004GV vryy}-	 1 	

++,<V+L	
 10s   0A..A>		my_inlineMyInlineNconstraint_namer   c                   V! R 4      ;_uu_ 4       w  rE\        R V\        R\        4       RR7      \        R\        4       \        P                  ! RVR7      4      \        R\        ^24      4      VR7       R	R	R	4       XP                  R XR7      pT P                  TR
T;'       g    \        P                  RR/.4       R	#   + '       g   i     LT; i)sa_ccrN   TrO   r   a > 1 AND a < 5r"  rQ   rS   Nrq   rS  a > 1 and a < 5)
r   r   r   rt   r)  r   rY  r  r*   re  r   r]   r   r  rT   r   r  s   &&&&   r<   test_check_constraint_inline9ComponentReflectionTestExtra.test_check_constraint_inline
  s     w''+>FtWYD9I&&) vvbz* (  33GF3K	

 O77txx0	
% ('s   A$CC	my_ck_const	MyCkConstc                V   V! R 4      ;_uu_ 4       w  rE\        R V\        R\        4       4      \        P                  ! RVR7      VR7       RRR4       XP                  R XR7      pT P                  TRT;'       g    \        P                  RR/.4       R#   + '       g   i     LT; i)	r  r   za = 1 OR (a > 2 AND a < 5)r"  rS   Nrq   rS  za = 1 or a > 2 and a < 5)	r   r   r   rt   r)  rY  r  r*   re  r  s   &&&&   r<    test_check_constraint_standalone=ComponentReflectionTestExtra.test_check_constraint_standalone
  s     w''+>FsGI&""0  ( 33GF3K	

 O77txx9	
 ('s   ;BB(	c                   V! R 4      ;_uu_ 4       w  r4\        R V\        R\        4       RR7      \        R\        4       \        P                  ! R4      4      \        R\        4       \        P                  ! RRR	7      4      \        R
\        4       4      \        R\        ^24      4      \        P                  ! RRR	7      \        P                  ! RRR	7      \        P                  ! R
RR	7      VR7       RRR4       XP                  R XR7      pV P                  VRRRR/RRRR/R\        P                  RR/.4       R#   + '       g   i     LT; i)r  rN   TrO   r   r  r  zb > 1 AND b < 5r  r"  r   rQ   some_uqzc > 1 AND c < 5cc1	some_c_uqrS   Nrq   rS  zc > 1 and c < 5zb > 1 and b < 5r  )r   r   r   rt   r)  r   r(  rY  r  r*   re  )r   r]   r   rT   r   r  s   &&&   r<   test_check_constraint_mixed8ComponentReflectionTestExtra.test_check_constraint_mixed  s   w''+>FtWYD9sGIr'9'9:K'LMI&&'8{K
 sGI&vvbz*##F;""#45A##Ck: (& 33GF3K	

	+<=i1BC9.?@	
+ ('s   C$EE	c                   V! R4      ;_uu_ 4       w  r4\        RV\        R\        RR7      \        R\        4      \        R\        4      4      p\        RVP                  P
                  VP                  P                  VP                  P                  4       RRR4       XP                  R4      p\        V^ ,          R	,          . R
O4       R#   + '       g   i     L?; i)ztest for #12894sa_multi_indexColumn1TrO   Column2Column3Index_ExampleNr   )r.  r,  r-  )
r   r   r   r"   r   r.  r,  r-  rM  r   )r   r]   r   rT   r   rM   r  s   &&&    r<   test_index_column_order4ComponentReflectionTestExtra.test_index_column_order4  s     /004GV y't<y'*y'*J $$$$$$	 1 ''(89GAJ~&(IJ 10s   BCC 	c                ~  aa \        R V\        R\        ^4      4      \        R\        ^4      4      \        R\        ^4      4      4      p\        R\        P
                  ! VP                  P                  4      VP                  P                  \        P
                  ! VP                  P                  4      4       Ro\        R\        P                  ! VP                  P                  S4      4       \        RVP                  P                  4       VP                  S4       \        S4      pRRRR.R	R
R/ /.pV3R lpV! V^ ,          4        ! R R\        4      p ! V3R lR\        4      p\        P                  P                   P"                  '       d   RRR. RORV! R4      RV! R4      .R	R
/p	V! V	4       VP%                  ^ V	4       RRRR.RV! RS R24      .R	R
/p
V! V
4       VP'                  V
4       \)        VP+                  R 4      V4       \-        4       p\        R VSR7      pMO\/        R4      ;_uu_ 4        \)        VP+                  R 4      V4       \-        4       p\        R VSR7      pRRR4       V P1                  XVSP2                  P4                  4       R#   + '       g   i     L9; i)r  xyzt_idx
t_idx_longt_idx_2rq   r   r  Fr(  c                    < \         P                  P                  P                  '       d&   . V R &   SP                  P
                   R2. /V R&   R# V P                  R/ 4       R# )r)  _includer(  N)r   rU   r  r5   rv  rq   r  )entryr   s   &r<   completeIndexYComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.completeIndexd  s_    ??GGG+-'(!((--.h7,'(   !2B7r?   c                   &   a  ] tR tRt o R tRtV tR# )[ComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.lower_index_strio  c                `    VP                  4       pR V9   ;'       d    RV9   ;'       g    RV9   # )rO  r3  r4  rO  )r   r   ols   && r<   r  bComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.lower_index_str.__eq__p  s/    [[]"}AA#)*@*@sbyAr?   r@   Nr  rH   s   @r<   lower_index_strr?  o  s     B Br?   rD  c                   .   <a  ] tR tRt o V3R ltRtV tR# )^ComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.coalesce_index_striu  c                D   < R VP                  4       9   ;'       d    SV9   # )coalescerA  )r   r   long_strs   &&r<   r  eComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.coalesce_index_str.__eq__v  s!    !U[[]2HHx57HHr?   r@   Nr  )rI   rI  s   @r<   coalesce_index_strrF  u  s     I Ir?   rK  Nr*  zlower(x)zlower(y)zcoalesce(x, 'z')r   z>Skipped unsupported reflection of expression-based index t_idxa  long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string long string )Nr5  N)r   r   r   r"   r   rO  r   r3  r5  r4  rH  r   r   rV  r   rU    reflect_indexes_with_expressionsr5   insertrB  r   rM  r   r	   !compare_table_index_with_expectedrv  rq   )r   r]   r   r  r   r  r<  rD  rK  
expr_indexexpr_index_longr   r  rI  s   &&f          @r<   %test_reflect_expression_based_indexesBComponentReflectionTestExtra.test_reflect_expression_based_indexesH  sb   3r
#3r
#3r
#
 	gtzz!##%%(!##%%ACCEE1BC'lDMM!##%%:;iJ'z" 	%!2	
	8 	hqk"	Bc 	B	I 	I
 <<DDD 1#J/#J/ 
 %	J *%OOAz* &xj'CD  %O /*OOO,  %x0BsBj9B   D$$S)84Z3*= 	..*++00	
 s   4J,,J<	c                   \        R V\        R\        ^4      4      \        R\        ^4      4      4      p\        RVP                  P
                  4      pR.VP                  VP                  P                  ,          R&   VP                  V4       \        V4      pVP                  R 4      p\        VRRRR.RR.RR	R
\        P                  /.4       \        V^ ,          R
,          RVP                  P                  ,          ,          R.4       \        R \        4       VR7      p\        \!        VP"                  4      ^ ,          P                  VP                  P                  ,          R,          R.4       R# )r  r3  r4  r6  includerq   r   r)  r  Fr(  z
%s_includer   N)r   r   r   r"   r   r3  r(  rv  rq   r   r   rM  r   r*   re  r   r  r  )r   r]   r   r  r   r   rM  r  s   &&&     r<   test_reflect_covering_index8ComponentReflectionTestExtra.test_reflect_covering_index  sO   3r
#3r
#	
 GQSSUU#BEJ--223I>J'z"&&s+ G"SE%ue%txx	
 	N,-z00555 E		
 3
*=Q//
0A0A0F0FG E		
r?   c                   \        R V.\        V4       UUu. uF  w  rE\        RV,          V4      NK  	  uppO5!  pVP                  V4       \	        V4      P                  R 4       Uu. uF  qwR,          NK  	  up# u uppi u upi )r  zt%dr  )r   r  r   r   r   r   )r   r   r]   r   r  type_r  r   s   &&&*    r<   _type_round_trip-ComponentReflectionTestExtra._type_round_trip  s    
 8A7GH7G81fUQY&7GH

 	
#*:#6#B#B3#GH#Ga&		#GHH	 I Is   A>*Bc                    V P                  W\        P                  ! ^^4      4       FQ  p\        V\        P                  4      '       g   Q h\	        VP
                  ^4       \	        VP                  ^4       KS  	  R# )   N)rY  r  r  r7  r   	precisionscale)r   r   r]   typs   &&& r<   test_numeric_reflection4ComponentReflectionTestExtra.test_numeric_reflection  s`    (()"3"3B":
C c9#4#45555r"		1
r?   rX  c                   V P                  WV! ^44      4      ^ ,          p\        V\        P                  4      '       d$   \	        V\        P                  4      '       g   Q hMe\        V\        P
                  4      '       d$   \	        V\        P
                  4      '       g   Q hM"\	        V\        P                  4      '       g   Q h\        VP                  ^44       \	        VP                  \        4      '       g   Q hR# )4   N)
rY  
issubclassr  rv   r7  r  r   r   lengthint)r   r   r]   rX  r_  s   &&&& r<   test_string_length_reflection:ComponentReflectionTestExtra.test_string_length_reflection  s     ##J%)DQGeY..//c9#4#45555y~~..c9>>2222c9#3#34444CJJ#**c****r?   c                   \        R V\        R\        RR7      \        R\        RR7      4      pVP                  V4       \	        \        V4      P                  R 4       Uu/ uF  pVR,          VR,          bK  	  upRRRR/4       R# u upi )	r  r   Trx  r  Frq   ry  N)r   r   r   r   r   r   r   )r   r   r]   r  r   s   &&&  r<   test_nullable_reflection5ComponentReflectionTestExtra.test_nullable_reflection  s    3$/3%0	
 	
 #:.::3??C FS_,? $U#	
s   !B	CASCADEzSET NULLz	NO ACTIONRESTRICTzexpected,ondelete,onupdatec                   / pV'       d   WFR &   V'       d   WVR&   Vf   Tp\        RV\        R\        RR7      RR7       \        RV\        R\        RR7      \        R	\        \        R
RR7      4      \        R\	        ^
4      4      RR7       \        RV\        R\        RR7      \        R\	        ^24      RR7      \        R\        4      \
        P                  ! R.R.3RR/VB RR7       VP                  V4       \        V4      pVP                  R4      ^ ,          R,          p\        V U	u/ uF  qV	,          '       g   K  WV	,          bK  	  up	/ 4       VP                  R4      ^ ,          R,          p\        W4       R# u up	i )ondeleteonupdateNr3  rN   TrO   r   r  x_idzx.idxidr"  testuserrq   Frx  tidztable.idmyfkr2   )r   r   r   r   r   rt   r   r   r   rI  r   )
r   r   r]   r  ro  rp  r2   r   optsr   s
   &&&&&&    r<   test_get_foreign_key_options9ComponentReflectionTestExtra.test_get_foreign_key_options  sn   T "*J"*JH4d3		
 	4d367JvE$BC66":&	
 	4d366":65'"##*,26= 
	
 	J'z" $$W-a0;1AaZQQZ126$$V,Q/	:D 2s   1FF10z'?10'?z1|truez3 + 5z3\+5z(3 * 5)z3\*5zcurrent_timestamp|now|getdate35zdatatype, default, expected_regc                0   \        R V\        R\        RR7      \        RW4R7      4      pVP                  V4       \	        V4      P                  R 4      ^,          R,          p\        P                  ! RRV4      p\        W\        P                  R	7       R
# )r  rN   TrO   thecol)server_defaultr  z	[\(\) \']rs  )flagsN)
r   r   r   r   r   r   r\  r]  r   
IGNORECASE)	r   r]   r   datatyper  expected_regr  r  reflected_sanitizeds	   &&&&&&   r<   test_server_defaults1ComponentReflectionTestExtra.test_server_defaultsd  sy    : 4d38X>	
 	
J'33C8;IF	 ff\2yA$"--Hr?   r@   )8rA   rB   rC   rD   r   r   r  r  r   r  rU   r^  r  "inline_check_constraint_reflectionr   r  r"  r(  indexes_check_column_orderr0  indexes_with_expressionsrQ  r  rU  rY  r  r`  r  r   rv   r  NVARCHARnvarchar_typesNCHARrg  rj  1foreign_key_constraint_option_reflection_ondelete1foreign_key_constraint_option_reflection_onupdate1fk_constraint_option_reflection_ondelete_noaction1fk_constraint_option_reflection_onupdate_restrict1fk_constraint_option_reflection_ondelete_restrictrx  r   rt   r  r   trueexpression_server_defaultsr   r   nowliteral_columnserver_defaultsr  rF   rG   rH   s   @r<   r  r  
  s     $__T5M* + __ !. 11
 2
 88Z0A
 9
@ 11{D3D
 2
4 88
 9
> 00K 1K& ..X
 /X
t 55(
 6(
TI && ' &&			W--<<=	'**99:
+ '
+ &&
 '
  NN		
 NN		
 NN		
 NN		
 NN		
 NN		
 .K&N3O&N3l 	"''$-+	$	"	"'')Y'GGG77		
 GGI77		
 
488:?@c"R%6%6s%;;77		
 3/2 %%I &34Ir?   r  c                   D   a  ] tR tRt o RtRt]R 4       tR tR t	Rt
V tR# )	NormalizedNameTesti  Tc                    \        \        R RR7      V\        R\        RR7      4       \        \        RRR7      V\        R\        RR7      \        R\	        R4      4      4       R# )	r   Tr-  rN   rO   r  t1idzt1.idN)r   r#   r   r   r   r\   s   &&r<   r^    NormalizedNameTest.define_tables  sU    D)4d3	

 	D)4d36:g./		
r?   c                .   \        4       p\        \        R RR7      V\        P                  R7      pVP
                  R,          pVP                  P                  P                  VP                  P                  4      '       g   Q h\        4       pVP                  \        P                  R R7       VP
                  R ,          P                  P                  P                  VP
                  R,          P                  P                  4      '       g   Q hR# )r  Tr  r   r   c                 (    V P                  4       R9   # )r   r   r  rA  )rq   r  s   &&r<   r   INormalizedNameTest.test_reflect_lowercase_forced_tables.<locals>.<lambda>  s    DJJLL,Hr?   )onlyN)r   r   r#   r   r:   r   r   r  r   rN   r  )r   r   t2_reft1_refm3s   &    r<   $test_reflect_lowercase_forced_tables7NormalizedNameTest.test_reflect_lowercase_forced_tables  s    ZD)2VYY
 4xx}}''4444Z


IIH 	 	
 yy  %%0041B1B1E1EFFFFr?   c                   \        \        P                  4      P                  4        Uu. uF  pVP	                  4       R9   g   K  VNK  	  pp\        V^ ,          P                  4       V^ ,          P	                  4       4       \        V^,          P                  4       V^,          P	                  4       4       R# u upi )r   Nr  )r   r   r:   r  rO  r   upper)r   r  
tablenamess   &  r<   r  'NormalizedNameTest.test_get_table_names  s     VYY'779
9wwyL( A9 	 
 	JqM!:a=#6#6#89JqM!:a=#6#6#89
s   B<B<r@   N)denormalized_names)rA   rB   rC   rD   r   r   rE   r^   r  r  rF   rG   rH   s   @r<   r  r    s2     *L $
 
G: :r?   r  c                   p   a  ] tR tRt o R tR tR tR t]P                  P                  R 4       tRtV tR# )	ComputedReflectionTesti  c                4   \        \        P                  4      pVP                  R 4      pV Uu/ uF  q3R,          VbK  	  pp\	        RVR,          R,          9   4       \        VR,          R,          R4       \        VR,          R,          R4       R# u upi )computed_default_tablerq   42with_defaultr  normalNcomputed_col)r   r   r:   r   r)   r   )r   r   r  r   col_datas   &    r<   !test_computed_col_default_not_set8ComputedReflectionTest.test_computed_col_default_not_set  s    vyy! 89*./$QfIqL$/0;;<HXy)40H^$Y/6 0s   Bc                   \        \        P                  4      pVP                  R 4      pV Uu/ uF  q3R,          VbK  	  ppR F  p\	        RWE,          9  4       K  	  VR,          p\	        RV9   4       \	        RVR,          9   4       \        V P                  VR,          R,          4      R4       \        RVR,          9   \        P                  P                  P                  4       \        P                  P                  P                  '       d?   \        VR,          R,          \        P                  P                  P                  4       R# R# u upi )	r  rq   computedr  rS  	normal+42	persistedN)rN   r  r  )r   r   r:   r   r)   r   r  r   rU   "computed_columns_reflect_persistedr5   "computed_columns_default_persisted)r   r   r  r   rQ   r   compDatas   &      r<    test_get_column_returns_computed7ComputedReflectionTest.test_get_column_returns_computed  s   vyy! 89&*+d&	1d+3CJdi/0 4'
h&'	Xj112DNN8J/	:;[I8J//??GG	
 >>FFF$[1  CCKK G ,s   Ec                *   \        R W,          9   4       W,          R ,          p\        V P                  VR,          4      V4       \        P                  P
                  P                  '       d$   \        RV9   4       \        VR,          V4       R# R# )r  rS  r  N)r)   r   r  r   rU   r  r5   r   )r   rQ   columnrS  r  r  s   &&&&& r<   check_column#ComputedReflectionTest.check_column  so    
dl*+<
+DNN8I./9>>FFFK8+,%y1 Gr?   c                   \        \        P                  4      pVP                  R 4      pV Uu/ uF  q3R,          VbK  	  ppV P	                  VRR\
        P                  P                  P                  4       \
        P                  P                  P                  '       d   V P	                  VRRR4       \
        P                  P                  P                  '       d   V P	                  VRRR	4       R
# R
# u upi )computed_column_tablerq   computed_no_flagr  computed_virtualznormal+2Fcomputed_storedz	normal-42TN)r   r   r:   r   r  r   rU   r  r5   computed_columns_virtualcomputed_columns_storedr   r   r  r   rQ   s   &    r<   !test_get_column_returns_persisted8ComputedReflectionTest.test_get_column_returns_persisted  s    vyy! 78&*+d&	1d+??GG		
 44<<<"	 33;;;!	 < ,s   C9c                   \        \        P                  4      pVP                  R \        P                  R7      pV Uu/ uF  q3R,          VbK  	  ppV P                  VRR\        P                  P                  P                  4       \        P                  P                  P                  '       d   V P                  VRRR4       \        P                  P                  P                  '       d   V P                  VRR	R
4       R# R# u upi )r  rS   rq   r  z	normal/42r  znormal/2Fr  z	normal*42TN)r   r   r:   r   rW   r  r   rU   r  r5   r  r  r  s   &    r<   -test_get_column_returns_persisted_with_schemaDComputedReflectionTest.test_get_column_returns_persisted_with_schema  s    vyy!#F,>,>   
 '++d&	1d+??GG		
 44<<<"	 33;;;!	 < ,s   D	r@   N)rA   rB   rC   rD   r  r  r  r  r   rU   rV   r  rF   rG   rH   s   @r<   r  r    s9     7*26  r?   r  c                      a  ] tR tRt o R;ttRtR	t]R 4       t	R t
R t]P                  P                  R 4       tRtV tR# )
IdentityReflectionTesti  NTc                   \        R V\        R\        4      \        R\        \        4       4      4       \        RV\        R\        \        R^^R
^*R^R7      4      4       \        P
                  P                  P                  '       dI   \        R V\        R\        4      \        R\        \        R^R7      4      \        P                  R7       R	# R	# )r   r  id1r  r   Talwaysr   	incrementminvaluemaxvaluecyclecache)r  r   rS   N)
r   r   r   r   r   rU   rV   r5   r   rW   r\   s   &&r<   r^   $IdentityReflectionTest.define_tables   s    8W%5'8:.		
 		
" ##+++x)ugxt2'FG)) ,r?   c                V   \         P                  P                  P                  '       d   Rp\	        V4       F  pWT9  g   K  VP                  V4       K  	  V'       d   \        \        V4      \        V4      4       V Fb  pVR8X  d   \        W,          W%,          8*  4       K&  VR9   d   \        W,          W%,          8  4       KI  \        W,          W%,          V4       Kd  	  R# \        W4       R# \        VR,          VR,          4       \        VR,          VR,          4       R# )r  r   r  r  Nr  >   r  r  )	r   rU   identity_columns_standardr5   r  r  r   r  r)   )r   r  r  approxcommon_keysr   s   &&&&  r<   checkIdentityReflectionTest.checkB  s    55===K %['IIaL ! CJC)AJCF 2333CF 23EHcfa0  EgG-k"C$45r?   c                   \        \        P                  4      pVP                  R 4      VP                  R4      ,           pV EF  pVR,          R8X  d   \	        RV9   4       K"  VR,          R8X  dh   RV9   d   \        VR,          4       \        VR,          R4       \        RV9   4       V P                  VR,          \        R	^^^R
R	^R7      RR7       K  VR,          R8X  g   K  RV9   d   \        VR,          4       \        VR,          R4       \        RV9   4       V P                  VR,          \        R^^R^*R^R7      R	R7       EK  	  R# )r   r  rq   r  r   r  r  r  NFr  Tr  r   r  )	r   r   r:   r   r'   r)   r   r  r8   r   r   r  r   s   &   r<   r   ,IdentityReflectionTest.test_reflect_identity_  sA   vyy!%(8(8(>>C6{h&s*+V%"c)C01C	ND)
c)*


O$"#!"!+#     V%"c)C01C	ND)
c)*


O#"#!#!#" !  5 r?   c                   \        \        P                  4      pVP                  R \        P                  R7      pV F  pVR,          R8X  d   \        RV9   4       K!  VR,          R8X  g   K1  RV9   d   \        VR,          4       \        VR,          R4       \        RV9   4       V P                  VR,          \        R	^^^R
R^R7      R	R7       K  	  R# )r   rS   rq   r  r   r  r  r  NTr  Fr  r  )
r   r   r:   r   rW   r'   r)   r   r  r8   r  s   &   r<   test_reflect_identity_schema3IdentityReflectionTest.test_reflect_identity_schema  s    vyy!V-?-?@C6{h&s*+V%"c)C01C	ND)
c)*


O# "#!"!+#     r?   r@   )r  r  )rA   rB   rC   rD   r  r   r   r   rE   r^   r  r   r   rU   rV   r  rF   rG   rH   s   @r<   r  r    sX      $$K+ $;L B6:*X  r?   r  c                      a  ] tR tRt o Rt]R 4       t]P                  P                  R 4       t
]P                  P                  R 4       tRtV tR# )CompositeKeyReflectionTesti  Tc                <   \        R V\        R\        4      \        R\        4      \        R\        P                  ! ^4      4      \
        P                  ! RRRRR7      RRR7      p\        R	V\        R\        RR
7      \        R\        4      \        R\        4      \        R\        P                  ! ^4      4      \
        P                  ! . ROVP                  P                  VP                  P                  VP                  P                  .RR7      RRR7	       R# )tb1rN   attrrq   pk_tb1r"  NTr  tb2rO   pidpattrpnamefk_tb1_name_id_attrr  r  r  )r   r   r   r  rv   rt   r'  r   r   rq   rN   r  )r;   r]   r  s   && r<   r^   (CompositeKeyReflectionTest.define_tables  s    4!67#69,,R01##FD&xH	
 	4d35'"7G$7I--b12##)SUUXXsuuzz2*
 	
r?   c                    \        V4      pVP                  V P                  P                  P                  4      p\        VP                  R 4      . RO4       R# )r  Nrq   rN   r  )r   rE  r   r  rq   r   r3  )r   r   r   rP   s   &&  r<   test_pk_column_order/CompositeKeyReflectionTest.test_pk_column_order  sA     z",,T[[__-A-ABKOO124JKr?   c                *   \        V4      pVP                  V P                  P                  P                  4      p\        \        V4      ^4       V^ ,          p\        VP                  R4      . RO4       \        VP                  R4      . RO4       R# )rw  r  r  Nr  r  )r   rI  r   r  rq   r   r  r3  )r   r   r   foreign_keysr  s   &&   r<   test_fk_column_order/CompositeKeyReflectionTest.test_fk_column_order  sn     z",,T[[__-A-ABCq!QEII()+ABEII+,.GHr?   r@   N)rA   rB   rC   rD   r   rE   r^   r   rU   r  r  r
  r  rF   rG   rH   s   @r<   r  r    sa      $
 
6 77L 8L 77I 8Ir?   r  )rm  r  r  r  r   rK   r   r  r  r  r  r  )Ir  r  r\  r6   rt   rs  r   r   r   r   r   r   r	   r
   r   	provisionr   r   rT   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  rv  r   r   r   excr   r    r!   r"   sql.elementsr#   
sql.schemar$   r%   r&   r'   r(   r)   r*   r]   ru  
TablesTestr,   rK   r   TestBaser   r  r  rk  rm  r  r  r  ComputedReflectionFixtureTestr  r  r  __all__r@   r?   r<   <module>r	     s     	       $    + /              "    ! # *   ' & & %     %h11  U:* U:pJ
8&& J
ZdG8,, dGN#GH-- #GLT0X00 T0n1<n0n.E n0b?2,** 2,jsI?H4E4E sIl(:,, (:V^XCC ^BJX00 JZ.I!4!4 .Ibr?   