ó
    øÞ jóâ ã                   ó  • S SK r S SKrS SKrS SKrSSKJr  SSKJr  SSKJr  SSKJ	r	  SSKJ
r
  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ r!  SSK"J#r#  SSK"J$r$  SSK"J%r%  SS K&J'r'  SS!K&J(r(  SS"KJ)r)  SS#KJ*r*  SS$K+J,r,  SS%K-J.r.  SS&KJ/r/  SS'KJ0r0  SS(KJ1r1  SS)KJ2r2  SS*KJ3r3  SS+KJ4r4  S,u  r5r6 " S- S.\Rn                  5      r8 " S/ S0\85      r9 " S1 S2\Rn                  5      r: " S3 S4\Rv                  5      r< " S5 S6\Rv                  5      r= " S7 S8\Rn                  5      r>S9 r? " S: S;\0\85      r@ " S< S=\Rv                  5      rA " S> S?\/\Rv                  5      rB " S@ SA\Rn                  5      rC " SB SC\Rˆ                  5      rE " SD SE\Rn                  5      rF " SF SG\Rn                  5      rGSHrHg)Ié    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)Úmock©NNc                   ó$   • \ rS rSr\S 5       rSrg)ÚOneConnectionTablesTesté:   c                 óÌ   • [         R                  R                  R                  (       a,  SSKJn  [        R                  " [        UR                  SS9S9$ [         R                  $ )Nr   )ÚpoolÚclass)Ú	poolclassÚscope)Úoptions)r   ÚrequirementsÚindependent_connectionsÚenabledÚ
sqlalchemyr2   r   Útesting_engineÚdictÚ
StaticPoolÚdb)Úclsr2   s     Úb/var/www/html/gaurav/venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_reflection.pyÚ
setup_bindÚ"OneConnectionTablesTest.setup_bind;   sI   € ô
 ×Ñ×6Ñ6×>×>Ý'ä×)Ò)Ü t§¡¸gÑFñð ô —9‘9Ðó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚclassmethodrA   Ú__static_attributes__rD   rC   r@   r/   r/   :   s   † Øñó órC   r/   c                   óN  • \ rS rSrSrSr\S 5       r\S 5       r\S 5       r	\S 5       r
S rS	 r\R                  R                  S
 5       r\R                  R                  S 5       r\R                  R$                  S 5       r\R                  R(                  S 5       r\R                  R(                  \R                  R,                  \R                  R.                  S 5       5       5       r\R                  R$                  \R                  R                  S 5       5       rSrg)ÚHasTableTestéJ   TNc                 óþ  • [        SU[        S[        SS9[        S[        S5      5      5        [        R
                  R                  R                  (       a;  [        SU[        S[        SS9[        S[        S5      5      [        R                  S9  [        R
                  R                  (       a  U R                  U5        [        R
                  R                  R                  (       a  U R                  U5        g g )	NÚ
test_tableÚidT©Úprimary_keyÚdataé2   Útest_table_s©Úschema)r   r   r   r   r   ÚrequiresÚschemasr9   r   Útest_schemaÚview_reflectionÚdefine_viewsÚhas_temp_tableÚdefine_temp_tables©r?   Úmetadatas     r@   Údefine_tablesÚHasTableTest.define_tablesO   s¹   € äØØÜ�4œ¨dÑ3Ü�6œ6 "›:Ó&ô		
ô ×Ñ×#Ñ#×+×+ÜØØÜ�tœW°$Ñ7Ü�vœv b›zÓ*Ü×)Ñ)òô ×Ñ×+×+Ø×Ñ˜XÔ&Ü×Ñ×*Ñ*×2×2Ø×"Ñ" 8Õ,ð 3rC   c                 óÔ  • Sn[         R                  " US[        U5      5        [         R                  " US[        S5      5        [        R                  R
                  R                  (       a{  S[        R                  < S[        R                  < S3n[         R                  " US[        U5      5        [         R                  " US[        S[        R                  -  5      5        g g )	Nz1CREATE 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.vv)	r   Úlistenr#   r   rX   rY   r9   r   rZ   )r?   r`   Úquerys      r@   r\   ÚHasTableTest.define_viewse   s§   € àCˆä�Š�X˜~¬s°5«zÔ:Ü�Š�X˜}¬c°.Ó.AÔBä×Ñ×#Ñ#×+×+Ð+ô ×&Ô&Ü×&Ô&ðð ô �LŠL˜ >´3°u³:Ô>Ü�LŠLØØÜÐ%¬×);Ñ);Ñ<Ó=õð ,rC   c                 ób   • [        [        [        R                  S[        R                   35      $ ©NÚ	user_tmp_©r   r   r>   Úident©r?   s    r@   Útemp_table_nameÚHasTableTest.temp_table_name{   ó%   € ä"Ü”F—I‘I ¬6¯<©<¨.Ð9ó
ð 	
rC   c                 ó6  • [        [        [        R                  5      nU R                  5       n[	        UU[        S[        R                  SS9[        S[        R                  " S5      5      40 UD6n[        R                  R                  R                  (       a~  [        R                  R                  R                  (       aT  [        R                  " US[!        S[        R"                  -  5      5        [        R                  " US[!        S	5      5        g g g )
NrP   TrQ   ÚnamerT   rd   ú=create temporary view user_tmp_v as select * from user_tmp_%sre   údrop view user_tmp_v)r   r   r>   rp   r   r   ÚsaÚINTÚVARCHARr   rX   r[   r9   Útemporary_viewsr   rg   r#   rn   ©r?   r`   ÚkwÚ
table_nameÚuser_tmps        r@   r^   ÚHasTableTest.define_temp_tables�   sÕ   € ä$¤V¬V¯Y©YÓ7ˆØ×(Ñ(Ó*ˆ
ÜØØÜ�4œŸ™¨TÑ2Ü�6œ2Ÿ:š: b›>Ó*ñ	
ð
 ñ
ˆô ×Ñ×,Ñ,×4×4Ü× Ñ ×0Ñ0×8×8ä�LŠLØØÜð0Ü28·,±,ñ?óôô �LŠL˜ =´#Ð6LÓ2MÕNð 9ð 5rC   c                 ó¦  • [         R                  R                  5        n[        [         R                  R                  R                  US5      5        [        [         R                  R                  R                  US5      5        [        [         R                  R                  R                  US5      5        S S S 5        g ! , (       d  f       g = f)NrO   rU   Únonexistent_table)r   r>   Úbeginr+   ÚdialectÚ	has_tabler)   ©ÚselfÚconns     r@   Útest_has_tableÚHasTableTest.test_has_tableš   s|   € Ü�Y‰Y�_‰_Ô $Ü”F—I‘I×%Ñ%×/Ñ/°°lÓCÔDÜ”V—Y‘Y×&Ñ&×0Ñ0°°~ÓFÔGÜ”V—Y‘Y×&Ñ&×0Ñ0°Ð7JÓKÔL÷ ×Öús   ŸBCÃ
Cc                 ó"  • [        [        R                  5      n[        UR	                  S5      5        [        SU[        S[        5      5      n[        UR	                  S5      5        UR                  [        R                  5         [        UR	                  S5      5        UR                  5         [        UR	                  S5      5        UR                  [        R                  5        g ! UR                  [        R                  5        f = f)NrO   Ú	new_tableÚcol)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«   € Ü”v—y‘yÓ!ˆÜ�—‘˜|Ó,Ô-Ü�; ¬&°¼Ó*@ÓAˆÜ�—‘ Ó,Ô-Ø
�	‰	”&—)‘)Ôð	Ü�T—^‘^ KÓ0Ô1Ø×ÑÔÜ�D—N‘N ;Ó/Ô0à�G‰G”F—I‘IÕøˆB�G‰G”F—I‘IÕús   Â	AC- Ã-!Dc           	      óô  • [         R                  R                  5        n[        [         R                  R                  R                  US[         R                  S95        [        [         R                  R                  R                  US[         R                  S95        [        [         R                  R                  R                  US[         R                  S95        S S S 5        g ! , (       d  f       g = f)NrO   rV   rU   r�   )r   r>   r‚   r)   rƒ   r„   rZ   r+   r…   s     r@   Útest_has_table_schemaÚ"HasTableTest.test_has_table_schema­   s¹   € ä�Y‰Y�_‰_Ô $ÜÜ—	‘	×!Ñ!×+Ñ+Ø˜,¬v×/AÑ/Að ,ð ôô
 Ü—	‘	×!Ñ!×+Ñ+Ø˜.´×1CÑ1Cð ,ð ôô
 Ü—	‘	×!Ñ!×+Ñ+ØÐ-´f×6HÑ6Hð ,ð ô÷ ×Öús   ŸCC)Ã)
C7c           	      óØ   • [         R                  R                  5        n[        [         R                  R                  R                  USSS95        S S S 5        g ! , (       d  f       g = f)NrO   Únonexistent_schemarV   )r   r>   r‚   r)   rƒ   r„   r…   s     r@   Ú!test_has_table_nonexistent_schemaÚ.HasTableTest.test_has_table_nonexistent_schemaÀ   sK   € ä�Y‰Y�_‰_Ô $ÜÜ—	‘	×!Ñ!×+Ñ+Ø˜,Ð/Cð ,ð ô÷ ×Öús   Ÿ3AÁ
A)c                 óN   • [        U5      n[        UR                  S5      5        g ©NÚvv©r   r+   r„   ©r†   Ú
connectionr�   s      r@   Útest_has_table_viewÚ HasTableTest.test_has_table_viewÉ   s   € ä�zÓ"ˆÜ�—‘˜tÓ$Õ%rC   c                 ón   • [        U5      nU R                  5       n[        UR                  U5      5        g ©N)r   rp   r+   r„   )r†   r    r�   rp   s       r@   Útest_has_table_temp_tableÚ&HasTableTest.test_has_table_temp_tableÎ   s+   € ä�zÓ"ˆØ×.Ñ.Ó0ˆÜ�—‘˜Ó/Õ0rC   c                 óN   • [        U5      n[        UR                  S5      5        g ©NÚ
user_tmp_vrž   rŸ   s      r@   Útest_has_table_temp_viewÚ%HasTableTest.test_has_table_temp_viewÔ   s   € ô �zÓ"ˆÜ�—‘˜|Ó,Õ-rC   c                 ól   • [        U5      n[        UR                  S[        R                  5      5        g rœ   )r   r+   r„   r   rZ   rŸ   s      r@   Útest_has_table_view_schemaÚ'HasTableTest.test_has_table_view_schemaÛ   s'   € ô �zÓ"ˆÜ�—‘˜t¤V×%7Ñ%7Ó8Õ9rC   rD   )rE   rF   rG   rH   Ú__sparse_driver_backend__Úrun_deletesrI   ra   r\   rp   r^   rˆ   r’   r   rX   rY   r•   r™   Úviewsr¡   r]   r¥   r[   rz   rª   r­   rJ   rD   rC   r@   rL   rL   J   sd  † Ø $Ðà€Kàñ-ó ð-ð* ñó ðð* ñ
ó ð
ð
 ñOó ðOò0Mòð ×Ñ×Ññó ðð$ ×Ñ×Ññó ðð ×Ñ×Ññ&ó ð&ð ×Ñ×$Ñ$ñ1ó %ð1ð
 ×Ñ×$Ñ$Ø×Ñ×%Ñ%Ø×Ñ×%Ñ%ñ.ó &ó &ó %ð.ð ×Ñ×ÑØ×Ñ×Ññ:ó ó ó:rC   rL   c                   ó¨   • \ rS rSrSrSr\S 5       r\R                  " SSSS9r
S	 r\
S
 5       r\R                  R                  \
S 5       5       rSrg)ÚHasIndexTestéâ   T)Úindex_reflectionc                 óÒ  • [        SU[        S[        SS9[        S[        S5      5      [        S[        S5      5      5      n[	        SUR
                  R                  5        [        R                  R                  R                  (       a\  [        SU[        S[        SS9[        S[        S5      5      [        R                  S	9n[	        S
UR
                  R                  5        g g )NrO   rP   TrQ   rS   rT   Údata2Úmy_idxrV   Úmy_idx_s)r   r   r   r   r$   ÚcrS   r   rX   rY   r9   r   rZ   )r?   r`   Útts      r@   ra   ÚHasIndexTest.define_tablesæ   s¯   € äØØÜ�4œ¨dÑ3Ü�6œ6 "›:Ó&Ü�7œF 2›JÓ'ó
ˆô 	ˆh˜Ÿ™Ÿ	™	Ô"ä×Ñ×#Ñ#×+×+ÜØØÜ�tœW°$Ñ7Ü�vœv b›zÓ*Ü×)Ñ)ñˆBô �*˜bŸd™dŸi™iÕ(ð ,rC   rƒ   Ú	inspectorÚkind©Úargnamesc                 óF   ^• US:X  a  U4S j$ [        T5      R                  $ )Nrƒ   c                  ó`   >• [         R                  R                  R                  " T/U Q70 UD6$ r¤   )r   r>   rƒ   Ú	has_index)ÚaÚkr‡   s     €r@   Ú<lambda>Ú)HasIndexTest._has_index.<locals>.<lambda>ÿ   s$   ø€ ¤6§9¡9×#4Ñ#4×#>Ò#>¸tÐ#MÀaÒ#MÈ1Ò#MrC   )r   rÃ   )r†   r¾   r‡   s     `r@   Ú
_has_indexÚHasIndexTest._has_indexý   s!   ø€ Ø�9ÓÜMÐMä˜4“=×*Ñ*Ð*rC   c           	      ó,  • U R                  X5      nU" SS5      (       d   eU" SS5      (       a   eU" SS5      (       a   eU" SS5      (       a   eU" SS5      (       a   eU" SS5      (       a   e[        SU R                  R                  R                  R
                  5      n[        SU[        S	[        5      [        SS	5      5      nUR                  U5        UR                  U5         US
:X  a:  U" SS5      (       a   eU" SS5      (       a   eUR                  R                  5         U" SS5      SL d   eU" SS5      SL d   e UR                  U5        UR                  U5        g ! UR                  U5        UR                  U5        f = f)NrO   r¸   r¹   r�   Únonexistent_idxÚmy_idx_2Útest_table_2Úmy_idx_3Úfoor½   T)rÈ   r$   ÚtablesrO   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Ó1°TÒ9Ð9Ð9Ù˜¨
Ó3°tÒ;Ð;Ñ;à�H‰H�ZÔ Ø�H‰H�ZÕ øð �H‰H�ZÔ Ø�H‰H�ZÕ ús   Ã/AE/ Å/$Fc                 ó  • U R                  X5      nU" SS[        R                  S9(       d   eU" SS[        R                  S9(       a   eU" SS[        R                  S9(       a   eU" SS[        R                  S9(       a   eg )NrO   r¹   rV   r¸   r�   Únonexistent_idx_s)rÈ   r   rZ   )r†   r¾   r    rÒ   s       r@   Útest_has_index_schemaÚ"HasIndexTest.test_has_index_schema!  sˆ   € ð �‰˜tÓ0ˆÙ�L *´V×5GÑ5G×HÐHÐHÙ˜ h´v×7IÑ7I×JÐJÐJÙØ ´F×4FÑ4F÷
ð 	
ð 
ñ ØÐ-´f×6HÑ6H÷
ð 	
ð 
ð 
rC   rD   N)rE   rF   rG   rH   r¯   Ú__requires__rI   ra   r   Úcombinationsr¾   rÈ   rÕ   rX   rY   rÙ   rJ   rD   rC   r@   r³   r³   â   sv   † Ø $ÐØ(€Làñ)ó ð)ð( ×Ò 	¨;ÀÑH€Dò+ð 
ñ!ó 
ð!ð: ×Ñ×ÑØ	ñ	
ó 
ó ó	
rC   r³   c                   ót  • \ rS rSrSrS rS r\R                  " SSS/5      \" 5       \" 5       \R                  R                  S 5       5       5       5       r\" 5       \" 5       \R                  R                  S 5       5       5       r\" 5       \" 5       \R                  R                  S	 5       5       5       rS
rg)ÚBizarroCharacterTesti/  Tc                  ó2   • [         R                  " SSSSSS9$ )N)Ú	plainname)z(3))zcol%p)z[brack]Ú
columnnamer¿   ©r   rÜ   rD   rC   r@   Úcolumn_namesÚ!BizarroCharacterTest.column_names3  s$   € Ü×#Ò#ØØØØØ!ñ
ð 	
rC   c                  ó2   • [         R                  " SSSSSS9$ )N)Úplain)z(2))z
per % cent)z
[brackets]Ú	tablenamer¿   râ   rD   rC   r@   Útable_namesÚ BizarroCharacterTest.table_names<  s$   € Ü×#Ò#ØØØØØ ñ
ð 	
rC   Úuse_compositeFc                 ób  • [        UU[        U[        SSS9SS9nU(       a  UR                  [        S[        SS95        U(       az  [        SU[        S[        SS9[        S[        5      [        S	[        5      [        R
                  " SS	/UR                  R                  UR                  R                  /5      SS9  OA[        SU[        S[        SS9[        S[        UR                  R                  5      5      SS9  UR                  U5        [        5       n[        SXqS
9nUR                  U   n	UR                  R                  R                  U	R                  S   5      (       d   eU(       a:  UR                  R                  R                  U	R                  S   5      (       d   egg)ztests for #10275rP   T)ÚkeyrR   ©Útest_needs_fkÚid2rQ   ÚotherÚrefÚref2©Úautoload_withr   é   N)r   r   r   Úappend_columnrw   ÚForeignKeyConstraintrº   rP   rï   r   Ú
create_allr   rÐ   rñ   Ú
referencesrò   )
r†   r    r`   rê   rç   rá   r»   Úm2Úo2Út1s
             r@   Útest_fk_refÚ BizarroCharacterTest.test_fk_refE  s[  € ô ØØÜ�:œw¨D¸dÑCØñ	
ˆö Ø×ÑœV E¬7ÀÑEÔFæÜØØÜ�tœW°$Ñ7Ü�uœgÓ&Ü�vœwÓ'Ü×'Ò'¨°¨¸"¿$¹$¿'¹'À2Ç4Á4Ç8Á8Ð9LÓMØ"óô ØØÜ�tœW°$Ñ7Ü�uœj¨¯©¯©Ó1Ó2Ø"òð 	×Ñ˜JÔ'ä‹Zˆä�7˜BÑ9ˆØ�Y‰Y�yÑ!ˆà�t‰t�x‰x×"Ñ" 2§4¡4¨¡7×+Ñ+Ð+Ð+ÞØ—4‘4—9‘9×'Ñ'¨¯©¨Q©×0Ñ0Ð0Ñ0ð rC   c                 óÊ   • [        UU[        U[        [        5       SS95        UR	                  U5        [        U5      n[        UR                  U5      S   S   S   S5        g )NTrQ   r   ÚidentityÚstartrõ   ©r   r   r   r   rø   r   r   Úget_columns©r†   rç   rá   r    r`   r�   s         r@   Útest_reflect_identityÚ*BizarroCharacterTest.test_reflect_identityt  s`   € ô 	ØØÜ�:œw¬«
ÀÑEô	
ð
 	×Ñ˜JÔ'Ü�zÓ"ˆäˆD×Ñ˜YÓ'¨Ñ*¨:Ñ6°wÑ?ÀÕCrC   c                 óÎ   • [        UU[        S[        SS9[        U[        SS95        UR                  U5        [	        U5      n[        UR                  U5      S   S   S5        g )NrP   TrQ   úsome comment©Úcommentrõ   r
  ©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°~ÕFrC   rD   N)rE   rF   rG   rH   r¯   rã   rè   r   Ú	variationrX   Ú!foreign_key_constraint_reflectionrý   Úidentity_columnsr  Úcomment_reflectionr  rJ   rD   rC   r@   rÞ   rÞ   /  sÌ   † à $Ðò
ò
ð ×Ò�¨¨u¨Ó6Ùƒ^Ùƒ]Ø×Ñ×7Ñ7ñ)1ó 8ó ó ó 7ð)1ñV ƒ^Ùƒ]Ø×Ñ×&Ñ&ñDó 'ó ó ðDñ ƒ^Ùƒ]Ø×Ñ×(Ñ(ñGó )ó ó óGrC   rÞ   c                   ó°   • \ rS rSrSrSr\R                  S 5       r\R                  R                  S 5       r\R                  R                  S 5       rSrg)	ÚTempTableElementsTesti–  T)Útemp_table_reflectionc                 ób   • [        [        [        R                  S[        R                   35      $ )NÚ
ident_tmp_rm   ©r†   s    r@   rç   ÚTempTableElementsTest.tablenameœ  s%   € ä"Ü”F—I‘I ¬F¯L©L¨>Ð:ó
ð 	
rC   c                 óÊ   • [        UU[        S[        [        5       SS95        UR	                  U5        [        U5      n[        UR                  U5      S   S   S   S5        g )NrP   TrQ   r   r   r  rõ   r  ©r†   rç   r    r`   r�   s        r@   r  Ú+TempTableElementsTest.test_reflect_identity¢  s^   € äØØÜ�4œ¤(£*¸$Ñ?ô	
ð
 	×Ñ˜JÔ'Ü�zÓ"ˆäˆD×Ñ˜YÓ'¨Ñ*¨:Ñ6°wÑ?ÀÕCrC   c                 óÎ   • [        UU[        S[        SS9[        S[        SS95        UR                  U5        [	        U5      n[        UR                  U5      S   S   S5        g )	NrP   TrQ   Úfoobarr  r	  rõ   r
  r  r  s        r@   r  Ú+TempTableElementsTest.test_reflect_comments®  sa   € äØØÜ�4œ¨dÑ3Ü�8œW¨nÑ=ô		
ð 	×Ñ˜JÔ'Ü�zÓ"ˆäˆD×Ñ˜YÓ'¨Ñ*¨9Ñ5°~ÕFrC   rD   N)rE   rF   rG   rH   r¯   rÛ   r   Úfixturerç   rX   r  r  Útemp_table_comment_reflectionr  rJ   rD   rC   r@   r  r  –  sg   † à $Ðà-€Là‡_�_ñ
ó ð
ð
 ×Ñ×&Ñ&ñ	Dó 'ð	Dð ×Ñ×3Ñ3ñ
Gó 4ó
GrC   r  c                   óî  • \ rS rSrSrSr\S 5       rS r\S 5       r	\\
R                  R                  S 5       5       r\S 5       r\S	 5       r\\
R                  R                   S
 5       5       r\\
R                  R$                  S 5       5       r\\
R                  R(                  S 5       5       r\\
R                  R,                  S 5       5       r\\
R                  R0                  S 5       5       rSrg)ÚQuotedNameArgumentTesti¼  ÚonceTc                 ó,  • [        SU[        S[        5      [        S[        S5      5      [        S[        S5      5      [        S[        5      [        R
                  " SSS9[        R                  " S	S5      [        R                  " SS
S9[        R                  " S/S/SS9[        R                  " SSS9SSS9  [        R                  R                  R                  (       a»  [        SU[        S[        5      [        S[        S5      5      [        S[        S5      5      [        S[        5      [        R
                  " SSS9[        R                  " SS5      [        R                  " SSS9[        R                  " S/S/SS9[        R                  " SSS9SSS9  [        SU[        S[        SS9[        S[        5      SS9  [        R                  R                  R                  (       Ga#  [        R                  R                  R                  (       a  SS/nOS/nU Hë  nS[        R                   R"                  R$                  R'                  SU-  5      < S[        R                   R"                  R$                  R'                  U5      < 3n[(        R*                  " US[-        U5      5        [(        R*                  " US [-        S![        R                   R"                  R$                  R'                  SU-  5      -  5      5        Mí     g g )"Núquote ' onerP   rt   rT   rS   Ú
related_idzpk quote ' one©rt   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ÚrelatedrQ   rí   rf   úview %sú AS SELECT * FROM rd   re   zDROP VIEW %s)r   r   r   r   rw   ÚPrimaryKeyConstraintr$   ÚUniqueConstraintr÷   ÚCheckConstraintr   rX   Úsymbol_names_w_double_quoter9   Úview_column_reflectionr   r>   rƒ   Úidentifier_preparerÚquoter   rg   r#   )r?   r`   Únamesrt   rh   s        r@   ra   Ú$QuotedNameArgumentTest.define_tablesÀ  s”  € äØØÜ�4œÓ!Ü�6œ6 "›:Ó&Ü�6œ6 "›:Ó&Ü�<¤Ó)Ü×#Ò# DÐ/?Ñ@Ü�HŠHÐ% vÓ.Ü×ÒØØ$ñô ×#Ò#Ø�˜˜Ð-=ñô ×Ò˜Ð5EÑFØ.Øò%	
ô* ×Ñ×7Ñ7×?×?ÜØØÜ�tœWÓ%Ü�vœv b›zÓ*Ü�vœv b›zÓ*Ü�|¤WÓ-Ü×'Ò'¨Ð3CÑDÜ—’Ð)¨6Ó2Ü×#Ò#ØØ(ñô ×'Ò'Ø�F˜\˜NÐ1Añô ×"Ò" ?Ð9JÑKØ2Ø"ò%ô* 	ØØÜ�4œ¨dÑ3Ü�9œgÓ&Øò	
ô ×Ñ×2Ñ2×:×:Ð:Ü×Ñ×;Ñ;×C×Cà!Ø!ð‘ð "ð�ó ‘ä—I‘I×%Ñ%×9Ñ9×?Ñ?Ø! DÑ(öô —I‘I×%Ñ%×9Ñ9×?Ñ?ÀÕEð	�ô —’˜X ~´s¸5³zÔBÜ—’ØØ!ÜØ&Ü Ÿ)™)×+Ñ+×?Ñ?×EÑEØ%¨Ñ,óñóö	ò ð ;rC   c                 óp   • [         R                  " SS[         R                  R                  45      " U 5      $ )N)r%  r(  )r   rÜ   rX   r/  )Úfns    r@   Úquote_fixturesÚ%QuotedNameArgumentTest.quote_fixtures  s6   € Ü×#Ò#ØØœG×,Ñ,×HÑHÐIô
ð óð 	rC   c                 óR  • [        [        R                  5      n[        R                  R
                  R                  (       a+  UR                  U5      n[        [        U[        5      5        g [        [        5         UR                  U5        S S S 5        g ! , (       d  f       g = fr¤   )r   r   r>   r   rX   Úreflect_table_optionsr9   Úget_table_optionsr+   Ú
isinstancer<   r   ÚNotImplementedError)r†   rt   r�   Úress       r@   Útest_get_table_optionsÚ-QuotedNameArgumentTest.test_get_table_options  sg   € ä”v—y‘yÓ!ˆä×Ñ×1Ñ1×9×9Ø×(Ñ(¨Ó.ˆCÜ”J˜s¤DÓ)Õ*äÔ2Õ3Ø×&Ñ& tÔ,÷ 4×3Ö3ús   Á=BÂ
B&c                 ól   • [        [        R                  5      nUR                  SU-  5      (       d   eg )Nr*  )r   r   r>   Úget_view_definition©r†   rt   r�   s      r@   Útest_get_view_definitionÚ/QuotedNameArgumentTest.test_get_view_definition$  s.   € ô ”v—y‘yÓ!ˆØ×'Ñ'¨	°DÑ(8×9Ñ9Ð9Ñ9rC   c                 óf   • [        [        R                  5      nUR                  U5      (       d   eg r¤   )r   r   r>   r  rC  s      r@   Útest_get_columnsÚ'QuotedNameArgumentTest.test_get_columns*  s'   € ä”v—y‘yÓ!ˆØ×Ñ ×%Ñ%Ð%Ñ%rC   c                 óf   • [        [        R                  5      nUR                  U5      (       d   eg r¤   )r   r   r>   Úget_pk_constraintrC  s      r@   Útest_get_pk_constraintÚ-QuotedNameArgumentTest.test_get_pk_constraint/  s'   € ä”v—y‘yÓ!ˆØ×%Ñ% d×+Ñ+Ð+Ñ+rC   c                 óf   • [        [        R                  5      nUR                  U5      (       d   eg r¤   )r   r   r>   Úget_foreign_keysrC  s      r@   Útest_get_foreign_keysÚ,QuotedNameArgumentTest.test_get_foreign_keys4  s)   € ô ”v—y‘yÓ!ˆØ×$Ñ$ T×*Ñ*Ð*Ñ*rC   c                 óf   • [        [        R                  5      nUR                  U5      (       d   eg r¤   )r   r   r>   Úget_indexesrC  s      r@   Útest_get_indexesÚ'QuotedNameArgumentTest.test_get_indexes:  s)   € ô ”v—y‘yÓ!ˆØ×Ñ ×%Ñ%Ð%Ñ%rC   c                 óf   • [        [        R                  5      nUR                  U5      (       d   eg r¤   )r   r   r>   Úget_unique_constraintsrC  s      r@   Útest_get_unique_constraintsÚ2QuotedNameArgumentTest.test_get_unique_constraints@  s)   € ô ”v—y‘yÓ!ˆØ×*Ñ*¨4×0Ñ0Ð0Ñ0rC   c                 óf   • [        [        R                  5      nUR                  U5      (       d   eg r¤   )r   r   r>   Úget_table_commentrC  s      r@   Útest_get_table_commentÚ-QuotedNameArgumentTest.test_get_table_commentF  s)   € ô ”v—y‘yÓ!ˆØ×%Ñ% d×+Ñ+Ð+Ñ+rC   c                 óf   • [        [        R                  5      nUR                  U5      (       d   eg r¤   )r   r   r>   Úget_check_constraintsrC  s      r@   Útest_get_check_constraintsÚ1QuotedNameArgumentTest.test_get_check_constraintsL  s)   € ô ”v—y‘yÓ!ˆØ×)Ñ)¨$×/Ñ/Ð/Ñ/rC   rD   N)rE   rF   rG   rH   Úrun_create_tablesr¯   rI   ra   r7  r?  r   rX   r0  rD  rG  rK  r  rO  rµ   rS  Úunique_constraint_reflectionrW  r  r[  Úcheck_constraint_reflectionr_  rJ   rD   rC   r@   r"  r"  ¼  sT  † ØÐØ $ÐàñPó ðPòdð ñ-ó ð-ð Ø×Ñ×,Ñ,ñ:ó -ó ð:ð ñ&ó ð&ð ñ,ó ð,ð Ø×Ñ×7Ñ7ñ+ó 8ó ð+ð Ø×Ñ×&Ñ&ñ&ó 'ó ð&ð Ø×Ñ×2Ñ2ñ1ó 3ó ð1ð Ø×Ñ×(Ñ(ñ,ó )ó ð,ð Ø×Ñ×1Ñ1ñ0ó 2ó ó0rC   r"  c                 ó„  • [         R                  " S S [         R                  R                  4SS9n[         R                  " [        R
                  [        R                  [        R                  SS9n[         R                  " [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  -  [        R                  [        R                  -  SS9n[         R                  " SSSS9nU" U" U" U" U 5      5      5      5      $ )	Nc                  ó"   • [         R                  $ r¤   )r   rZ   rD   rC   r@   rÆ   Ú$_multi_combination.<locals>.<lambda>W  s
   € ”F×&Ò&rC   rW   r¿   r5   r¾   TFÚ
use_filter)r   rÜ   rX   rY   r    ÚDEFAULTÚ	TEMPORARYÚANYr   ÚTABLEÚVIEWÚMATERIALIZED_VIEWÚANY_VIEW)r6  rW   r5   r¾   Úfilter_namess        r@   Ú_multi_combinationrp  S  só   € Ü×!Ò!Øá&Ü×Ñ×$Ñ$ð	
ð ñ€Fô × Ò Ü×ÑÜ×ÑÜ�‰Øñ	€Eô ×ÒÜ×ÑÜ�‰Ü×$Ñ$Ü�‰Ü×ÑÜ×Ñœ:Ÿ?™?Ñ*Ü×Ñœ:×7Ñ7Ñ7Øñ	€Dô ×'Ò'¨¨e¸lÑK€Lá‘%™™\¨"Ó-Ó.Ó/Ó0Ð0rC   c                   óF  • \ rS rSrS=rrSr\S 5       r\S 5       r	\S 5       r
\S 5       r\S 5       rS	 rS
 rS rS\R"                  \R"                  S4S jrS\R"                  \R"                  S4S jrS\R"                  \R"                  S4S jr\S 5       rS\R"                  \R"                  S4S jr\S 5       rS\R"                  \R"                  S4S jr\S 5       rS\R"                  \R"                  S4S jr\S 5       rS\R"                  \R"                  SS4S jr\S 5       rS\R"                  \R"                  S4S jr \S 5       r!\"RF                  RH                  S 5       r%\"RF                  RH                  S 5       r&\"RF                  RH                  S 5       r'\"RF                  RH                  S 5       r(\"RF                  RH                  \"RF                  RR                  S 5       5       r*\"RF                  RH                  S  5       r+\"RF                  RH                  S! 5       r,\"RZ                  " SS"\"RF                  R\                  4S#S$9\"RZ                  " S\"RF                  R^                  4SS%S$9S& 5       5       r0\"RZ                  " S\"RF                  R^                  4SS%S$9S' 5       r1\"RF                  Rd                  S( 5       r3\"RF                  Rh                  \"RF                  Rj                  S) 5       5       r6\"RF                  Rn                  S* 5       r8\"RF                  Rn                  \"RF                  R^                  S+ 5       5       r9SzS, jr:\"RZ                  " S-SS\"RF                  R^                  4SS\"RF                  Rh                  4SS\"RF                  R^                  \"RF                  Rh                  -   4S.S$9S/ 5       r;\"RF                  Rx                  S0 5       r=\"RF                  Rx                  S1 5       r>\"RF                  Rx                  \"RF                  R~                  \"RF                  Rj                  S2 5       5       5       r@\"RZ                  " S3S\"RF                  R^                  4S%S$9\"RF                  R‚                  S4 5       5       rB\"RZ                  " S5S6S7S8S9S$9\"RF                  R‚                  \"RF                  R†                  S: 5       5       5       rD\"RZ                  " S3S\"RF                  R^                  4S%S$9\"RF                  R\                  S; 5       5       rE\"RZ                  " S<S=S>S?S@S$9\"RF                  R\                  SA 5       5       rF\"RF                  RŽ                  \"RF                  R^                  SB 5       5       rH\"RZ                  " S3S\"RF                  R^                  4S%S$9\"RF                  R’                  SC 5       5       rJ\"RZ                  " SDSESFS$9\"RF                  R’                  \"RF                  R–                  \"RF                  R˜                  SG 5       5       5       5       rM\"RZ                  " SHSISJSKSLS$9\"RF                  R’                  SM 5       5       rN\"RF                  Rx                  \"RF                  Rž                  SN 5       5       rP\"RF                  R¢                  SO 5       rR\"RZ                  " S\"RF                  R^                  4S3S%S$9\"RF                  Rž                  SP 5       5       rS\"RZ                  " SQSRSSSTSUS$9\"RF                  Rž                  SV 5       5       rT\"RF                  Rh                  \"RZ                  " S3S\"RF                  R^                  4S%S$9SW 5       5       rU\"RF                  Rh                  SX 5       rV\"RF                  R®                  SY 5       rX\"RZ                  " S\"RF                  R^                  4S3S%S$9SZ 5       rY\"RZ                  " S\"RF                  R^                  4S5      S[ 5       rZ\"R¶                  S\ 5       r\\"RF                  Rº                  \^S] 5       5       r_\"RF                  Rn                  \^S^ 5       5       r`S_ raS{S` jrbS|Sa jrc\^Sb 5       rd\"RF                  R‚                  \^Sc 5       5       reSd rf\"RF                  R\                  \^Se 5       5       rg\"RF                  R’                  \^Sf 5       5       rh\"RF                  Rž                  \^Sg 5       5       ri\"RF                  RÔ                  \^Sh 5       5       rk\"RZ                  " Si\"RF                  Rº                  4SjSk\"RF                  R‚                  4Sl\"RF                  R\                  4Sm\"RF                  R’                  4Sn\"RF                  Rž                  4So\"RF                  RÔ                  4Sp\"RF                  Rn                  4SqS$9	Sr 5       rlSs rm\"RZ                  " SSS%S$9\"RZ                  " S\"RF                  RÜ                  4SStS$9Su 5       5       ro\"RF                  Rn                  Sv 5       rp\"RF                  Râ                  Sw 5       rr\"RF                  Ræ                  \"RF                  Rè                  Sx 5       5       ruSyrvg)}ÚComponentReflectionTestiq  NTc                 óÐ   • U R                  US 5        [        R                  R                  R                  (       a+  U R                  U[        R
                  R                  5        g g r¤   )Údefine_reflected_tablesr   rX   rY   r9   r   rZ   r_   s     r@   ra   Ú%ComponentReflectionTest.define_tablesv  sF   € à×#Ñ# H¨dÔ3Ü×Ñ×#Ñ#×+×+Ø×'Ñ'¨´'·.±.×2LÑ2LÕMð ,rC   c                 óN  • U(       a  US-   nOSn[         R                  R                  R                  (       a  [	        SU-  SS94nOSn[        SU[        S[        R                  S	S
9[        S[        R                  " S5      SS9[        S[        R                  " 5       SS9[        S[        R                  /UQ76 [        R                  " SSSS9[        R                  " S5      US	S9
n[        SU[        S[        R                  S	S
9[        S[        R                  [	        SU-  SSS95      [        S[        R                  [	        SU-  5      5      [        S[        R                  " S5      S	S 9[        R                  " S!S"S9[        R                  " SSS#S$S9US	S9
  [        S%U[        S[        R                  5      [        S&[        R                  [	        UR                  R                   5      5      [        S'[        R                  " S(5      S	S)9[        R"                  " SS*S+S9US	S9  [        S,U[        S-[        R                  S	S.S/9[        S[        R                  " S(5      S0S19[        S2[        R                  " S(5      S3S19[        S4[        R                  " S55      S6S19US7S89  [        S9U[        S[        R                  " S(5      5      US:S89  [         R                  R$                  R                  (       GaW  Uc•  [        S;U[        S-[        R                  S	S
9[        S[        R                  " S(5      5      [        S<[	        S=[         R&                  R(                  -  5      5      S	[&        R*                  R,                  R.                  S>9  O¿[        S?U[        S-[        R                  S	S
9[        S@[	        SA[&        R*                  R,                  R.                  -  5      5      [        S[        R                  " S(5      5      US	S9  [        SBU[        S-[        R                  S	S
9[        S[        R                  " S(5      5      US	S9  [         R                  R0                  R                  (       Ga   [3        SCUR                  R4                  UR                  R6                  S	S 9  [3        SDUR                  R                   UR                  R6                  UR                  R4                  5        U(       Gd  [        SEU[        SF[        R                  " S5      5      S	SG9n[        SHU[        S-[        R                  S	S
9[        SF[        R                  " S5      5      S	SG9n[         R                  R8                  R                  (       a…  [         R                  R:                  R                  (       a\  [3        SIUR                  R<                  R?                  5       5        [3        SJUR                  R<                  R?                  5       5        [         R                  R@                  R                  (       a  U RC                  X5        U(       d<  [         R                  RD                  R                  (       a  U RG                  U5        g g g )KNÚ.Ú z%susers.user_idÚ
user_id_fkr'  rD   ÚusersÚuser_idTrQ   Útest1é   F©ÚnullableÚtest2Úparent_user_idú	test2 > 0Úzz_test2_gt_zeroúusers check constraint©rt   r
  útest2 <= 1000©rW   rî   Ú
dingalingsÚdingaling_idÚ
address_idz%semail_addresses.address_idÚzz_email_add_id_fgúdi fk commentÚid_userrS   é   )Ú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_testrP   ú
id comment)rR   r
  údata % commentr	  Úd2ú)Comment types type speedily ' " \ '' Fun!Úd3é*   úComment
withescapesúthe test % ' " \ table comment)rW   r
  Úno_constraintsú"no
constraintshasescapedcommentÚlocal_tableÚ	remote_idz%s.remote_table_2.id)rî   rW   Ú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_pk)$r   rX   Úself_referential_foreign_keysr9   r   r   r   rw   rx   ÚCHARÚFloatr   r.  r   r-  rº   r{  r,  Úcross_schema_fk_reflectionr   rZ   r>   rƒ   Údefault_schema_namerµ   r$   r|  r€  Úindexes_with_ascdescÚreflect_indexes_with_ascdescr­  Údescr0  r\   r  r^   )r?   r`   rW   Úschema_prefixÚparent_id_argsrz  r¬  r®  s           r@   rt  Ú/ComponentReflectionTest.define_reflected_tables|  s8  € æØ" S™L‰MàˆMä×Ñ×9Ñ9×A×AäØ%¨Ñ5¸Lñð‰Nð  ˆNÜØØÜ�9œbŸf™f°$Ñ7Ü�7œBŸGšG A›J°Ñ7Ü�7œBŸHšH›J°Ñ7ÜÐ#¤R§Z¡ZÐA°.ÒAÜ×ÒØØ'Ø0ñô
 ×Ò˜Ó/ØØñ
ˆô" 	ØØÜ�>¤2§:¡:¸4Ñ@ÜØÜ—
‘
ÜØ2°]ÑBØ-Ø+ñóô ØÜ—
‘
ÜÐ,¨}Ñ<Ó=óô
 �6œ2Ÿ9š9 R›=°Ñ6Ü×ÒØ6Ø)ñô ×ÒØØØ-Ø+ñ	ð Øò=	
ô@ 	ØØÜ�<¤§¡Ó,ÜÐ#¤R§Z¡Z´¸E¿G¹G¿O¹OÓ1LÓMÜ�?¤B§I¢I¨b£M¸Ñ>Ü×#Ò#Ø =¸/ñð Øò	
ô 	ØØÜ�4œŸ™°¸|ÑLÜ�6œ2Ÿ9š9 R›=Ð2BÑCÜØÜ—	’	˜"“ØHñô
 �4œŸš 2›Ð0HÑIØØ9ò	
ô 	ØØÜ�6œ2Ÿ9š9 R›=Ó)ØØ<ò	
ô ×Ñ×6Ñ6×>×>Ð>Ø‰~ÜØ!ØÜ˜4¤§¡¸Ñ>Ü˜6¤2§9¢9¨R£=Ó1ÜØ#Ü"Ø2´W·^±^×5OÑ5OÑOóóð #'Ü!Ÿ9™9×,Ñ,×@Ñ@óô Ø"ØÜ˜4¤§¡¸Ñ>ÜØ"Ü"Ø/Ü$Ÿi™i×/Ñ/×CÑCñDóóô ˜6¤2§9¢9¨R£=Ó1Ø!Ø"&òô Ø$ØÜ˜4¤§¡¸Ñ>Ü˜6¤2§9¢9¨R£=Ó1Ø!Ø"&òô ×Ñ×,Ñ,×4×4Ð4Ü�- §¡§¡°·±·±ÀdÒKÜØ §¡§¡°%·'±'·-±-ÀÇÁÇÁô÷ ä',Ø*ØÜ˜3¤§	¢	¨!£Ó-Ø"&ñ	(Ð$ô &+Ø(ØÜ˜4¤§¡¸Ñ>Ü˜3¤§	¢	¨!£Ó-Ø"&ñ&Ð"ô ×$Ñ$×9Ñ9×A×AÜ×(Ñ(×EÑE×M×MäÐ+Ð-A×-CÑ-C×-EÑ-E×-JÑ-JÓ-LÔMÜ˜/Ð+=×+?Ñ+?×+AÑ+A×+FÑ+FÓ+HÔIä×Ñ×2Ñ2×:×:Ø×Ñ˜XÔ.Þœ'×*Ñ*×@Ñ@×H×HØ×"Ñ" 8Õ,ð IˆvrC   c                 ób   • [        [        [        R                  S[        R                   35      $ rk   rm   ro   s    r@   rp   Ú'ComponentReflectionTest.temp_table_name*  rr   rC   c                 óÞ  • [        [        [        R                  5      nU R                  5       n[	        UU[        S[        R                  SS9[        S[        R                  " S5      5      [        S[        R                  5      [        R                  " SS[        R                   3S9[        R                  " S	S5      40 UD6n[        R                  R                  R                  (       a~  [        R                  R                   R                  (       aT  ["        R$                  " US
['        S[        R                  -  5      5        ["        R$                  " US['        S5      5        g g g )NrP   TrQ   rt   rT   rÏ   Úuser_tmp_uq_r'  Úuser_tmp_ixrd   ru   re   rv   )r   r   r>   rp   r   r   rw   rx   ry   r-  rn   r$   r   rX   r[   r9   rz   r   rg   r#   r{   s        r@   r^   Ú*ComponentReflectionTest.define_temp_tables0  s  € ä$¤V¬V¯Y©YÓ7ˆØ×(Ñ(Ó*ˆ
ÜØØÜ�4œŸ™¨TÑ2Ü�6œ2Ÿ:š: b›>Ó*Ü�5œ"Ÿ&™&Ó!ô ×Ò ¨|¼F¿L¹L¸>Ð-JÑKÜ�HŠH�] EÓ*ñ
ð ñ
ˆô" ×Ñ×,Ñ,×4×4Ü× Ñ ×0Ñ0×8×8ä�LŠLØØÜð0Ü28·,±,ñ?óôô �LŠL˜ =´#Ð6LÓ2MÕNð 9ð 5rC   c                 ó  • [         R                  R                  R                  (       a  S1nO
[	        5       nS HÎ  nUnU(       a  U SU 3nUS-   nXC;   a  SOSnSU SU S	U 3n[
        R                  " US
[        U5      5        XC;   aU  Sn	U(       a"  [         R                  " S5      (       a  U SU	 3n	SU	 SU S3n
[
        R                  " US
[        U
5      5        [
        R                  " US[        SU SU 35      5        MÐ     g )Nrˆ  ©rz  r“  rˆ  rw  Ú_vzMATERIALIZED rx  zCREATE zVIEW r+  rd   Ú	mat_indexÚoraclezCREATE INDEX z ON z(data)re   zDROP )	r   rX   Úmaterialized_viewsr9   Úsetr   rg   r#   Úagainst)r?   r`   rW   Úmaterializedr}   ÚfullnameÚ	view_nameÚprefixrh   Ú
index_namerÓ   s              r@   r\   Ú$ComponentReflectionTest.define_viewsR  s  € ä×Ñ×.Ñ.×6×6Ø(˜>‰Lä›5ˆLÛDˆJØ!ˆHÞØ$˜X Q z lÐ3�Ø  4™ˆIØ(2Ó(B‘_ÈˆFà˜&˜  y kÐ1CÀHÀ:ÐNð ô �LŠL˜ >´3°u³:Ô>ØÓ)Ø(�
ÞœgŸošo¨h×7Ñ7Ø$* 8¨1¨Z¨LÐ!9�JØ% j \°°i°[ÀÐG�Ü—’˜X ~´s¸3³xÔ@Ü�LŠLØ˜-¬¨u°V°H¸EÀ)ÀÐ-MÓ)Nöò# ErC   c                 óè   • 0 n[         R                  U;   a  UR                  U5        [         R                  U;   a  UR                  U5        [         R                  U;   a  UR                  U5        U$ r¤   )r   rk  Úupdaterl  rm  )r†   r¾   rÐ   r±   rÊ  r>  s         r@   Ú_resolve_kindÚ%ComponentReflectionTest._resolve_kindm  sX   € ØˆÜ×Ñ˜tÓ#Ø�J‰J�vÔÜ�?‰?˜dÓ"Ø�J‰J�uÔÜ×'Ñ'¨4Ó/Ø�J‰J�|Ô$Øˆ
rC   c                 ó.  • [         R                  R                  R                  (       d!  UR	                  5         UR	                  5         g [         R                  R
                  R                  (       d"  UR                  U5        UR	                  5         g g r¤   )r   rX   r0  r9   ÚclearrÇ  rÑ  )r†   r±   rÊ  s      r@   Ú_resolve_viewsÚ&ComponentReflectionTest._resolve_viewsw  s^   € Ü×Ñ×6Ñ6×>×>Ø×ÑÔ Ø�K‰K�MÜ×!Ñ!×4Ñ4×<×<Ø�L‰L˜Ô&Ø×ÑÕ ð =rC   c           	      ó4  • S nU[         R                  L a  S nU[         R                  L a  S nS SS1[        R                  R
                  SSSS	U R                  5       10n[        R                  R                  R                  (       dB  US    R                  S5        U[        R                  R
                     R                  SS/5        [        R                  R                  R                  (       d  US    R                  SS/5        [        R                  R                  R                  (       a)  [        R                  R                  R                  (       d$  US    R                  S	U R                  5       /5        [        R                  R                  R                  (       d  US    R                  S	/5        UR!                  5        VVs0 sH5  u  pxU" U5      (       d  M  US
   Xa   ;  d  M!  U(       a  US
   U;   d  M3  Xx_M7     n	nnU	$ s  snnf )Nc                 ó   • g)NTrD   )Ú_s    r@   rÆ   Ú8ComponentReflectionTest._resolve_names.<locals>.<lambda>€  s   €  rC   c                 ó   • SU S   ;  $ ©NÚtmprõ   rD   ©rÅ   s    r@   rÆ   rÛ  ‚  s   €  U°!°A±$Ò%6rC   c                 ó   • SU S   ;   $ rÝ  rD   rß  s    r@   rÆ   rÛ  „  s   €  U¨a°©d¢]rC   r§  r©  r¥  r¬  r®  r©   rõ   )r    rh  ri  r   r   rZ   rp   rX   r´  r9   ÚaddrÑ  rµ   r  Útemp_table_namesrz   Úitems)
r†   rW   r5   ro  ÚvaluesÚscope_filterÚremovedrÅ   Úvr>  s
             r@   Ú_resolve_namesÚ&ComponentReflectionTest._resolve_names  sÌ  € Ù%ˆØ”K×'Ñ'Ò'Ù6ˆLØ”K×)Ñ)Ò)Ù2ˆLð �>Ð#3Ð4Ü�N‰N×&Ñ&ØØ&Ø$ØØ×$Ñ$Ó&ð)ð	
ˆô ×Ñ×:Ñ:×B×BØ�D‰M×Ñ˜mÔ,Ø”G—N‘N×.Ñ.Ñ/×6Ñ6ØÐ!1Ð2ôô ×Ñ×0Ñ0×8×8Ø�D‰M× Ñ Ø'Ð)=Ð>ôô × Ñ ×6Ñ6×>×>Ü×#Ñ#×4Ñ4×<×<à�D‰M× Ñ  ,°×0DÑ0DÓ0FÐ!GÔHÜ×Ñ×/Ñ/×7×7Ø�D‰M× Ñ  , Ô0ð Ÿ™œô
á&‘�Ù˜A�ó ð �!‘˜G™OÑ+ó ö " Q q¡T¨\Ñ%9ó	 ˆAŠDÙ&ð 	ñ 
ð ˆ
ùó
s   ÇHÇ*	HÇ7HÈ	Hc                 ó²  • US4[         R                  0nUS4[         R                  US4[         R                  US4[         R                  0nU R                  Xe5        US4[         R                  US4[         R                  US4[         R                  US4[         R                  US	4[         R                  US
4[         R                  US4[         R                  US4[         R                  US4[         R                  US4[         R                  XR                  5       4[         R                  0nU R	                  X7Xe5      nU R                  XXH5      nU$ )NÚdingalings_vÚemail_addresses_vÚusers_vr©   rz  rˆ  r“  rš  r£  r¥  r§  r©  r¬  r®  ©r,   rj  rÖ  rp   rÒ  rè  )	r†   rW   r5   r¾   ro  rÊ  r±   rÐ   r>  s	            r@   Úexp_optionsÚ#ComponentReflectionTest.exp_optionsª  s1  € ð   Ð0´$·(±(Ð;ˆàÐ(Ð)¬4¯8©8Ø�YÐ¤§¡Ø�\Ð"¤D§H¡Hð
ˆð
 	×Ñ˜EÔ0à�WÐœtŸx™xØ�\Ð"¤D§H¡HØÐ&Ð'¬¯©Ø�^Ð$¤d§h¡hØÐ%Ð&¬¯©Ø�]Ð#¤T§X¡XØ�^Ð$¤d§h¡hØÐ%Ð&¬¯©ØÐ+Ð,¬d¯h©hØÐ)Ð*¬D¯H©HØ×)Ñ)Ó+Ð,¬d¯h©hð
ˆð × Ñ  ¨uÓCˆØ×!Ñ! &°ÓCˆØˆ
rC   c                 ó  • SS 0nUS4U0nUS4UUS4UUS4U0nU R                  Xv5        US4UUS4UUS4UUS	4SS
0US4SS0US4UUS4UUS4UUS4UUS4UXR                  5       4U0nU R                  X8Xv5      n	U R                  XXI5      n	U	$ )NÚtextrë  rì  rí  r©   rz  rˆ  r“  rš  r¢  r£  r¤  r¥  r§  r©  r¬  r®  )rÖ  rp   rÒ  rè  )
r†   rW   r5   r¾   ro  ÚemptyrÊ  r±   rÐ   r>  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ˆØˆ
rC   c                 óJ  ^
• S[         R                  S S4S jm
U
4S jnUS4T
" SS[         R                  S9T
" S	5      T
" S
5      T
" S5      /0nUS4T
" S	S[         R                  S9T
" S5      T
" S5      /US4T
" SS[         R                  S9T
" S[         R                  S9T
" S[         R                  S9T
" S5      /US4T
" SS[         R                  S9T
" S5      T
" S5      /0nU R                  Xv5        US4U" S5      T
" SSS9T
" SSS9T
" S5      /US4U" S5      T
" S	5      T
" S
5      T
" S5      /US4U" S	5      T
" S5      T
" S5      /US4U" SSS9T
" SSS9T
" S S!S9T
" S"S#S9/US$4T
" S5      /US%4U" S5      T
" S5      T
" S&5      /US'4U" S5      T
" S(5      T
" S5      /US)4U" S5      T
" S5      /US*4T
" S+5      /US,4U" S5      T
" S+5      /XR                  5       4U" S5      T
" S5      T
" S5      /0nU R	                  X8Xv5      n	U R                  XXI5      n	U	$ )-NFTc                 ób   • U U[         R                  UUUS.nUS:X  a  UR                  S5        U$ )N)rt   ÚautoincrementÚtypeÚdefaultr
  r  Úomitrø  )r,   rj  Úpop)rt   Úautorú  r
  r  r>  s         r@   rŒ   Ú0ComponentReflectionTest.exp_columns.<locals>.colô  s;   € ð Ø!%ÜŸ™Ø"Ø"Ø$ñˆCð �v‹~Ø—‘˜Ô(ØˆJrC   c                 óB   >• S[         R                  SS.UEnT" U 40 UD6$ )NTF)rý  rú  r  ©r,   rj  )rt   r|   rŒ   s     €r@   ÚpkÚ/ComponentReflectionTest.exp_columns.<locals>.pk  s&   ø€ Ø¬4¯8©8ÀÑMÈ"ÐMˆBÙ�t‘?˜r‘?Ð"rC   rë  r‰  rû  )rý  r  rŠ  r�  rS   rì  r”  r•  rí  r{  r|  r~  r€  r�  r©   rP   rt   rÏ   rz  rˆ  r“  rš  r›  r	  rœ  r�  rž  rŸ  r¡  r£  r¥  r¦  r§  r¨  r©  r¬  r­  r®  rî  )r†   rW   r5   r¾   ro  r  rÊ  r±   rÐ   r>  rŒ   s             @r@   Úexp_columnsÚ#ComponentReflectionTest.exp_columnsí  sÃ  ø€ ð ¤d§h¡h¸Àtô	õ	#ð
 �^Ð$Ù�N¨¼$¿(¹(ÑCÙ�LÓ!Ù�I“Ù�F“ð	'ð
ˆð Ð(Ð)Ù�L v¼¿¹ÑAÙÐ$Ó%Ù�OÓ$ð,ð
 �YÐÙ�I F´T·X±XÑ>Ù�G¤d§h¡hÑ/Ù�G¤d§h¡hÑ/ÙÐ$Ó%ð	"ð �\Ð"Ù�D˜v´·±Ñ9Ù�F“Ù�E“
ð%ð
ˆð$ 	×Ñ˜EÔ0à�WÐÙ�9“Ù�G eÑ,Ù�G eÑ,ÙÐ$Ó%ð	 ð �\Ð"Ù�>Ó"Ù�LÓ!Ù�I“Ù�F“ð	%ð Ð&Ð'Ù�<Ó ÙÐ$Ó%Ù�OÓ$ð*ð
 �^Ð$Ù�4 Ñ.Ù�FÐ$4Ñ5ÙØØLññ �DÐ":Ñ;ð'ð Ð%Ð&©¨V«¨Ø�]Ð#¡b¨£h±°F³¹SÀÓ=MÐ%NØ�^Ð$¡r¨$£x±°Z³Á#ÀfÃ+Ð&NØÐ%Ð&©¨D«±3°v³;Ð(?ØÐ+Ð,©s°3«x¨jØÐ)Ð*©R°«X±s¸3³xÐ,@Ø×)Ñ)Ó+Ð,Ù�4“Ù�F“Ù�E“
ð/ðC&
ˆðN × Ñ  ¨uÓCˆØ×!Ñ! &°ÓCˆØˆ
rC   c                 ó
   • 1 Sk$ )N>   rt   rù  rú  r  rD   r  s    r@   Ú_required_column_keysÚ-ComponentReflectionTest._required_column_keysM  s   € â6Ð6rC   c                 óÔ  • [         R                  S S.S jnU" S S9n[        R                  R                  R
                  (       a  US4U" S5      0nOUS4U0nUS4UUS4UUS4U0nU R                  X‡5        US	4U" S
5      US4U" S5      US4U" SSSS9US4U" S5      US4UUS4U" S5      US4U" S5      US4U" S5      US4UUS4U" S5      XR                  5       4U" S5      0n	[        R                  R                  R
                  (       d2  U	R                  5        H  n
U
S   c  M  [         R                  U
S'   M      U R                  X9X‡5      nU R                  XXK5      nU$ )Nr…  c                 ó    • [        U5      U US.$ )N)Úconstrained_columnsrt   r
  )Úlist)rt   r
  Úcolss      r@   r  Ú+ComponentReflectionTest.exp_pks.<locals>.pkX  s   € ä'+¨D£zØØ"ñð rC   r'  rë  r‰  rì  rí  r©   rz  r{  rˆ  r“  rŠ  r˜  r™  rš  rP   r£  r¥  r§  r©  r¬  r®  rt   )r,   rj  r   rX   Úmaterialized_views_reflect_pkr9   rÖ  rp   Úreflects_pk_namesrä  rÒ  rè  )r†   rW   r5   r¾   ro  r  ró  rÊ  r±   rÐ   Úvalr>  s               r@   Úexp_pksÚComponentReflectionTest.exp_pksQ  s¤  € ô  Ÿ8™8¨Tõ 	ñ ˜‘ˆÜ×Ñ×9Ñ9×A×AØ# ^Ð4±b¸Ó6HÐI‰Là# ^Ð4°eÐ<ˆLàÐ(Ð)¨5Ø�YÐ Ø�\Ð" Eð
ˆð
 	×Ñ˜EÔ0à�WÐ™r )›}Ø�\Ð"¡B ~Ó$6ØÐ&Ð'©Ø =¸/ñ*ð �^Ð$¡b¨£hØÐ%Ð&¨Ø�]Ð#¡R¨£XØ�^Ð$¡b¨£hØÐ%Ð&©¨4«ØÐ+Ð,¨eØÐ)Ð*©B¨t«HØ×)Ñ)Ó+Ð,©b°«hð
ˆô ×Ñ×1Ñ1×9×9Ø—}‘}–�Ø�v‘;Ó*Ü"&§(¡(�C˜“Kñ 'ð × Ñ  ¨uÓCˆØ×!Ñ! &°ÓCˆØˆ
rC   c                 ó
   • SS1$ )Nrt   r
  rD   r  s    r@   Ú_required_pk_keysÚ)ComponentReflectionTest._required_pk_keys�  s   € àÐ-Ð.Ð.rC   c                 óR  ^•  " S S5      mU[         R                  S 4U4S jjnUS4/ 0nUS4/ US4/ US4/ 0nU R                  Xv5        US4U" S	/S
/SSS9/US4U" S/S
/S5      U" S/S/SSSS9/US4U" S/S
/S5      /US4/ US4/ US4U" S/S/S[        R                  S9/US4U" S/S/SS S9/US4/ US4/ US4/ XR                  5       4/ 0n[        R                  R                  R                  (       d  X�S4   R                  5         [        R                  R                  R                  (       dK  UR                  5        H7  n	U	 H.  n
U
S    [         R                  Ld  M  [         R                  U
S '   M0     M9     U R                  X8Xv5      nU R                  XXK5      nU$ )!Nc                   ó   • \ rS rSrS rSrg)Ú+ComponentReflectionTest.exp_fks.<locals>.ttiŒ  c                 óf   • US L =(       d'    [         R                  R                  R                  U:H  $ r¤   )r   r>   rƒ   rµ  )r†   rð   s     r@   Ú__eq__Ú2ComponentReflectionTest.exp_fks.<locals>.tt.__eq__�  s,   € à˜T�M÷ FÜ—y‘y×(Ñ(×<Ñ<ÀÑEðrC   rD   N©rE   rF   rG   rH   r  rJ   rD   rC   r@   r»   r  Œ  s   † õrC   r»   c                 óH   >• U UU[         R                  Ub  UOT" 5       UUS.$ )N)r
  Úreferred_columnsrt   r6   Úreferred_schemaÚreferred_tabler
  r   )r  Úref_colÚ	ref_tableÚ
ref_schemart   r
  r»   s         €r@   ÚfkÚ+ComponentReflectionTest.exp_fks.<locals>.fk“  s1   ø€ ð (,Ø$+ØÜŸ8™8à",Ñ"8‘J¹b»dà"+Ø"ñ
ð 
rC   rë  rì  rí  r©   rz  r�  r{  ry  r'  rˆ  r�  rŠ  r“  r‹  rŒ  r…  r”  rš  r£  r¥  r¦  rP   r©  )r#  r§  r¨  r¬  r®  rt   )r,   rj  rÖ  r   rZ   rp   r   rX   r±  r9   rÕ  Únamed_constraintsrä  rÒ  rè  )r†   rW   r5   r¾   ro  r$  rÊ  r±   rÐ   Úvalsr  r>  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Ø×)Ñ)Ó+Ð,¨bðC"
ˆôF ×Ñ×=Ñ=×E×EØ˜GÐ$Ñ%×+Ñ+Ô-Ü×Ñ×1Ñ1×9×9ØŸ™ž�Û�CØ˜6‘{¬$¯(©(Ô2Ü&*§h¡h˜˜F›ó  ñ (ð
 × Ñ  ¨uÓCˆØ×!Ñ! &°ÓCˆØˆ
rC   c                 ó
   • 1 Sk$ )N>   rt   r   r  r  r
  rD   r  s    r@   Ú_required_fk_keysÚ)ComponentReflectionTest._required_fk_keysÝ  s   € ò
ð 	
rC   c                 ó  • SS SSS.S jnUS4/ 0nUS4/ US4/ US4/ 0nU R                  Xv5        U(       a  XaS4   R                  U" SS	S
95        US4/ U" SSSS9QU" SSSSS
9QU" SSSSS9QUS4/ U" S[        R                  SSS9QU" S[        R                  SS9QU" SSSSSS9QUS4/ U" S[        R                  S
9QU" S[        R                  SS9QUS4/ US 4/ US!4/ U" S"[        R                  SS9QUS#4/ U" S$[        R                  SS9QUS%4/ US&4/ U" S'S(S'S)0S*9QUS+4/ U" S'S,S'S)0S*9QXR	                  5       4/ U" S-S.S
9QU" S/S0[
        R                   3SSS19Q0n[        R                  R                  R                  (       a)  [        R                  R                  R                  (       d(  X�S&4   R                  5         X�S+4   R                  5         U R                  X8Xv5      n	U R                  XXI5      n	U	$ )2NF)r�  Úcolumn_sortingÚ
duplicatesr$  c                 óè  • [         R                  R                  n[         R                  R                  n[         R                  R                  nU(       a  UR
                  (       a  U(       a  UR
                  (       d  gU[        U5      U [        R                  / S.n	U(       a;  X)S'   UR
                  (       a&  U	S   =U	S'   n
U
 Vs/ sH  o»U;   a  S OUPM     snU	S'   U(       a  X	S'   U	/$ s  snf )NrD   )r�  rã   rt   Údialect_optionsÚinclude_columnsr.  rã   ÚexpressionsÚduplicates_constraint)	r   rX   Úforeign_keys_reflect_as_indexÚ#unique_constraints_reflect_as_indexÚ*reflect_indexes_with_ascdesc_as_expressionr9   r  r,   rj  )rt   r�  r.  r/  r$  r  Úfk_reqÚdup_reqÚsorting_expressionr>  Úorigrº   s               r@   rÓ   Ú0ComponentReflectionTest.exp_indexes.<locals>.idxî  sÜ   € ô ×%Ñ%×CÑCˆFÜ×&Ñ&×JÑJˆGä× Ñ ×KÑKð ö ˜6Ÿ>Ÿ>Þ 7§?§?àà Ü $ T£
ØÜ#'§8¡8Ø#%ñˆCö Ø(6Ð$Ñ%Ø%×-×-Ø03°NÑ0CÐC�C˜Ñ&¨áDHó+ÙDH¸q ^Ó 3™¸Ò:ÁDñ+�C˜Ñ'ö Ø/3Ð+Ñ,Ø�5ˆLùò+s   Ã	C/rë  rì  rí  r©   rS   rÅ  r'  rz  r�  ry  T)rt   r$  r{  r€  r|  r«  rª  )rt   r�  rˆ  )rt   r�  r/  r�  rŠ  r‰  r‘  r“  r•  r”  rš  r£  r¥  r¦  r§  r¨  r©  r¬  r­  r¯  )r¸  )rt   r.  r®  r°  rÏ   rÀ  rt   r¿  )rt   r/  r�  )rÖ  Úextendr,   rj  rp   r   rn   r   rX   r¶  r9   r·  rÕ  rÒ  rè  )
r†   rW   r5   r¾   ro  rÓ   rÊ  r±   rÐ   r>  s
             r@   Úexp_indexesÚ#ComponentReflectionTest.exp_indexesç  sè  € ð ØØØõ#	ðJ   Ð0°"Ð5ˆàÐ(Ð)¨2Ø�YÐ Ø�\Ð" Bð
ˆð
 	×Ñ˜EÔ0ÞØ .Ð1Ñ2×9Ñ9Ù�F Ñ-ôð �WÐð  ÙÐ%¨L¸TÑBð á�Y ¨°ÑGð ñ �W˜g¨MÀ$ÑGð ð
 �\Ð"ð 
%Ù�V¤$§(¡(°4ÀDÑIð
%á�Y¤T§X¡X°$Ñ7ð
%ñ Ø Ø"Ø1ØØ#ñð
%ð Ð&Ð'ð *Ù�_¬4¯8©8Ñ4ð*áÐ%¬D¯H©H¸Ñ>ð*ð �^Ð$ bØÐ%Ð&¨Ø�]Ð#ð &Ù�[¤t§x¡x°DÑ9ð&ð �^Ð$ð 'Ù�Z¤d§h¡h°4Ñ8ð'ð Ð%Ð&¨ØÐ+Ð,ð /ÙØØ*Ø$'¨Ð#3ñð/ð Ð)Ð*ð -ÙØ˜o¸sÀIÐ>Nñð-ð
 ×)Ñ)Ó+Ð,ð /Ù�U Ñ/ð/áØØ'¬¯© ~Ð6Ø#Øñ	ð/ðU3
ˆôj × Ñ ×5Ñ5×=×=Ü×#Ñ#×@Ñ@×H×HàÐ2Ð3Ñ4×:Ñ:Ô<ØÐ0Ð1Ñ2×8Ñ8Ô:Ø× Ñ  ¨uÓCˆØ×!Ñ! &°ÓCˆØˆ
rC   c                 ó
   • 1 Sk$ )N>   rt   r�  rã   rD   r  s    r@   Ú_required_index_keysÚ,ComponentReflectionTest._required_index_keys\  s   € â1Ð1rC   Fc                 óÞ  • S SS S.S jnUS4/ 0nUS4/ US4/ US4/ 0nU R                  X‡5        US4/ U" S	S
SSSS9QUS4/ U" S[        R                  [        R                  S9QU" SSSSSS9QUS4/ US4/ US4/ US4/ US4/ US4/ US4/ US4/ XR                  5       4/ U" SS[        R
                   3S 9Q0n	U(       a  0 UEUEU	E$ U R                  X9X‡5      n
U R                  XXJ5      n
U
$ )!NF)Úduplicates_indexÚis_indexr
  c                 ó¢   • [         R                  R                  nU(       a  UR                  (       d  g[	        U5      U US.nU(       a  XS'   U/$ )NrD   )rã   rt   r
  rD  )r   rX   Ú*unique_index_reflect_as_unique_constraintsr9   r  )rt   rD  rE  r
  r  Úreqr>  s          r@   ÚucÚ+ComponentReflectionTest.exp_ucs.<locals>.uch  sJ   € ô ×"Ñ"×MÑMˆCÞ §§Øä $ T£
ØØ"ñˆCö
  Ø*:Ð&Ñ'Ø�5ˆLrC   rë  rì  rí  r©   rz  r|  r€  rª  T)rt   rD  rE  rˆ  rS   )rt   rD  rŠ  r‰  r‘  r’  )rt   rD  r
  r“  rš  r£  r¥  r§  r©  r¬  r®  rt   r¿  r'  )rÖ  r,   rj  rp   r   rn   rÒ  rè  )r†   rW   r5   r¾   ro  Úall_rI  rÊ  r±   rÐ   r>  s              r@   Úexp_ucsÚComponentReflectionTest.exp_ucs`  s”  € ð +/¸Èõ	ð   Ð0°"Ð5ˆàÐ(Ð)¨2Ø�YÐ Ø�\Ð" Bð
ˆð
 	×Ñ˜EÔ0à�WÐð  ÙØØØ&Ø%2Ø!ñð ð �\Ð"ð 	%Ù�F¤§¡¼D¿H¹HÑEð	%áØ Ø"Ø1Ø%=Ø/ñð	%ð Ð&Ð'¨Ø�^Ð$ bØÐ%Ð&¨Ø�]Ð# RØ�^Ð$ bØÐ%Ð&¨ØÐ+Ð,¨bØÐ)Ð*¨BØ×)Ñ)Ó+Ð,ð /Ù�F <´·±¨~Ð!>Ñ?ð/ð9
ˆö@ Ø6�lÐ6 eÐ6¨vÐ6Ð6à×$Ñ$ T°5ÓGˆCØ×%Ñ% f°\ÓGˆCØˆJrC   c                 ó
   • SS1$ )Nrt   rã   rD   r  s    r@   Ú_required_unique_cst_keysÚ1ComponentReflectionTest._required_unique_cst_keys¥  s   € à˜Ð'Ð'rC   c                 ó„  ^
•  " S S[         5      m
SU
4S jjnUS4/ 0nUS4/ US4/ US4/ 0nU R                  Xv5        US4U" S	[        R                  5      U" S
SSS9/US4U" SSS9/US4/ US4/ US4/ US4/ US4/ US4/ US4/ US4/ XR	                  5       4/ 0nU R                  X8Xv5      n	U R                  XXI5      n	U	$ )Nc                   ó   • \ rS rSrS rSrg)Ú+ComponentReflectionTest.exp_ccs.<locals>.tti°  c                 óŠ   • UR                  5       R                  SS5      R                  SS5      R                  SS5      nX;   $ )NÚ(rx  Ú)Ú`)ÚlowerÚreplace)r†   rð   r>  s      r@   r  Ú2ComponentReflectionTest.exp_ccs.<locals>.tt.__eq__±  s>   € à—K‘K“Mß‘W˜S "Ó%ß‘W˜S "Ó%ß‘W˜S "Ó%ð	 ð ‘{Ð"rC   rD   Nr  rD   rC   r@   r»   rS  °  s   † õ#rC   r»   c                 ó   >• T" U 5      XS.$ )N)Úsqltextrt   r
  rD   )rò  rt   r
  r»   s      €r@   ÚccÚ+ComponentReflectionTest.exp_ccs.<locals>.ccº  s   ø€ Ù! $›x°ÑJÐJrC   rë  rì  rí  r©   rz  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,   rj  rp   rÒ  rè  )r†   rW   r5   r¾   ro  r]  rÊ  r±   rÐ   r>  r»   s             @r@   Úexp_ccsÚComponentReflectionTest.exp_ccs©  s?  ø€ ô	#”ô 	#÷	Kð
   Ð0°"Ð5ˆàÐ(Ð)¨2Ø�YÐ Ø�\Ð" Bð
ˆð
 	×Ñ˜EÔ0à�WÐÙ�?¤D§H¡HÓ-ÙØØ&Ø4ñð ð �\Ð"ÙØ:Ø-ñð%ð Ð&Ð'¨Ø�^Ð$ bØÐ%Ð&¨Ø�]Ð# RØ�^Ð$ bØÐ%Ð&¨ØÐ+Ð,¨bØÐ)Ð*¨BØ×)Ñ)Ó+Ð,¨bð/
ˆð2 × Ñ  ¨uÓCˆØ×!Ñ! &°ÓCˆØˆ
rC   c                 ó
   • SS1$ )Nrt   r\  rD   r  s    r@   Ú_required_cc_keysÚ)ComponentReflectionTest._required_cc_keysã  s   € à˜	Ð"Ð"rC   c                 ó‚   • [        U5      n[        [        R                  R                  UR                  5       ;   5        g r¤   )r   r+   r   r   rZ   Úget_schema_namesrŸ   s      r@   Útest_get_schema_namesÚ-ComponentReflectionTest.test_get_schema_namesç  s,   € ä�zÓ"ˆä”—‘×*Ñ*¨d×.CÑ.CÓ.EÑEÕFrC   c                 ó²   • [        U5      n[        UR                  [        R                  R
                  5      5        [        UR                  S5      5        g )NÚsa_fake_schema_foo)r   r+   Ú
has_schemar   r   rZ   r)   rŸ   s      r@   Útest_has_schemaÚ'ComponentReflectionTest.test_has_schemaí  s9   € ä�zÓ"ˆä�—‘¤§¡× :Ñ :Ó;Ô<Ü�—‘Ð!5Ó6Õ7rC   c                 óà   • UR                  SS[        [        R                  R                  0S9n[        U5      n[        [        R                  R                  UR                  5       ;   5        g)z
test #7300rÏ   Úbar©Úschema_translate_mapN)Úexecution_optionsr&   r   r   rZ   r   r+   rf  rŸ   s      r@   Ú%test_get_schema_names_w_translate_mapÚ=ComponentReflectionTest.test_get_schema_names_w_translate_mapô  s^   € ð  ×1Ñ1à�uÜœgŸn™n×8Ñ8ð"ð 2ð 
ˆ
ô �zÓ"ˆä”—‘×*Ñ*¨d×.CÑ.CÓ.EÑEÕFrC   c                 ó  • UR                  SS[        [        R                  R                  0S9n[        U5      n[        UR                  [        R                  R                  5      5        [        UR                  S5      5        g )NrÏ   ro  rp  rj  )	rr  r&   r   r   rZ   r   r+   rk  r)   rŸ   s      r@   Útest_has_schema_w_translate_mapÚ7ComponentReflectionTest.test_has_schema_w_translate_map  si   € à×1Ñ1à�uÜœgŸn™n×8Ñ8ð"ð 2ð 
ˆ
ô �zÓ"ˆä�—‘¤§¡× :Ñ :Ó;Ô<Ü�—‘Ð!5Ó6Õ7rC   c                 ó&  • [        U5      n[        SUR                  5       ;   5        [        UR                  S5      5        UR	                  [        S5      5         [        SUR                  5       ;   5        [        UR                  S5      5        UR                  5         [        SUR                  5       ;   5        [        UR                  S5      5        UR	                  [        S5      5        g ! UR	                  [        S5      5        f = f)NÚfoo_barzCREATE SCHEMA foo_barzDROP SCHEMA foo_bar)r   r)   rf  rk  Ú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Ü�D—O‘O IÓ.Ô/à×ÑœsÐ#8Ó9Õ:øˆJ×ÑœsÐ#8Ó9Õ:ús   ÁA<C4 Ã4Dc                 ó~   • [         R                  " 5       n[        U5        [        UR                  S5      (       d   eg )Nrµ  )r   r;   r   Úhasattrrƒ   )r†   Úengines     r@   Útest_dialect_initializeÚ/ComponentReflectionTest.test_dialect_initialize   s/   € ä×'Ò'Ó)ˆÜ�ŒÜ�v—~‘~Ð'<×=Ñ=Ð=Ñ=rC   c                 ón   • [        U5      n[        UR                  UR                  R                  5        g r¤   )r   r   rµ  rƒ   rŸ   s      r@   Útest_get_default_schema_nameÚ4ComponentReflectionTest.test_get_default_schema_name&  s(   € ä�zÓ"ˆÜˆD×$Ñ$ j×&8Ñ&8×&LÑ&LÕMrC   Úforeign_keyÚorder_byr¿   Ú
use_schemac                 óˆ  • U(       a  [         R                  nOS n1 Skn[        U5      nU(       a0  UR                  U5       Vs/ sH  nUS   (       d  M  US   PM     nnOUR	                  U5      nU V	s/ sH  o™U;  d  M
  U	PM     n
n	US:X  a  / SQn[        X«5        g / SQn[        [        U
5      U5        g s  snf s  sn	f )N>   r¥  rš  r§  r£  r©  r®  r¬  r   r…  rÃ  )rˆ  r“  rz  )r   rZ   r   Úget_sorted_table_and_fkc_namesÚget_table_namesr   Úsorted)r†   r    r†  r‡  rW   Ú_ignore_tablesr�   ÚrecrÐ   Útrè   Úanswers               r@   Útest_get_table_namesÚ,ComponentReflectionTest.test_get_table_names+  sÈ   € ö Ü×'Ñ'‰FàˆFò
ˆô �zÓ"ˆæð  ×>Ñ>¸vÔFóáF�CØ�q•6ó ��A”ÙFð ð ˆFð ×)Ñ)¨&Ó1ˆFÙ"(ÓD¡&˜Q°^Ñ,C—q¡&ˆÐDà�}Ó$Ú?ˆFÜ�Õ$â?ˆFÜ”�{Ó# VÕ,ùòùò Es   ÁB:Á	B:Á6B?ÂB?c                 ó\  • [        U5      nU(       a  [        R                  nOS nUR                  U5      n[        R
                  R                  R                  (       a4  [        [        U5      SS/5        [        UR                  U5      S/5        g / SQn[        [        U5      U5        g )Nrì  rí  rë  )rë  rì  rí  )r   r   rZ   Úget_view_namesr   rX   rÇ  r9   r   r‹  Úget_materialized_view_names)r†   r    r‡  r�   rW   rè   r�  s          r@   Útest_get_view_namesÚ+ComponentReflectionTest.test_get_view_namesV  s‡   € ô �zÓ"ˆÞÜ×'Ñ'‰FàˆFØ×)Ñ)¨&Ó1ˆÜ×Ñ×.Ñ.×6×6Ü”�{Ó#Ð&9¸9Ð%EÔFÜ�×0Ñ0°Ó8¸>Ð:JÕKâEˆFÜ”�{Ó# VÕ,rC   c                 óˆ   • [        U5      nUR                  5       n[        [        U5      S[        R
                   3/5        g rk   )r   Úget_temp_table_namesr   r‹  r   rn   ©r†   r    r�   râ  s       r@   Útest_get_temp_table_namesÚ1ComponentReflectionTest.test_get_temp_table_namesg  s9   € ä�zÓ"ˆØ×4Ñ4Ó6ÐÜŒFÐ#Ó$¨´6·<±<°.Ð'AÐ&BÕCrC   c                 óf   • [        U5      nUR                  5       n[        [        U5      S/5        g r¨   )r   Úget_temp_view_namesr   r‹  r™  s       r@   Útest_get_temp_view_namesÚ0ComponentReflectionTest.test_get_temp_view_namesm  s/   € ô �zÓ"ˆØ×3Ñ3Ó5ÐÜŒFÐ#Ó$ | nÕ5rC   c                 ó&   • U R                  U5        g r¤   )Ú_test_get_comments©r†   r    s     r@   Útest_get_commentsÚ)ComponentReflectionTest.test_get_commentst  s   € à×Ñ 
Õ+rC   c                 óX   • U R                  U[        R                  R                  5        g r¤   )r¡  r   r   rZ   r¢  s     r@   Útest_get_comments_with_schemaÚ5ComponentReflectionTest.test_get_comments_with_schemax  s   € ð 	×Ñ 
¬G¯N©N×,FÑ,FÕGrC   c                 óf  • [        U5      nU R                  US9n[        UR                  SUS9XBS4   5        [        UR                  SUS9XBS4   5        [        UR                  SUS9XBS4   5        U R                  R
                  R                  n[        UR                  XRS9XBU4   5        g )NrV   rš  rz  )r   rô  r   rZ  rÐ   r£  rt   )r†   r    rW   r�   ÚexpÚno_csts         r@   r¡  Ú*ComponentReflectionTest._test_get_comments}  sÐ   € Ü�zÓ"ˆØ×Ñ vÐÐ.ˆÜØ×"Ñ" >¸&Ð"ÐAØ˜Ð(Ñ)ô	
ô
 	Ø×"Ñ" 7°6Ð"Ð:Ø˜Ð!Ñ"ô	
ô
 	Ø×"Ñ" >¸&Ð"ÐAØ˜Ð(Ñ)ô	
ð
 —‘×+Ñ+×0Ñ0ˆÜØ×"Ñ" 6Ð"Ð9Ø˜Ð Ñ!õ	
rC   )FFzuse_views,use_schemac                 ó  • U(       a  [         R                  nOS nU R                  R                  U R                  R                  peU(       a  / SQnOSS/n[        U5      n[        XuU45       GH  u  pšUnUR                  X›S9n[        [        U5      S:„  [        U5      5        [        U
R                  5       GHÅ  u  pÞ[        UR                  XÍ   S   5        XÍ   S   R                  nUR                  n[!        U["        R$                  R&                  5      (       a  UR                  n[(        R*                  " S5      (       a4  U[,        R.                  [,        R0                  4;   a  [,        R.                  n[        [        [3        UR4                  5      R7                  UR4                  5      R7                  [,        R8                  [,        R:                  [,        R0                  [,        R.                  [,        R<                  [,        R>                  [,        R@                  /5      5      S:„  UR                  < S	UR                  < S
XÍ   S   < S	U< S35        URB                  (       a  GM»  XÍ   S   c  GMÆ   e   GM     g )N©rí  rì  rë  rz  r“  rV   r   rt   rù  rÆ  rU  z), rV  rú  )"r   rZ   rÐ   rz  r“  r   Úzipr  r+   ÚlenÚ	enumerateÚcolumnsr   rt   Ú	__class__rù  r<  rw   r   Ú
TypeEnginer   rÉ  Ú	sql_typesÚDater   rÈ  Ú__mro__Úintersectionr   ÚNumericÚTimer   Ú_BinaryrR   )r†   r    Ú	use_viewsr‡  rW   rz  Ú	addressesrè   r�   r}   ÚtableÚschema_namer  ÚirŒ   ÚctypeÚ	ctype_defs                    r@   rG  Ú(ComponentReflectionTest.test_get_columns•  sô  € ö Ü×'Ñ'‰FàˆFà ŸK™K×-Ñ-¨t¯{©{×/JÑ/JˆyÞÚJ‰Kà"Ð$5Ð6ˆKä�zÓ"ˆÜ!$ [¸)Ð2D×!EÑˆJØ ˆKØ×#Ñ# JÐ#ÐCˆDÜ”C˜“I ‘M¤3 t£9Ô-ô $ E§M¡M×2‘�Ü�C—H‘H˜d™g f™oÔ.Ø™ ™×1Ñ1�ØŸH™H�	Ü˜i¬¯©×)<Ñ)<×=Ñ=Ø )× 3Ñ 3�Iô —?’? 8×,Ñ,°Ü—N‘NÜ×&Ñ&ð?ó 2ô !*§¡�Iô
 ÜÜ˜EŸM™MÓ*ß%™ i×&7Ñ&7Ó8ß%™ä )× 1Ñ 1Ü )× 1Ñ 1Ü )× 2Ñ 2Ü )§¡Ü )§¡Ü )× 0Ñ 0Ü )× 1Ñ 1ðó
óð ñð" —x”x §¤¨4©7°6¬?»EðCô#ð* ——’Ø™7 9Ñ-Ô5Ð5Ð5ôQ 3ò "FrC   c                 óˆ   • U R                  5       nU R                  U   n[        U[        5       US9nU R	                  X4SS9  g )Nró   F)Ústrict_constraints)rp   rÐ   r   r   Úassert_tables_equal)r†   r    r}   r~   Úreflected_user_tmps        r@   Útest_reflect_table_temp_tableÚ5ComponentReflectionTest.test_reflect_table_temp_tableá  sL   € à×)Ñ)Ó+ˆ
Ø—;‘;˜zÑ*ˆä"Øœ›
°*ñ
Ðð 	× Ñ Ø¸Uð 	!ò 	
rC   c                 ó.  • U R                  5       nU R                  U   n[        U5      nUR                  U5      n[	        [        U5      S:„  [        U5      5        [        UR                  5       H   u  pg[        UR                  XV   S   5        M"     g )Nr   rt   )
rp   rÐ   r   r  r+   r¯  r°  r±  r   rt   )r†   r    r}   r~   r�   r  r¿  rŒ   s           r@   Útest_get_temp_table_columnsÚ3ComponentReflectionTest.test_get_temp_table_columnsí  sy   € à×)Ñ)Ó+ˆ
Ø—;‘;˜zÑ*ˆÜ�zÓ"ˆØ×Ñ 
Ó+ˆÜ”�D“	˜A‘œs 4›yÔ)ä × 0Ñ 0Ö1‰FˆAÜ�—‘˜$™' &™/Ö*ò 2rC   c                 ó†   • [        U5      nUR                  S5      n[        U Vs/ sH  oDS   PM	     sn/ SQ5        g s  snf )Nr©   rt   )rP   rt   rÏ   )r   r  r   )r†   r    r�   r  rŒ   s        r@   Útest_get_temp_view_columnsÚ2ComponentReflectionTest.test_get_temp_view_columnsø  s=   € ô �zÓ"ˆØ×Ñ Ó-ˆÜ¡DÓ)¡D˜S�Œ[¡DÑ)Ò+@ÕAùÒ)s   ¦>)Fc                 ó  • U(       a  [         R                  R                  nOS nU R                  R                  U R                  R
                  pT[        U5      nU R                  US9nUR                  UR                  US9nU R                  U/XsUR                  4   /U R                  5        UR                  UR                  US9n	XsUR                  4   S   n
[        U	S   U
5        [         R                  R                  R                  5          [        U	S   S5        S S S 5        U R                  R                   R                  nU R                  UR                  X³S9/XsU4   /U R                  5        g ! , (       d  f       N_= f)NrV   r
  rt   r˜  )r   r   rZ   rÐ   rz  r“  r   r  rJ  rt   Ú_check_listr  r   rX   r  Úfail_ifr£  )r†   r    r‡  rW   rz  r¼  r�   r©  Ú
users_consÚ	addr_consÚexp_colsrª  s               r@   rK  Ú.ComponentReflectionTest.test_get_pk_constraint   s\  € ö
 Ü—^‘^×/Ñ/‰FàˆFàŸ;™;×,Ñ,¨d¯k©k×.IÑ.IˆyÜ�zÓ"ˆØ�l‰l &ˆlÐ)ˆà×+Ñ+¨E¯J©J¸vÐ+ÐFˆ
Ø×ÑØˆL˜3¨¯
©
Ð3Ñ4Ð5°t×7MÑ7Mô	
ð ×*Ñ*¨9¯>©>À&Ð*ÐIˆ	Ø 	§¡Ð/Ñ0Ð1FÑGˆÜˆIÐ+Ñ,¨hÔ7ä×Ñ×/Ñ/×7Ñ7Õ9Ü�	˜&Ñ! =Ô1÷ :ð —‘×+Ñ+×0Ñ0ˆØ×ÑØ×#Ñ# FÐ#Ð:Ð;Ø˜&Ð!Ñ"Ð#Ø×"Ñ"õ	
÷	 :Õ9ús   ÄE>Å>
FÚPK_test_tableÚpk_test_tableÚmixedCasePKzpk.with.dotsÚpk_namec                 ó"  • [        SU[        S[        5      [        S[        S5      5      [        R
                  " SUS95        UR                  U5        [        U5      nUR                  S5      n[        US   U5        [        US   S/5        g)	zRTest that primary key constraint names with various casing are
properly reflected.rO   rP   rS   rT   r'  rt   r
  N)
r   r   r   r   rw   r,  rø   r   rJ  r   )r†   r    r`   rÙ  r�   Úpk_conss         r@   Ú"test_get_pk_constraint_quoted_nameÚ:ComponentReflectionTest.test_get_pk_constraint_quoted_name!  s„   € ô 	ØØÜ�4œÓ!Ü�6œ6 "›:Ó&Ü×#Ò# D¨wÑ7ô	
ð 	×Ñ˜JÔ'ä�zÓ"ˆØ×(Ñ(¨Ó6ˆäˆG�F‰O˜WÔ%ÜˆGÐ)Ñ*¨T¨FÕ3rC   c                 óP  • U(       a  [         R                  nOS nU R                  R                  U R                  R                  pT[        U5      nUn[        R                  R                  R                  (       a§  UR                  UR                  US9nUS   n	[        R                  R                  R                  5          [        U	S   S5        S S S 5        [        U	S   U5        [        U	S   UR                  5        [        U	S   S/5        [        U	S	   S
/5        UR                  UR                  US9n
U
S   n	[        R                  R                  R                  5          [!        U	S   S L5        S S S 5        [        U	S   U5        [        U	S   UR                  5        [        U	S   S/5        [        U	S	   S/5        U R                  R"                  R                  n[        UR                  X³S9/ 5        g ! , (       d  f       GN9= f! , (       d  f       N¢= f)NrV   r   rt   ry  r  r   r  r{  r
  r�  r”  )r   rZ   rÐ   rz  r“  r   r   rX   r±  r9   rN  rt   r&  rÑ  r   Úimplicitly_named_constraintsr+   r£  )r†   r    r‡  rW   rz  r¼  r�   Úexpected_schemaÚusers_fkeysÚfkey1Ú
addr_fkeysrª  s               r@   rO  Ú-ComponentReflectionTest.test_get_foreign_keys@  sÐ  € ö
 Ü×'Ñ'‰FàˆFà ŸK™K×-Ñ-¨t¯{©{×/JÑ/JˆyÜ�zÓ"ˆØ ˆô ×Ñ×9Ñ9×A×AØ×/Ñ/°·
±
À6Ð/ÐJˆKØ ‘NˆEä×!Ñ!×3Ñ3×;Ñ;Õ=Ü�E˜&‘M <Ô0÷ >ô �Ð'Ñ(¨/Ô:Ü�Ð&Ñ'¨¯©Ô4Ü�Ð(Ñ)¨I¨;Ô7Ü�Ð+Ñ,Ð/?Ð.@ÔAð ×*Ñ*¨9¯>©>À&Ð*ÐIˆ
Ø˜1‘ˆä×Ñ×:Ñ:×BÑBÕDÜ�E˜&‘M¨Ð-Ô.÷ Eô 	ˆEÐ#Ñ$ oÔ6ÜˆEÐ"Ñ# U§Z¡ZÔ0ÜˆEÐ$Ñ%¨	 {Ô3ÜˆEÐ'Ñ(Ð+;Ð*<Ô=à—‘×+Ñ+×0Ñ0ˆÜˆD×!Ñ! &Ð!Ð8¸"Õ=÷+ >Ö=ú÷ EÕDús   ÃHÅ*HÈ
HÈ
H%ÚFK_users_idÚfk_users_idÚmixedCaseNamezfk.with.dotsÚfk_namec                 óB  • [        SU[        S[        SS9SS9  [        SU[        S[        SS9[        S[        5      [        R                  " S/S/US	9SS9  UR                  U5        [        U5      nUR                  S5      n[        [        U5      S
5        US   n[        R                  R                  R                  5          [        US   U5        SSS5        [        US   S5        [        US   S/5        [        US   S/5        g! , (       d  f       N>= f)zRTest that foreign key constraint names with various casing are
properly reflected.Ú	users_refr{  TrQ   rí   Úuser_ordersÚorder_idzusers_ref.user_idr'  rõ   r   rt   Nr   r  r
  )r   r   r   rw   r÷   rø   r   rN  r   r¯  r   rX   r&  rÑ  )r†   r    r`   rè  r�   ÚfkeysÚfkeys          r@   Ú!test_get_foreign_keys_quoted_nameÚ9ComponentReflectionTest.test_get_foreign_keys_quoted_namej  s  € ô 	ØØÜ�9œg°4Ñ8Øò		
ô 	ØØÜ�:œw°DÑ9Ü�9œgÓ&Ü×#Ò#Ø�Ø$Ð%Øñð
 ò	
ð 	×Ñ˜JÔ'ä�zÓ"ˆØ×%Ñ% mÓ4ˆäŒC�‹J˜ÔØ�Q‰xˆä×Ñ×/Ñ/×7Ñ7Õ9Ü��V‘˜gÔ&÷ :ô 	ˆDÐ!Ñ" KÔ0ÜˆDÐ#Ñ$ y kÔ2ÜˆDÐ&Ñ'¨)¨Õ5÷ :Õ9ús   ÃDÄ
Dc                 ób  • U R                  SUR                  R                  -  S[        R                  R
                  -  S[        R                  R
                  -  5      u  p#n[        U5      nUR                  UR                  5      n[        [        U5      S5        US   n[        US   [        R                  R
                  5        [        US   UR                  5        [        US   S	/5        [        US
   S/5        UR                  UR                  [        R                  R
                  S9n[        [        U5      S5        US   n	[        U	S   S UR                  R                  4;   5        [        U	S   UR                  5        [        U	S   S	/5        [        U	S
   S/5        g )Nz%s.local_tablez%s.remote_tablez%s.remote_table_2rõ   r   r  r   r  rP   r
  r¦  rV   r¨  )rÐ   rƒ   rµ  r   r   rZ   r   rN  rt   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Š  € ð 59·K±KØ˜z×1Ñ1×EÑEÑEØ¤§¡× :Ñ :Ñ:Ø¤'§.¡.×"<Ñ"<Ñ<ó5
Ñ1ˆ >ô �zÓ"ˆà×+Ñ+¨K×,<Ñ,<Ó=ˆÜŒC�Ó˜aÔ à˜A‘ˆÜˆEÐ#Ñ$¤g§n¡n×&@Ñ&@ÔAÜˆEÐ"Ñ# ^×%8Ñ%8Ô9ÜˆEÐ$Ñ%¨ vÔ.ÜˆEÐ'Ñ(¨;¨-Ô8à×,Ñ,Ø×Ñ¤g§n¡n×&@Ñ&@ð -ð 
ˆô 	ŒC�Ó˜qÔ!à˜Q‘ˆäØÐ#Ñ$àØ×"Ñ"×6Ñ6ðñô	
ô 	ˆEÐ"Ñ# [×%5Ñ%5Ô6ÜˆEÐ$Ñ%¨ vÔ.ÜˆEÐ'Ñ(¨:¨,Õ7rC   c                 ój  • U(       a  [         R                  nOS n[        U5      nUR                  SUS9nU R	                  US9nU R                  XVUS4   U R                  5        U R                  R                  R                  nU R                  UR                  XsS9XcU4   U R                  5        g )Nrz  rV   )
r   rZ   r   rR  r>  rÐ  rA  rÐ   r£  rt   )r†   r    r‡  rW   r�   Úindexesr©  rª  s           r@   rS  Ú(ComponentReflectionTest.test_get_indexes¿  s¸   € ö
 Ü×'Ñ'‰FàˆFô �zÓ"ˆØ×"Ñ" 7°6Ð"Ð:ˆØ×Ñ fÐÐ-ˆØ×ÑØ˜& 'Ð*Ñ+¨T×-FÑ-Fô	
ð —‘×+Ñ+×0Ñ0ˆØ×ÑØ×Ñ˜VÐÐ3Ø˜Ð Ñ!Ø×%Ñ%õ	
rC   )r¬  r¯  )r®  r°  ztname,ixnamec                 ó²  • [        U5      nUR                  U5      nU R                  5       S U4   nU R                  XVU R                  5        [        U[        5       US9n[        [        UR                  5      S5        [        [        UR                  5      S   R                  U5        [        [        UR                  5      S   R                  U5        g )Nró   rõ   r   )r   rR  r>  rÐ  rA  r   r   r   r¯  rø  r   r  r½  rt   )r†   r    ÚtnameÚixnamer�   rø  Úexpected_indexesrŽ  s           r@   Útest_get_noncol_indexÚ-ComponentReflectionTest.test_get_noncol_indexÙ  sª   € ô �zÓ"ˆØ×"Ñ" 5Ó)ˆð  ×+Ñ+Ó-¨t°U¨mÑ<ÐØ×Ñ˜°D×4MÑ4MÔNä�%œ›°:Ñ>ˆÜŒC�—	‘	‹N˜AÔÜŒD�—‘‹O˜AÑ×$Ñ$ aÔ(ÜŒD�—‘‹O˜AÑ×#Ñ# VÕ,rC   ÚIX_test_dataÚix_test_dataÚmixedCaseIndexzix.with.dotsÚidx_namec                 óÜ  • [        SU[        S[        SS9[        S[        S5      5      5      n[	        X4R
                  R                  5        UR                  U5        [        U5      nUR                  S5      nU Vs/ sH  owS   PM	     nnX8;   d   SU S	U 35       eU Vs/ sH  owS   U:X  d  M  UPM     n	n[        [        U	5      S
5        [        U	S   S   S/5        gs  snf s  snf )zATest that index names with various casing are properly reflected.rO   rP   TrQ   rS   rT   rt   z	Expected ú in rõ   r   rã   N)r   r   r   r   r$   rº   rS   rø   r   rR  r   r¯  )
r†   r    r`   r  rŽ  r�   rø  rÓ   Úindex_namesÚmatching_idxs
             r@   Útest_get_indexes_quoted_nameÚ4ComponentReflectionTest.test_get_indexes_quoted_nameï  sê   € ô ØØÜ�4œ¨dÑ3Ü�6œ6 "›:Ó&ó	
ˆô 	ˆhŸ™Ÿ™Ô!à×Ñ˜JÔ'ä�zÓ"ˆØ×"Ñ" <Ó0ˆá.5Ó6©g s˜6”{©gˆÐ6ØÓ&ÐO¨)°H°:¸TÀ+ÀÐ(OÓOÐ&ñ (/ÓJ¡w °f±+ÀÑ2IŸ¡wˆÐJÜŒC�Ó˜qÔ!ÜˆL˜‰O˜NÑ+¨f¨XÕ6ùò 7ùò Ks   Á?C$Â$C)Â3C)c                 ó¼   • [        U5      nU R                  5       nUR                  U5      nU R                  SS9S U4   nU R	                  XEU R
                  5        g )NT)rK  )r   rp   rV  rL  rÐ  rA  )r†   r    r�   rt   Ú	reflectedr©  s         r@   Ú&test_get_temp_table_unique_constraintsÚ>ComponentReflectionTest.test_get_temp_table_unique_constraints  s[   € ô �zÓ"ˆØ×#Ñ#Ó%ˆØ×/Ñ/°Ó5ˆ	Ø�l‰l ˆlÐ% t¨T lÑ3ˆØ×Ñ˜¨×)BÑ)BÕCrC   c                 óZ  • [        U5      nU R                  5       nUR                  U5      nU H  nUR                  SS 5        M     SS/SS./n[        R
                  R                  R                  (       a  / US   S'   [        U Vs/ sH  owS   S:X  d  M  UPM     snU5        g s  snf )	Nr1  FrÏ   rÀ  )r�  rã   rt   r   r2  rt   )	r   rp   rR  rü  r   rX   Úindex_reflects_included_columnsr9   r   )r†   r    r�   r}   rø  ÚindÚexpectedrÓ   s           r@   Útest_get_temp_table_indexesÚ3ComponentReflectionTest.test_get_temp_table_indexes  s§   € ä�zÓ"ˆØ×)Ñ)Ó+ˆ
Ø×"Ñ" :Ó.ˆÛˆCØ�G‰GÐ% tÖ,ñ ð ¨u¨g¸}ÑMð
ˆô ×Ñ×;Ñ;×C×CØ-/ˆH�Q‰KÐ)Ñ*ÜÙ#ÓD™G�S¨6¡{°mÑ'C�S™GÑDØõ	
ùÚDs   Â
B(ÂB(c                 óT  • U(       a  [         R                  nOS n[        SS/S.S/ SQS.S/ SQS.SS	S
/S.SS/S.SS/S./[        R                  " S5      S9n[        SU[        S[        R                  " S5      5      [        S[        R                  " S5      5      [        S[        R                  5      [        S	[        R                  " S5      5      [        S
[        R                  " S5      5      US9nU H.  nUR                  [        R                  " US   SUS   065        M0     UR                  U5        [        U5      n[        UR                  SUS9[        R                  " S5      S9n	[        5       n
[!        [#        U5      [#        U	5      5        [%        XY5       Hh  u  p¼UR'                  SS 5      nU(       a  U
R)                  U5        [!        UR'                  SS 5      S 5        UR'                  SS 5        [!        X¼5        Mj     [+        5       n[        SUUUS9n	U	R,                   Vs1 sH  oÿR.                  iM     nnU	R0                   Vs1 sH0  n[3        U[        R                  5      (       d  M$  UR.                  iM2     snR5                  S/5      nUR7                  U5      (       a   eU
(       a   [!        U
U5        [!        U[        5       5        U R8                  R:                  R.                  n[!        UR                  UUS9/ 5        g s  snf s  snf )NÚunique_arÄ   )rt   rã   Úunique_a_b_c)rÄ   Úbrº   Úunique_c_a_b)rº   rÄ   r  Úunique_asc_keyÚascrì   zi.have.dotsr  zi have spacesrº   rt   ©rì   Útesttblr–  rŽ  rV   rã   rD  r
  r1  )rô   rW   )r   rZ   r‹  ÚoperatorÚ
itemgetterr   r   rw   r   r   Úappend_constraintr-  r�   r   rV  rÈ  r   r¯  r®  rü  rá  r   rø  rt   Úconstraintsr<  Ú
differencer·  rÐ   r£  )r†   r`   r    r‡  rW   Úuniquesr½  rI  r�   r  Únames_that_duplicate_indexr;  ÚreflÚdupeÚreflected_metadatarÓ   Ú	idx_namesÚuqÚuq_namesrª  s                       r@   rW  Ú3ComponentReflectionTest.test_get_unique_constraints)  sÉ  € ö Ü×'Ñ'‰FàˆFÜà#°c°UÑ;Ø'ºÑIØ'ºÑIØ)¸EÀ5¸>ÑJØ&¸¸Ñ>Ø(¸3¸%Ñ@ðô ×#Ò# FÓ+ñ

ˆô ØØÜ�3œŸ	š	 "›Ó&Ü�3œŸ	š	 "›Ó&Ü�3œŸ
™
Ó#ä�5œ"Ÿ)š) B›-Ó(Ü�5œ"Ÿ)š) B›-Ó(Øñ

ˆó ˆBØ×#Ñ#Ü×#Ò# R¨Ñ%7ÐI¸bÀ¹jÑIöñ ð 	�‰�ZÔ ä�zÓ"ˆÜØ×'Ñ'¨	¸&Ð'ÐAÜ×#Ò# FÓ+ñ
ˆ	ô
 &)£UÐ"äŒC�‹Lœ#˜i›.Ô)ä˜gÖ1‰JˆDð —8‘8Ð.°Ó5ˆDÞØ*×.Ñ.¨tÔ4Ü�—‘˜ DÓ)¨4Ô0à�H‰HÐ&¨Ô-Ü�ŽOñ 2ô &›ZÐÜØØØ$Øñ	
ˆ	ð *3×):Ò):Ó;Ñ): #—X”XÑ):ˆ	Ð;ð  ×+Ò+ó
á+�Ü˜"œb×1Ñ1×2ó ˆB�GŒGÙ+ñ
÷ ‰*�nÐ%Ó
&ð	 	ð ×)Ñ)¨(×3Ñ3Ð3Ð3Þ%ÜÐ*¨IÔ6Ü�œ#›%Ô à—‘×+Ñ+×0Ñ0ˆÜˆD×'Ñ'¨°vÐ'Ð>ÀÕCùò <ùò
s   È9L É"L%ÊL%ÚUQ_emailÚuq_emailÚmixedCaseUQzuq.with.dotsÚuq_namec                 óV  • [        SU[        S[        SS9[        S[        S5      5      [        R
                  " SUS95        UR                  U5        [        U5      nUR                  S5      n[        [        U5      S5        [        US	   S
   U5        [        US	   S   S/5        g)zMTest that unique constraint names with various casing are
properly reflected.rO   rP   TrQ   ÚemailrT   r'  rõ   r   rt   rã   N)r   r   r   r   rw   r-  rø   r   rV  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Ü�7œF 2›JÓ'Ü×Ò ¨gÑ6ô	
ð 	×Ñ˜JÔ'ä�zÓ"ˆØ×-Ñ-¨lÓ;ˆäŒC�‹L˜!ÔÜˆG�A‰J�vÑ Ô(ÜˆG�A‰J�~Ñ&¨¨	Õ2rC   c                 ó¦   • U(       a  [         R                  nOS n[        U5      nS H&  nUR                  XSS9n[	        [        U5      5        M(     g )Nr­  rV   )r   rZ   r   rB  r+   Úbool)r†   r    r‡  rW   r�   Úviewrç  s          r@   rD  Ú0ComponentReflectionTest.test_get_view_definition¤  sK   € ö
 Ü×'Ñ'‰FàˆFÜ�zÓ"ˆÛDˆDØ×(Ñ(¨Ð(Ð=ˆAÜ”D˜“GÖò ErC   c                 ó  • [        U5      n[        [        5         UR                  S5        S S S 5        [        [        5         UR                  S5        S S S 5        g ! , (       d  f       N8= f! , (       d  f       g = f)NÚview_does_not_existrz  )r   r   r!   rB  rŸ   s      r@   Ú'test_get_view_definition_does_not_existÚ?ComponentReflectionTest.test_get_view_definition_does_not_exist²  sX   € ä�zÓ"ˆÜÔ+Õ,Ø×$Ñ$Ð%:Ô;÷ -äÔ+Õ,Ø×$Ñ$ WÔ-÷ -Ð,÷ -Õ,úç,Õ,ús   ›AÁA0Á
A-Á0
A>c                 ó¾   • [        U5      nS HG  u  p4UR                  U5      nU Vs0 sH  ofS   U_M
     snU   nUR                  SS5      (       a  MG   e   gs  snf )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.

))rz  r{  )r“  rŠ  )rˆ  r‰  rt   rø  TN)r   r  Úget)r†   r    r�   rû  Úcnamer  rº   Úid_s           r@   Útest_autoincrement_colÚ.ComponentReflectionTest.test_autoincrement_colº  si   € ô �zÓ"ˆó
‰LˆEð
 ×#Ñ# EÓ*ˆDÙ)-Ó.© A�V‘9˜a’<©Ñ.¨uÑ5ˆCØ—7‘7˜?¨D×1Ó1Ð1Ð1ò
ùò /s   ¨Ac                 óÒ  • [        [        R                  5      nU(       a  [        R                  OS n[        R
                  R                  R                  (       aS  UR                  SUS9n[        [        U[        5      5        UR                  SUS9n[        [        U[        5      5        g [        [        5         UR                  SUS9  S S S 5        g ! , (       d  f       g = f)Nrz  rV   r£  )r   r   r>   rZ   r   rX   r:  r9   r;  r+   r<  r<   r   r=  )r†   r‡  r�   rW   r>  s        r@   r?  Ú.ComponentReflectionTest.test_get_table_optionsÓ  s§   € ô ”v—y‘yÓ!ˆÞ'1”×#Ò#°tˆä×Ñ×1Ñ1×9×9Ø×(Ñ(¨¸Ð(Ð@ˆCÜ”J˜s¤DÓ)Ô*à×(Ñ(Ð)9À&Ð(ÐIˆCÜ”J˜s¤DÓ)Õ*äÔ2Õ3Ø×&Ñ& w°vÐ&Ñ>÷ 4×3Ö3ús   Â>CÃ
C&c           	      óÆ  • [        [        R                  5      n[        R                  R
                  R                  (       aa  U(       a  [        R                  OS nUR                  US9nUR                  US9 Vs0 sH  nX54UR                  XSS9_M     nn[        XF5        g [        [        5         UR                  5         S S S 5        g s  snf ! , (       d  f       g = f)NrV   )r   r   r>   r   rX   r:  r9   rZ   Úget_multi_table_optionsrŠ  r;  r   r   r=  )r†   r‡  r�   rW   r>  r½  r©  s          r@   Útest_multi_get_table_optionsÚ4ComponentReflectionTest.test_multi_get_table_optionsä  sÀ   € ä”v—y‘yÓ!ˆÜ×Ñ×1Ñ1×9×9Þ+5”V×'Ò'¸4ˆFØ×.Ñ.°fÐ.Ð=ˆCð "×1Ñ1¸Ð1Ñ@óá@�Eð � ×!7Ñ!7¸Ð!7Ð!MÒMÙ@ð ð ô ��MäÔ2Õ3Ø×,Ñ,Ô.÷ 4Ð3ùò÷ 4Õ3ús   Á<CÂ3CÃ
C c                 ó   ^• U4S jnU$ )Nc                 óÒ  >• [        T5      nU" US5        XS.nU (       a  U " 5       n / n[        R                  U;   a  UR                  / SQ5        [        R                  U;   a  UR                  SS/5        [        R
                  U;   a  UR                  SS/5        U (       a  XS'   U(       a  X‡S'   U" U UUUR                  S5      S	9n	U/n
U[        R                  :X  a2  UR                  5       nUR                  S
5        U
R                  U5        U[        R                  :X  a2  UR                  5       nUR                  S5        U
R                  U5        [        T5      X©4$ )Nr“  )r5   r¾   )rš  rz  údoes-not-existrì  rJ  rë  rW   ro  )rW   r5   r¾   ro  r5   r¾   )r   r   rk  r=  rl  rm  r=  r    rh  Úcopyrü  Úappend)rW   r5   r¾   rg  Úsingle_reflect_fnÚ
exp_methodr�   r|   ro  r©  ÚkwsÚnkwr    s               €r@   Úprovide_fixtureÚ>ComponentReflectionTest.get_multi_exp.<locals>.provide_fixtureö  sC  ø€ ô ˜:Ó&ˆDñ ˜dÐ$5Ô6Ø Ñ/ˆBÞÙ›�àˆLä×Ñ 4Ó'Ø×#Ñ#Ú?ôô �‰ $Ó&Ø×#Ñ#Ð%8Ð:JÐ$KÔLÜ×+Ñ+¨tÓ3Ø×#Ñ# ^Ð5EÐ$FÔGæØ%�8‘ÞØ%1�>Ñ"áØØØØŸV™V NÓ3ñ	ˆCð �$ˆCØœ×+Ñ+Ó+Ø—g‘g“i�Ø—‘˜Ô Ø—
‘
˜3”Ø”z×'Ñ'Ó'Ø—g‘g“i�Ø—‘˜”Ø—
‘
˜3”ä˜:Ó&¨Ð0Ð0rC   rD   )r†   r    rQ  s    ` r@   Úget_multi_expÚ%ComponentReflectionTest.get_multi_expô  s   ø€ õ,	1ð\ ÐrC   c                 óÀ   • U" UUUU[         R                  U R                  5      u  pgnU H0  n	UR                  5         UR                  " S0 U	D6n
[        X¨5        M2     g ©NrD   )r   r;  rï  rŽ   rE  r   ©r†   rS  rW   r5   r¾   rg  r�   rO  r©  r|   Úresults              r@   Ú#test_multi_get_table_options_tablesÚ;ComponentReflectionTest.test_multi_get_table_options_tables&	  sc   € ñ
 'ØØØØÜ×'Ñ'Ø×Ñó
‰ˆ�3ó ˆBØ×ÑÔØ×1Ò1Ñ7°BÑ7ˆFÜ�Öò rC   c                 ó¾   • U" UUUU[         R                  U R                  5      u  pgnU H/  n	UR                  5         [	        UR
                  " S0 U	D6U5        M1     g rV  )r   rZ  rô  rŽ   r   Úget_multi_table_comment)
r†   rS  rW   r5   r¾   rg  r�   rO  r©  r|   s
             r@   Útest_get_multi_table_commentÚ4ComponentReflectionTest.test_get_multi_table_comment8	  s`   € ñ
 'ØØØØÜ×'Ñ'Ø×Ñó
‰ˆ�3ó ˆBØ×ÑÔÜ�×,Ò,Ñ2¨rÑ2°CÖ8ò rC   c           	      ó  • S[         4S jn[        U[        5      (       a6  [        UR	                  5        VVs0 sH  u  pVU" U5      U_M     snnX#5        g [        U Vs/ sH
  oT" U5      PM     snX#5        g s  snnf s  snf )Nrò  c                 óN   • [         R                  " SSU 5      R                  5       $ )Nz['\" ]rx  )ÚreÚsubrX  )rò  s    r@   Ú_cleanÚ:ComponentReflectionTest._check_expressions.<locals>._cleanJ	  s   € Ü—6’6˜) R¨Ó.×4Ñ4Ó6Ð6rC   )r_  r<  r<   r   rã  )r†   rX  r©  Úerr_msgrc  Úerç  s          r@   Ú_check_expressionsÚ*ComponentReflectionTest._check_expressionsI	  sk   € ð	7œô 	7ô �cœ4× Ñ Ü¨&¯,©,¬.Ô9©.¡$ !‘˜“˜A’©.Ò9¸3ÕHä¡FÓ+¡F˜q�˜–¡FÑ+¨SÕ:ùó :ùâ+s   ¹A9
Á A?c                 ó`  • Uc  [        XU5        g [        [        U5      [        U5      U5        [        X5       Hp  u  pV[        U5      [        U5      -   HP  nXs;   d  Xu;   d  M  Xv;   d  M  U SU SU 3nUS;   a  U R	                  XW   Xg   U5        M?  [        XW   Xg   U5        MR     Mr     g )Nz - )r3  r.  )r   r¯  r®  rÈ  rg  )	r†   rX  r©  Úreq_keysÚmsgÚrrf  rÅ   re  s	            r@   rÐ  Ú#ComponentReflectionTest._check_listR	  sŸ   € ØÑÜ�˜SÕ!ä”�F“œS ›X sÔ+Ü˜FÖ(‘�Ü˜Q›¤# a£&œ�AØ“}¨­°AµFØ%( E¨¨Q¨C¨s°1°#Ð"6˜ØÐ AÓAØ ×3Ñ3°A±D¸!¹$ÀÖHä ¡ a¡d¨GÖ4ó )ò )rC   c                 óÔ   • [        [        UR                  5       5      [        UR                  5       5      5        U H(  nX   X%   pvU(       a  U/U/pvU R                  XgX55        M*     g r¤   )r   rÈ  ÚkeysrÐ  )r†   rX  r©  rj  Ú
make_listsrÅ   rl  rf  s           r@   Ú_check_table_dictÚ)ComponentReflectionTest._check_table_dict`	  sT   € ÜŒC�—‘“Ó¤ C§H¡H£J£Ô0ÛˆAØ‘9˜c™fˆqÞØ�s˜Q˜C�1Ø×Ñ˜Q 8Ö/ò	 rC   c                 óâ   • U" UUUU[         R                  U R                  5      u  pgnU HA  n	UR                  5         UR                  " S0 U	D6n
U R                  X¨U R                  5        MC     g rV  )r   r  r  rŽ   Úget_multi_columnsrq  r  rW  s              r@   Útest_get_multi_columnsÚ.ComponentReflectionTest.test_get_multi_columnsh	  sq   € ñ 'ØØØØÜ×!Ñ!Ø×Ñó
‰ˆ�3ó ˆBØ×ÑÔØ×+Ò+Ñ1¨bÑ1ˆFØ×"Ñ" 6°×0JÑ0JÖKò rC   c                 óà   • U" UUUU[         R                  U R                  5      u  pgnU H@  n	UR                  5         UR                  " S0 U	D6n
U R                  X¨U R                  SS9  MB     g )NT)rp  rD   )r   rJ  r  rŽ   Úget_multi_pk_constraintrq  r  rW  s              r@   Útest_get_multi_pk_constraintÚ4ComponentReflectionTest.test_get_multi_pk_constraintz	  sy   € ñ
 'ØØØØÜ×'Ñ'Ø�L‰Ló
‰ˆ�3ó ˆBØ×ÑÔØ×1Ò1Ñ7°BÑ7ˆFØ×"Ñ"Ø˜T×3Ñ3Àð #ó ò rC   c                 ó  • [         R                  R                  R                  (       d[  X4 HS  nUR	                  5        H<  n[        U5      S:”  d  M  [        S U 5       5      (       d  M-  UR                  US9  M>     MU     g g )Nrõ   c              3   óf   #   • U H(  oR                  S 5      S[        R                  4;   v •  M*     g7f)rt   N)r=  r,   rj  )Ú.0rç  s     r@   Ú	<genexpr>Ú7ComponentReflectionTest._adjust_sort.<locals>.<genexpr>’	  s'   é € ð ,ÙCF¸aŸ™˜f›¨$´·±Ð)9Ö9Â3ùs   ‚/1r  )r   rX   rß  r9   rä  r¯  ÚanyÚsort)r†   rX  r  rì   Úobjr  s         r@   Ú_adjust_sortÚ$ComponentReflectionTest._adjust_sortŽ	  sn   € Ü×Ñ×<Ñ<×D×DØÓ)�ØŸ:™:ž<�CÜ˜3“x !•|¬ñ ,ÙCFó,÷ )ó )ð Ÿ™ S˜Ó)ó	 (ò *ð ErC   c                 ó  • U" UUUU[         R                  U R                  5      u  pgnU HT  n	UR                  5         UR                  " S0 U	D6n
U R                  X¨S 5        U R                  X¨U R                  5        MV     g )Nc                 ó   • [        U S   5      $ )Nr
  ©Útuple©Úds    r@   rÆ   ÚEComponentReflectionTest.test_get_multi_foreign_keys.<locals>.<lambda>¨	  s   € ¤u¨QÐ/DÑ-EÔ'FrC   rD   )r   rN  r(  rŽ   Úget_multi_foreign_keysrƒ  rq  r+  rW  s              r@   Útest_get_multi_foreign_keysÚ3ComponentReflectionTest.test_get_multi_foreign_keys—	  s…   € ñ
 'ØØØØÜ×&Ñ&Ø�L‰Ló
‰ˆ�3ó ˆBØ×ÑÔØ×0Ò0Ñ6°2Ñ6ˆFØ×ÑØÑFôð ×"Ñ" 6°×0FÑ0FÖGò rC   c                 óâ   • U" UUUU[         R                  U R                  5      u  pgnU HA  n	UR                  5         UR                  " S0 U	D6n
U R                  X¨U R                  5        MC     g rV  )r   rR  r>  rŽ   Úget_multi_indexesrq  rA  rW  s              r@   Útest_get_multi_indexesÚ.ComponentReflectionTest.test_get_multi_indexes¬	  sq   € ñ
 'ØØØØÜ×!Ñ!Ø×Ñó
‰ˆ�3ó ˆBØ×ÑÔØ×+Ò+Ñ1¨bÑ1ˆFØ×"Ñ" 6°×0IÑ0IÖJò rC   c                 ó  • U" UUUU[         R                  U R                  5      u  pgnU HT  n	UR                  5         UR                  " S0 U	D6n
U R                  X¨S 5        U R                  X¨U R                  5        MV     g )Nc                 ó   • [        U S   5      $ )Nrã   r‡  r‰  s    r@   rÆ   ÚKComponentReflectionTest.test_get_multi_unique_constraints.<locals>.<lambda>Î	  s   € ´U¸1¸^Ñ;LÔ5MrC   rD   )r   rV  rL  rŽ   Úget_multi_unique_constraintsrƒ  rq  rO  rW  s              r@   Ú!test_get_multi_unique_constraintsÚ9ComponentReflectionTest.test_get_multi_unique_constraints¾	  s€   € ñ
 'ØØØØÜ×,Ñ,Ø�L‰Ló
‰ˆ�3ó ˆBØ×ÑÔØ×6Ò6Ñ<¸Ñ<ˆFØ×Ñ˜fÑ+MÔNØ×"Ñ" 6°×0NÑ0NÖOò	 rC   c                 ó  • U" UUUU[         R                  U R                  5      u  pgnU HT  n	UR                  5         UR                  " S0 U	D6n
U R                  X¨S 5        U R                  X¨U R                  5        MV     g )Nc                 ó   • [        U S   5      $ ©Nr\  r‡  r‰  s    r@   rÆ   ÚJComponentReflectionTest.test_get_multi_check_constraints.<locals>.<lambda>á	  s   € ´U¸1¸Y¹<Ô5HrC   rD   )r   r^  r`  rŽ   Úget_multi_check_constraintsrƒ  rq  rc  rW  s              r@   Ú test_get_multi_check_constraintsÚ8ComponentReflectionTest.test_get_multi_check_constraintsÑ	  s€   € ñ
 'ØØØØÜ×+Ñ+Ø�L‰Ló
‰ˆ�3ó ˆBØ×ÑÔØ×5Ò5Ñ;¸Ñ;ˆFØ×Ñ˜fÑ+HÔIØ×"Ñ" 6°×0FÑ0FÖGò	 rC   r;  r  rJ  rN  rR  rV  r^  rZ  Úmethodc                 ó’   • [        U5      n[        X15      n[        [        5         U" S5        S S S 5        g ! , (       d  f       g = f)NÚtable_does_not_exists)r   Úgetattrr   r!   )r†   r   r    r�   rÒ   s        r@   Útest_not_existing_tableÚ/ComponentReflectionTest.test_not_existing_tableä	  s6   € ô0 �zÓ"ˆÜ�tÓ$ˆÜÔ+Õ,ÙÐ(Ô)÷ -×,Ö,ús	   ¦	8¸
Ac           	      ó^  ^• [         R                  mU4S jn[        R                  R	                  [         SU5         [        [        S5         [        U5      R                  [        S[        5       5      S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nc                  óT   >• UR                  S0 5      n[        S5      US'   T" U 0 UD6$ )NÚunreflectableÚerr)NÚ
some_table)Ú
setdefaultr"   )rÄ   rÅ   ÚurÚmcs      €r@   ÚpatchedÚ;ComponentReflectionTest.test_unreflectable.<locals>.patched
  s1   ø€ Ø—‘˜o¨rÓ2ˆBÜ'>¸uÓ'EˆBÐ#Ñ$Ù�q�;˜A‘;ÐrC   rt  r©  rª  )r   rt  r,   ÚpatchÚobjectr	   r"   r   Úreflect_tabler   r   )r†   r    r®  r­  s      @r@   Útest_unreflectableÚ*ComponentReflectionTest.test_unreflectable
  sx   ø€ Ü×(Ñ(ˆõ	ô
 �Z‰Z×ÑœyÐ*=¸wÕGÜ&Ô'>ÀÕFÜ˜
Ó#×1Ñ1Ü˜,¬«
Ó3°Tô÷ G÷ HÐGßFÕFú÷ HÕGús#   ½BÁ.BÁ<BÂ
B	ÂBÂ
B,r±   c                 ó²  • [        5       nU(       a  [        R                  OS nUR                  XUSS9  [	        U5      nUR                  U5      nU(       a'  XvR                  U5      -  n XvR                  U5      -  nU(       a  U Vs/ sH	  o… SU 3PM     nn[        [        UR                  5      [        U5      5        g ! [         a     NQf = fs  snf )NF)rW   r±   Úresolve_fksrw  )r   r   rZ   Úreflectr   rŠ  r“  r”  r=  r   r‹  rÐ   )	r†   r    r‡  r±   ÚmrW   r�   rÐ   rŽ  s	            r@   Útest_metadataÚ%ComponentReflectionTest.test_metadata
  sÄ   € ô
 ‹JˆÞ'1”×#Ò#°tˆØ	�	‰	�*°5Àeˆ	ÑLä�zÓ"ˆØ×%Ñ% fÓ-ˆÞØ×)Ñ)¨&Ó1Ñ1ˆFðØ×:Ñ:¸6ÓBÑB�ö Ù/5Ó6©v¨!˜  ! “o©vˆFÐ6ÜŒF�1—8‘8Óœf V›nÕ-øô	 'ó Ùðüò 7s   Á,C Â
CÃ
CÃCc                 óB  • [        SU[        S[        SS9[        S[        SS9SS9  UR                  U5        [	        U5      nUR                  S5      n[        USS05        UR                  S5      nU Vs0 sH  ofS	   US
   _M     nnSSS.n[        Xx5        g s  snf )NÚunicode_commentsÚunicodeu   Ã©è©¦è›‡áºŸÎ©r	  Úemojiu	   â˜�ï¸�âœ¨u   è©¦è›‡áºŸÎ©âœ¨rò  rt   r
  )r½  r¾  ©r   r   r   rø   r   rZ  r   r  )	r†   r    r`   r�   Útcr  rº   Úvaluer©  s	            r@   Útest_comments_unicodeÚ-ComponentReflectionTest.test_comments_unicode$
  s¬   € äØØÜ�9œg¨Ñ?Ü�7œG¨[Ñ9Ø$ò	
ð 	×Ñ˜JÔ'ä�zÓ"ˆØ×#Ñ#Ð$6Ó7ˆÜˆB�Ð)Ð*Ô+à×ÑÐ 2Ó3ˆÙ26Ó7±$¨Q�6‘˜A˜i™LÒ(±$ˆÐ7Ø)°KÑ@ˆÜˆE�ùò 8s   Á8Bc           
      ó   • [        SU[        S[        SS9SS9  UR                  U5        [	        U5      nUR                  S5      n[        USS05        UR                  S5      S   n[        US   US	   0SS05        g )
Nr¼  r¾  u&   ðŸ��ðŸ§™ðŸ��ðŸ§™â€�â™‚ï¸�ðŸ§™â€�â™€ï¸�r	  u&   ðŸŽ©ðŸ�°ðŸ�‘ðŸ¤·â€�â™€ï¸�ðŸ¤·â€�â™‚ï¸�rò  r   rt   r
  r¿  )r†   r    r`   r�   rÀ  rº   s         r@   Útest_comments_unicode_fullÚ2ComponentReflectionTest.test_comments_unicode_full9
  sŽ   € äØØÜ�7œGÐ-UÑVØ<ò		
ð 	×Ñ˜JÔ'ä�zÓ"ˆØ×#Ñ#Ð$6Ó7ˆÜˆB�ÐAÐBÔCØ×ÑÐ/Ó0°Ñ3ˆÜˆQˆv‰Y˜˜)™Ð%¨Ð1YÐ'ZÕ[rC   c                 óŽ  • [         R                  R                  [        5      n[	        SU[        S[        R                  " US95      [        S[        R                  " 5       5      5        UR                  U5        [        5       n[	        SXAS9n[        UR                  R                  R                  R                  U5        [        UR                  R                   R                  R                  5        [#        U5      nUR%                  S5      u  px[        US   R                  U5        [        US   R                  5        g )NrŽ  Úcollated)Ú	collationÚnot_collatedró   rù  )r   rX   Úget_order_by_collationr   r   r   rw   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_reflectionÚ8ComponentReflectionTest.test_column_collation_reflectionJ
  sï   € ô ×$Ñ$×;Ñ;¼FÓCˆ	ÜØØÜ�:œrŸyšy°9Ñ=Ó>Ü�>¤2§9¢9£;Ó/ô		
ð 	×Ñ˜JÔ'ä‹ZˆÜ�3˜Ñ5ˆäˆB�D‰D�M‰M×Ñ×(Ñ(¨)Ô4Ü�—‘×!Ñ!×&Ñ&×0Ñ0Ô1ä�zÓ"ˆØ!%×!1Ñ!1°#Ó!6ÑˆÜˆH�VÑ×&Ñ&¨	Ô2Ü�˜VÑ$×.Ñ.Õ/rC   rD   r¤   r-   )NF)wrE   rF   rG   rH   Úrun_insertsr°   r¯   rI   ra   rt  rp   r^   r\   rÒ  rÖ  rè  r    rj  r   rï  rô  r  Úpropertyr  r  r  r(  r+  r>  rA  rL  rO  r`  rc  r   rX   Úschema_reflectionrg  rl  rs  rv  Úschema_create_deleter{  r€  rƒ  rÜ   r  rY   r�  r•  râ  rš  r[   rz   rž  r  r£  r¦  r¡  rG  r  rÇ  rÊ  r0  rÍ  Ú!primary_key_constraint_reflectionrK  r  rÜ  rO  rï  r´  rõ  rµ   rS  r¶  r·  rþ  r  rb  r  Útemp_table_reflect_indexesr  rW  r2  rD  r:  Útable_reflectionr@  r?  rF  r  rS  r:  rp  rY  r]  rg  rÐ  rq  ru  ry  rƒ  r�  r‘  r—  rc  rž  r¤  r³  r±   r¹  rÂ  Úcomment_reflection_full_unicoderÅ  Úcolumn_collation_reflectionÚorder_by_collationrÍ  rJ   rD   rC   r@   rr  rr  q  ss  † Ø $Ð$€K�+à $ÐàñNó ðNð
 ñk-ó ðk-ðZ ñ
ó ð
ð
 ñOó ðOðB ñó ðò4ò!ò)ðZ Ø�o‰oØ�^‰^ØôðB Ø�o‰oØ�^‰^Øô"ðL Ø�o‰oØ�^‰^Øô^ð@ ñ7ó ð7ð
 Ø�o‰oØ�^‰^Øô.ð` ñ/ó ð/ð
 Ø�o‰oØ�^‰^ØôVðp ñ
ó ð
ð Ø�o‰oØ�^‰^Øôsðj ñ2ó ð2ð
 Ø�o‰oØ�^‰^ØØôCðJ ñ(ó ð(ð
 Ø�o‰oØ�^‰^Øô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×&Ñ&×.Ñ.Ð/Ø	ˆu�g×&Ñ&×6Ñ6Ð7àØØ×Ñ×$Ñ$ w×'7Ñ'7×'GÑ'GÑGð	
ð
 (ñ
ñ<6ó
ð<6ðB ×Ñ×+Ñ+ñ	
ó ,ð	
ð ×Ñ×+Ñ+ñ+ó ,ð+ð ×Ñ×+Ñ+Ø×Ñ×,Ñ,Ø×Ñ×%Ñ%ñ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óð%6ðN ×Ñ×0Ñ0Ø×Ñ×Ññ"8ó ó 1ð"8ðH ×ÒØ�4˜×)Ñ)×1Ñ1Ð2¸\ñð ×Ñ×&Ñ&ñ
ó 'óð
ð, ×ÒØ3Ø/Øñð
 ×Ñ×&Ñ&Ø×Ñ×*Ñ*Ø×Ñ×2Ñ2ñ-ó 3ó +ó 'óð-ð ×ÒØØØØØñð ×Ñ×&Ñ&ñ7ó 'óð7ð0 ×Ñ×+Ñ+Ø×Ñ×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ó 'ð2ð0 ×ÒØ	ˆ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ó0rC   rr  c                   óæ   • \ rS rSrSrSr\R                  S 5       r\R                  S 5       r	S r
S rS r\R                  R                  S	 5       r\R                  R                  S
 5       rSrg)ÚTableNoColumnsTestib
  )Úreflect_tables_no_columnsTc                 ó>   • [        SU5        UR                  U5        g ©Nró  )r   rø   ©r†   r    r`   s      r@   Útable_no_columnsÚ#TableNoColumnsTest.table_no_columnsf
  s   € äˆg�xÔ Ø×Ñ˜JÕ'rC   c                 óÂ   • [        SU5        [        R                  " US[        S5      5        [        R                  " US[        S5      5        UR	                  U5        g )Nró  rd   z*CREATE VIEW empty_v AS SELECT * FROM emptyre   zDROP VIEW IF EXISTS empty_v)r   r   rg   r#   rø   rÞ  s      r@   Úview_no_columnsÚ"TableNoColumnsTest.view_no_columnsk
  sR   € äˆg�xÔ Ü�ŠØØÜÐ<Ó=ô	
ô 	�ŠØ�m¤SÐ)FÓ%Gô	
ð 	×Ñ˜JÕ'rC   c                 óh   • [        S[        5       US9n[        [        UR                  5      / 5        g )Nró  ró   ©r   r   r   r  rº   )r†   r    rß  rÌ  s       r@   Útest_reflect_table_no_columnsÚ0TableNoColumnsTest.test_reflect_table_no_columns{
  s$   € Ü�7œH›J°jÑAˆÜŒD�—‘‹J˜ÕrC   c                 óŒ   • [        U5      n[        UR                  S5      / 5        UR                  5       n[        US/ 05        g )Nró  rÝ  )r   r   r  rt  )r†   r    rß  r�   Úmultis        r@   Ú!test_get_columns_table_no_columnsÚ4TableNoColumnsTest.test_get_columns_table_no_columns
  s>   € Ü�zÓ"ˆÜˆD×Ñ˜WÓ% rÔ*Ø×&Ñ&Ó(ˆÜˆE�O RÐ(Õ)rC   c                 ó’   • [        5       nUR                  U5        [        UR                  5      R	                  S/5      (       d   eg rÝ  )r   r·  rÈ  rÐ   r·  )r†   r    rß  r¸  s       r@   Ú"test_reflect_incl_table_no_columnsÚ5TableNoColumnsTest.test_reflect_incl_table_no_columns…
  s6   € Ü‹JˆØ	�	‰	�*ÔÜ�1—8‘8‹}×)Ñ)¨7¨)×4Ñ4Ð4Ñ4rC   c                 óh   • [        S[        5       US9n[        [        UR                  5      / 5        g )NÚempty_vró   rå  )r†   r    râ  rÌ  s       r@   Útest_reflect_view_no_columnsÚ/TableNoColumnsTest.test_reflect_view_no_columnsŠ
  s$   € ä�9œh›j¸
ÑCˆÜŒD�—‘‹J˜ÕrC   c                 ó¦   • [        U5      n[        UR                  S5      / 5        UR                  [        R
                  S9n[        US/ 05        g )Nrð  )r¾   )Nrð  )r   r   r  rt  r   rl  )r†   r    râ  r�   ré  s        r@   Ú test_get_columns_view_no_columnsÚ3TableNoColumnsTest.test_get_columns_view_no_columns�
  sH   € ä�zÓ"ˆÜˆD×Ñ˜YÓ'¨Ô,Ø×&Ñ&¬J¯O©OÐ&Ð<ˆÜˆEÐ% rÐ*Õ+rC   rD   N)rE   rF   rG   rH   rÛ   r¯   r   r  rß  râ  ræ  rê  rí  rX   r±   rñ  rô  rJ   rD   rC   r@   rÚ  rÚ  b
  sŠ   † Ø1€LØ $Ðà‡_�_ñ(ó ð(ð ‡_�_ñ(ó ð(òò*ò5ð
 ×Ñ×Ññó ðð ×Ñ×Ññ,ó ó,rC   rÚ  c                   ó´  • \ rS rSrSr\R                  " SS/S9S 5       r\R                  " 5       S 5       rS r	\R                  R                  S 5       r\R                  R                  \R                  " S	S
SSS9S 5       5       r\R                  R                  \R                  " SSSSS9S 5       5       r\R                  R                  S 5       rS r\R                  R                  \R                  " SSSSSSSS9S 5       5       r\R                  R(                  S 5       r\R                  R,                  S 5       r\R                  R0                  S 5       rS r\R                  R6                  S  5       r\R                  R6                  \R                  " \R<                  \R>                  \R@                  \RB                  \R                  RD                  4\RF                  \R                  RD                  4S!S9S" 5       5       r$\R                  R6                  S# 5       r%\R                  " SS$S\R                  RL                  4SSS%\R                  RN                  40 SS&\R                  RN                  40 S&S\R                  RP                  4SSS'\R                  RR                  4SS'S\R                  RT                  4S(S9S) 5       r+\R                  " \,\-R\                  " S*5      S+4\,S*S+4\/\-R`                  " 5       S,4\,\-R\                  " S-5      S.\R                  Rb                  4\,\-R\                  " S/5      S0\R                  Rb                  4\2\3Rh                  " 5       S14\,\-Rj                  " S25      \-Rj                  " S35      -   S.\R                  Rb                  4S4S9\R                  Rl                  S5 5       5       r7S6r8g)7ÚComponentReflectionTestExtrai—
  TF)Úparamsc                 óF   • UR                   (       a  [        R                  $ g r¤   )Úparamr   rZ   )r†   Úrequests     r@   Úuse_schema_fixtureÚ/ComponentReflectionTestExtra.use_schema_fixtureš
  s   € à�=�=Ü×%Ñ%Ð%àrC   c                 óB   ^^^• [         R                  UUU4S j5       nU$ )Nc              3   óN   >#   • T[        T5      4v •  TR                  T5        g 7fr¤   )r   rø   )rç   r    r`   rü  s    €€€r@   ÚgoÚ:ComponentReflectionTestExtra.inspect_for_table.<locals>.go£
  s$   øé € à$¤g¨jÓ&9Ð9Ò9à×Ñ 
Õ+ùs   ƒ"%)Ú
contextlibÚcontextmanager)r†   r`   r    rü  r   s    ``` r@   Úinspect_for_tableÚ.ComponentReflectionTestExtra.inspect_for_table¡
  s"   ú€ ä	×	"Ñ	"ö	,ó 
#ð	,ð
 ˆ	rC   c           
      ó”   • S n[        U Vs/ sH  nUS   U" US   5      S.PM     snS S9n[        US S9n[        X5        g s  snf )Nc                 óˆ   • SR                  [        R                  " SU R                  5       [        R                  5      5      $ )NÚ zand|\d|=|a|b|c|or|<|>)Újoinra  ÚfindallrX  ÚI)r\  s    r@   Ú	normalizeÚ5ComponentReflectionTestExtra.ck_eq.<locals>.normalize¯
  s.   € Ø—8‘8Ü—
’
Ð3°W·]±]³_ÄbÇdÁdÓKóð rC   rt   r\  ©rt   r\  c                 ó   • U S   $ r›  rD   ©Úitems    r@   rÆ   Ú4ComponentReflectionTestExtra.ck_eq.<locals>.<lambda>¹
  ó   € ˜d 9šorC   r  c                 ó   • U S   $ r›  rD   r  s    r@   rÆ   r  ¾
  r  rC   )r‹  r   )r†   r  r  r  r  s        r@   Úck_eqÚ"ComponentReflectionTestExtra.ck_eq«
  sh   € ò	ô
 ñ &óá%�Dð ˜f™±)¸DÀ¹OÓ2LÔMÙ%ññ /ñ
ˆ	ô ØÙ.ñ
ˆô 	ˆIÕ ùòs   �Ac                 óà   • U" S5       u  p4[        SU[        S[        R                  " S5      5      US9  S S S 5        U R	                  WR                  SWS9/ 5        g ! , (       d  f       N/= f)Nr£  rS   r–  rV   )r   r   rw   r   r  r^  )r†   r`   r  rW   r½   s        r@   Ú#test_check_constraint_no_constraintÚ@ComponentReflectionTestExtra.test_check_constraint_no_constraintÂ
  sf   € áÐ/Ô0Ñ4G°VÜØ ØÜ�vœrŸyšy¨›}Ó-Øò	÷ 1ð 	�
‰
Ø×+Ñ+Ð,<ÀVÐ+ÐLØõ	
÷ 1Õ0ús   ‰-AÁ
A-Ú	my_inlineÚMyInlineNÚconstraint_namer¿   c                 óv  • U" S5       u  pE[        SU[        S[        5       SS9[        S[        5       [        R                  " SUS95      [        S[        S	5      5      US
9  S S S 5        WR                  SWS
9nU R                  UU=(       d    [        R                  SS./5        g ! , (       d  f       NL= f)NÚsa_ccrP   TrQ   rÄ   úa > 1 AND a < 5r'  rS   rT   rV   úa > 1 and a < 5r  )
r   r   r   rw   r.  r   r^  r  r,   rj  ©r†   r`   r  r  rW   r½   r  s          r@   Útest_check_constraint_inlineÚ9ComponentReflectionTestExtra.test_check_constraint_inlineÑ
  s²   € ñ ˜wÔ'Ñ+>¨FÜØØÜ�tœW›Y°DÑ9ÜØÜ“IÜ×&Ò&Ø)°ñóô �vœv b›zÓ*Øò÷ (ð  ×3Ñ3°GÀFÐ3ÐKˆ	à�
‰
Øð ,×7¬t¯x©xØ0ñðõ	
÷% (Õ'ús   ‰AB*Â*
B8Úmy_ck_constÚ	MyCkConstc                 ó*  • U" S5       u  pE[        SU[        S[        5       5      [        R                  " SUS9US9  S S S 5        WR                  SWS9nU R                  UU=(       d    [        R                  SS./5        g ! , (       d  f       NL= f)Nr  rÄ   za = 1 OR (a > 2 AND a < 5)r'  rV   za = 1 or a > 2 and a < 5r  )	r   r   r   rw   r.  r^  r  r,   rj  r!  s          r@   Ú test_check_constraint_standaloneÚ=ComponentReflectionTestExtra.test_check_constraint_standaloneõ
  s’   € ñ ˜wÔ'Ñ+>¨FÜØØÜ�sœG›IÓ&Ü×"Ò"Ø0°ñð ò÷ (ð ×3Ñ3°GÀFÐ3ÐKˆ	à�
‰
Øð ,×7¬t¯x©xØ9ñðõ	
÷ (Õ'ús   ‰5BÂ
Bc                 ób  • U" S5       u  p4[        SU[        S[        5       SS9[        S[        5       [        R                  " S5      5      [        S[        5       [        R                  " SS	S
95      [        S[        5       5      [        S[        S5      5      [        R                  " SSS
9[        R                  " SSS
9[        R                  " SSS
9US9  S S S 5        WR                  SWS9nU R                  USSS.S	SS.[        R                  SS./5        g ! , (       d  f       NK= f)Nr  rP   TrQ   rÄ   r  r  zb > 1 AND b < 5r  r'  rº   rS   rT   Úsome_uqzc > 1 AND c < 5Úcc1Ú	some_c_uqrV   zc > 1 and c < 5r  zb > 1 and b < 5r   )r   r   r   rw   r.  r   r-  r^  r  r,   rj  )r†   r`   r  rW   r½   r  s         r@   Útest_check_constraint_mixedÚ8ComponentReflectionTestExtra.test_check_constraint_mixed  s  € á˜wÔ'Ñ+>¨FÜØØÜ�tœW›Y°DÑ9Ü�sœG›I¤r×'9Ò'9Ð:KÓ'LÓMÜØÜ“IÜ×&Ò&Ð'8¸{ÑKóô
 �sœG›IÓ&Ü�vœv b›zÓ*Ü×#Ò# F°Ñ;Ü×"Ò"Ð#4¸5ÑAÜ×#Ò# C¨kÑ:Øò÷ (ð& ×3Ñ3°GÀFÐ3ÐKˆ	à�
‰
ØàÐ+<Ñ=Ø$Ð1BÑCÜŸ™Ð.?Ñ@ðõ	
÷+ (Õ'ús   ‰CD Ä 
D.c           	      óš   • U H!  nUS   U:X  d  M  US   R                  5       s  $     SU< SU Vs/ sH  o3S   PM	     sn 35       es  snf )z>return the lower cased sqltext for the named CHECK constraint.rt   r\  zNo CHECK constraint named r  ©rX  )r†   r  rt   r�  s       r@   Ú_cc_by_nameÚ(ComponentReflectionTestExtra._cc_by_name3  sa   € ó ˆCØ�6‰{˜dÕ"Ø˜9‘~×+Ñ+Ó-Ò-ñ ð	
Ø(¨©°Ù'0Ó1¡y �F”¡yÑ1Ð2ð4ó	
ˆuùâ1s   ²Az5(x IS NULL OR y IS NULL) AND (x IS NULL OR y IS NULL)za = '(' AND b = ')'za = 'it''s'z((((x > 0))))z((x > 1) AND (x < 5))zx > 0Ú
expressionc                 ó.  • U" S5       u  pE[        SU[        S[        5       SS9[        S[        5       5      [        S[        5       5      [        S[        S5      5      [        S	[        S5      5      [        R
                  " US
S9US9	  SSS5        WR                  SWS9nU R                  US
5      nU" S5       u  pE[        SU[        S[        5       SS9[        S[        5       5      [        S[        5       5      [        S[        S5      5      [        S	[        S5      5      [        R
                  " USS9US9	  SSS5        UR                  SUS9nU R                  US5      n	[        Xy5        g! , (       d  f       Nð= f! , (       d  f       NM= f)ab  Regression test for #13157.

A CHECK constraint expression must round-trip through reflection
without its parentheses being incorrectly stripped.  The bug
greedily paired the leading ``(`` with the trailing ``)`` and
dropped both, producing an unbalanced, syntactically invalid
expression such as ``x IS NULL OR y IS NULL) AND (x IS NULL OR
y IS NULL``.
r  rP   TrQ   ÚxÚyrÄ   rT   r  Úcc_exprr'  rV   NÚsa_cc_2Ú	cc_expr_2)	r   r   r   r   rw   r.  r^  r1  r   )
r†   r`   r  r3  rW   r½   r  Úreflected_textÚ
reflected2Úreflected_text_2s
             r@   Ú/test_check_constraint_parenthesized_expressionsÚLComponentReflectionTestExtra.test_check_constraint_parenthesized_expressions?  s`  € ñ> ˜wÔ'Ñ+>¨FÜØØÜ�tœW›Y°DÑ9Ü�sœG›IÓ&Ü�sœG›IÓ&Ü�sœF 2›JÓ'Ü�sœF 2›JÓ'Ü×"Ò" :°IÑ>Øò
÷ (ð ×3Ñ3°GÀFÐ3ÐKˆ	ð
 ×)Ñ)¨)°YÓ?ˆñ ˜yÔ)Ñ-@¨fÜØØÜ�tœW›Y°DÑ9Ü�sœG›IÓ&Ü�sœG›IÓ&Ü�sœF 2›JÓ'Ü�sœF 2›JÓ'Ü×"Ò" >¸ÑDØò
÷ *ð ×4Ñ4°YÀvÐ4ÐNˆ
à×+Ñ+¨J¸ÓDÐÜˆNÕ-÷W (Õ'ú÷6 *Õ)ús   ‰BE5Â=BFÅ5
FÆ
Fc                 óš  • U" S5       u  p4[        SU[        S[        SS9[        S[        5      [        S[        5      5      n[        SUR                  R
                  UR                  R                  UR                  R                  5        SSS5        WR                  S5      n[        US	   S
   / SQ5        g! , (       d  f       N4= f)ztest for #12894Úsa_multi_indexÚColumn1TrQ   ÚColumn2ÚColumn3ÚIndex_ExampleNr   rã   )rC  rA  rB  )
r   r   r   r$   rº   rC  rA  rB  rR  r   )r†   r`   r  rW   r½   rO   rø  s          r@   Útest_index_column_orderÚ4ComponentReflectionTestExtra.test_index_column_order‹  s«   € ñ Ð/Ô0Ñ4G°VÜØ ØÜ�y¤'°tÑ<Ü�y¤'Ó*Ü�y¤'Ó*óˆJô ØØ—‘×$Ñ$Ø—‘×$Ñ$Ø—‘×$Ñ$ô	÷ 1ð ×'Ñ'Ð(8Ó9ˆÜˆG�A‰J�~Ñ&Ò(IÕJ÷ 1Õ0ús   ‰BB<Â<
C
c                 ó@  ^^• [        SU[        S[        S5      5      [        S[        S5      5      [        S[        S5      5      5      n[        S[        R
                  " UR                  R                  5      UR                  R                  [        R
                  " UR                  R                  5      5        Sm[        S[        R                  " UR                  R                  T5      5        [        S	UR                  R                  5        UR                  T5        [        T5      nS	S/S
0 S./nU4S jnU" US   5         " S S[        5      n " U4S jS[        5      n[        R                  R                   R"                  (       a�  S/ SQU" S5      SU" S5      /S
S.n	U" U	5        UR%                  SU	5        SS /U" ST S35      /S
S.n
U" U
5        UR'                  U
5        [)        UR+                  S5      U5        [-        5       n[        SUTS9nOD[/        S5         [)        UR+                  S5      U5        [-        5       n[        SUTS9nS S S 5        U R1                  WUTR2                  R4                  5        g ! , (       d  f       N6= f)NrŽ  r5  rŽ  r6  ÚzÚ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 Ú
t_idx_longÚt_idx_2F)rt   rã   r�  r1  c                 óÄ   >• [         R                  R                  R                  (       a$  / U S'   TR                  R
                   S3/ 0U S'   g U R                  S0 5        g )Nr2  Ú_includer1  )r   rX   r  r9   r  rt   r«  )Úentryr    s    €r@   ÚcompleteIndexÚYComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.completeIndex»  s\   ø€ Ü×Ñ×?Ñ?×G×GØ+-�Ð'Ñ(à!×(Ñ(×-Ñ-Ð.¨hÐ7¸ð,�Ð'Ò(ð × Ñ Ð!2°BÕ7rC   r   c                   ó   • \ rS rSrS rSrg)Ú[ComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.lower_index_striÆ  c                 ó\   • UR                  5       nSU;   =(       a    SU;   =(       d    SU;   $ )NrX  r5  r6  r0  )r†   rð   Úols      r@   r  ÚbComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.lower_index_str.__eq__Ç  s)   € Ø—[‘[“]�à "‘}×A¨#°©)×*@°s¸b±yÐArC   rD   Nr  rD   rC   r@   Úlower_index_strrR  Æ  s   † õBrC   rV  c                   ó"   >• \ rS rSrU 4S jrSrg)Ú^ComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.coalesce_index_striÌ  c                 óB   >• SUR                  5       ;   =(       a    TU;   $ )NÚcoalescer0  )r†   rð   Úlong_strs     €r@   r  ÚeComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.coalesce_index_str.__eq__Í  s   ø€ à! U§[¡[£]Ñ2×H°xÀ5Ñ7HÐHrC   rD   Nr  )r[  s   €r@   Úcoalesce_index_strrX  Ì  s   ø† ÷Ið IrC   r]  )NrH  Nzlower(x)zlower(y))rt   rã   r3  r�  zcoalesce(x, 'z')ró   z>Skipped unsupported reflection of expression-based index t_idx)r   r   r   r$   r   rX  rº   r5  rH  r6  rZ  rø   r   r_  r   rX   Ú reflect_indexes_with_expressionsr9   ÚinsertrL  r   rR  r   r
   Ú!compare_table_index_with_expectedr  rt   )r†   r`   r    rŽ  r�   r  rO  rV  r]  Ú
expr_indexÚexpr_index_longrú   rÌ  r[  s     `          @r@   Ú%test_reflect_expression_based_indexesÚBComponentReflectionTestExtra.test_reflect_expression_based_indexesŸ  s?  ù€ äØØÜ�3œ˜r›
Ó#Ü�3œ˜r›
Ó#Ü�3œ˜r›
Ó#ó
ˆô 	ˆg”t—z’z !§#¡#§%¡%Ó(¨!¯#©#¯%©%´·²¸A¿C¹C¿E¹EÓ1BÔCØ'ˆÜˆlœDŸMšM¨!¯#©#¯%©%°Ó:Ô;Üˆi˜Ÿ™Ÿ™Ôà×Ñ˜JÔ'ä�zÓ"ˆð "Ø!$ ØØ#%ñ	ð
ˆõ	8ñ 	�h˜q‘kÔ"ô	Bœcô 	B÷	I¤ô 	Iô
 ×Ñ×<Ñ<×D×DàÚ 1á# JÓ/ØÙ# JÓ/ð ð
  ñ	ˆJñ ˜*Ô%Ø�O‰O˜A˜zÔ*ð %Ø!% á&¨°x°jÀÐ'CÓDð ð  ñˆOñ ˜/Ô*Ø�O‰O˜OÔ,ä�× Ñ  Ó% xÔ0Ü“ˆBÜ�s˜B¨jÑ9‰Bä ðõô �D×$Ñ$ SÓ)¨8Ô4Ü“Z�Ü˜3 °*Ñ=�÷ð 	×.Ñ.Ø�˜*×+Ñ+×0Ñ0õ	
÷õ ús   È.1JÊ
Jc                 ó¨  • [        SU[        S[        S5      5      [        S[        S5      5      5      n[        SUR                  R
                  5      nS/UR                  UR                  R                     S'   UR                  U5        [        U5      nUR                  S5      n[        USS/S/S[        R                  S./5        [        US	   S
   SUR                  R                  -     S/5        [        S[        5       US9n[        [!        UR"                  5      S	   R                  UR                  R                     S   S/5        g )NrŽ  r5  rŽ  r6  rI  ÚincludeF)rt   rã   r2  r�  r1  r   r1  z
%s_includeró   )r   r   r   r$   rº   r5  r1  r  rt   rø   r   rR  r   r,   rj  r   r  rø  )r†   r`   r    rŽ  rÓ   r�   rR  rÌ  s           r@   Útest_reflect_covering_indexÚ8ComponentReflectionTestExtra.test_reflect_covering_indexú  sE  € äØØÜ�3œ˜r›
Ó#Ü�3œ˜r›
Ó#ó	
ˆô �G˜QŸS™SŸU™UÓ#ˆØBEÀˆ×Ñ˜J×-Ñ-×2Ñ2Ñ3°IÑ>à×Ñ˜JÔ'ä�zÓ"ˆà×&Ñ& sÓ+ˆÜØð $Ø%( EØ(+ uØ#Ü'+§x¡xñðô	
ô 	Ø˜‰NÐ,Ñ-Ø˜z×0Ñ0×5Ñ5Ñ5ñð ˆEô		
ô �3œ›
°*Ñ=ˆÜÜ�—‘Ó˜QÑ×/Ñ/°
×0AÑ0A×0FÑ0FÑGØñð ˆEõ		
rC   c                 ó   • [        SU/[        U5       VVs/ sH  u  pE[        SU-  U5      PM     snnQ76 nUR                  U5        [	        U5      R                  S5       Vs/ sH  owS   PM	     sn$ s  snnf s  snf )NrŽ  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ÔHÑ7G©8¨1Œf�U˜Q‘Y Ö&Ñ7GÒHò
ˆð
 	
�‰�Ôä#*¨:Ó#6×#BÑ#BÀ3Ô#GÓHÑ#G˜a�&”	Ñ#GÑHÐHùó	 Iùò Is   —A5Á%A;c                 óú   • U R                  X[        R                  " SS5      5       HP  n[        U[        R                  5      (       d   e[	        UR
                  S5        [	        UR                  S5        MR     g )Né   r}  )rk  r´  r¸  r<  r   Ú	precisionÚscale)r†   r    r`   Útyps       r@   Útest_numeric_reflectionÚ4ComponentReflectionTestExtra.test_numeric_reflection/  s`   € à×(Ñ(Ø¤)×"3Ò"3°B¸Ó":ö
ˆCô ˜c¤9×#4Ñ#4×5Ñ5Ð5Ð5Ü�—‘˜rÔ"Ü�—	‘	˜1Öò
rC   rj  c                 óî  • U R                  XU" S5      5      S   n[        U[        R                  5      (       a"  [	        U[        R                  5      (       d   eOb[        U[        R
                  5      (       a"  [	        U[        R
                  5      (       d   eO![	        U[        R                  5      (       d   e[        UR                  S5        [	        UR                  [        5      (       d   eg )Né4   r   )
rk  Ú
issubclassr´  ry   r<  r²  r   r   ÚlengthÚint)r†   r    r`   rj  rq  s        r@   Útest_string_length_reflectionÚ:ComponentReflectionTestExtra.test_string_length_reflection8  s±   € ð ×#Ñ# J¹%À»)ÓDÀQÑGˆÜ�eœY×.Ñ.×/Ñ/Ü˜c¤9×#4Ñ#4×5Ñ5Ð5Ñ5Ü˜œyŸ~™~×.Ñ.Ü˜c¤9§>¡>×2Ñ2Ð2Ñ2ä˜c¤9×#3Ñ#3×4Ñ4Ð4Ð4äˆC�J‰J˜ÔÜ˜#Ÿ*™*¤c×*Ñ*Ð*Ñ*rC   c                 óü   • [        SU[        S[        SS9[        S[        SS95      nUR                  U5        [	        [        U5      R                  S5       Vs0 sH  nUS   US   _M     snSSS	.5        g s  snf )
NrŽ  rÄ   Tr~  r  Frt   r  )rÄ   r  )r   r   r   r�   r   r   r  )r†   r    r`   rŽ  rŒ   s        r@   Útest_nullable_reflectionÚ5ComponentReflectionTestExtra.test_nullable_reflectionM  s‰   € äØØÜ�3œ¨$Ñ/Ü�3œ¨%Ñ0ó	
ˆð 	
�‰�ÔÜô # :Ó.×:Ñ:¸3Ô?óá?�Cð �F‘˜S ™_Ò,Ù?ñð ˜UÑ#õ	
ùòs   ÁA9ÚCASCADEzSET NULLz	NO ACTIONÚRESTRICTzexpected,ondelete,onupdatec                 ó®  • 0 nU(       a  XFS'   U(       a  XVS'   Uc  Un[        SU[        S[        SS9SS9  [        SU[        S[        SS9[        S	[        [        S
SS95      [        S[	        S5      5      SS9  [        SU[        S[        SS9[        S[	        S5      SS9[        S[        5      [
        R                  " S/S/4SS0UD6SS9  UR                  U5        [        U5      nUR                  S5      S   S   n[        U V	s0 sH  o˜U	   (       d  M  X˜U	   _M     sn	0 5        UR                  S5      S   S   n[        Xƒ5        g s  sn	f )NÚondeleteÚonupdater5  rP   TrQ   rí   r½  Úx_idzx.idÚxidr'  Útesté
   Úuserrt   rT   Fr~  Útidztable.idÚmyfkr   r6   )r   r   r   r   r   rw   r÷   rø   r   rN  r   )
r†   r    r`   r  r�  r‚  r6   r�   ÚoptsrÅ   s
             r@   Útest_get_foreign_key_optionsÚ9ComponentReflectionTestExtra.test_get_foreign_key_options^  sl  € ðT ˆÞØ"*�JÑÞØ"*�JÑàÑØˆHäØØÜ�4œ¨dÑ3Øò		
ô 	ØØÜ�4œ¨dÑ3Ü�6œ7¤J¨v¸EÑ$BÓCÜ�6œ6 "›:Ó&Øò	
ô 	ØØÜ�4œ¨dÑ3Ü�6œ6 "›:°Ñ6Ü�5œ'Ó"Ü×#Ò#Ø�˜*˜ñØ,2ðØ6=ñð ò
	
ð 	×Ñ˜JÔ'ä�zÓ"ˆð ×$Ñ$ WÓ-¨aÑ0°Ñ;ˆä¡Ó1¡˜A¨a­‹ZˆQ�Q‘ŠZ¡Ñ1°2Ô6à×$Ñ$ VÓ,¨QÑ/°	Ñ:ˆÜˆDÕùò 2s   ÄEÄ	EÚ10z'?10'?z1|truez3 + 5z3\+5z(3 * 5)z3\*5zcurrent_timestamp|now|getdateÚ3Ú5zdatatype, default, expected_regc                 ó  • [        SU[        S[        SS9[        SX4S95      nUR                  U5        [	        U5      R                  S5      S   S   n[        R                  " S	S
U5      n[        X…[        R                  S9  g )NrŽ  rP   TrQ   Úthecol)Úserver_defaultrõ   rú  z	[\(\) \']rx  )Úflags)
r   r   r   r�   r   r  ra  rb  r   Ú
IGNORECASE)	r†   r`   r    Údatatyperú  Úexpected_regrŽ  r  Úreflected_sanitizeds	            r@   Útest_server_defaultsÚ1ComponentReflectionTestExtra.test_server_defaults»  sy   € ô: ØØÜ�4œ¨dÑ3Ü�8˜XÑ>ó	
ˆð 	
�‰�Ôä˜JÓ'×3Ñ3°CÓ8¸Ñ;¸IÑFˆ	Ü Ÿfšf \°2°yÓAÐÜÐ$¼"¿-¹-ÓHrC   rD   )9rE   rF   rG   rH   r¯   r   r  rü  r  r  rX   rc  r  Ú"inline_check_constraint_reflectionrÜ   r"  r'  r-  r1  r=  Úindexes_check_column_orderrE  Úindexes_with_expressionsrc  r  rg  rk  rÕ  rr  r´  r   ry   r²  ÚNVARCHARÚnvarchar_typesÚNCHARry  r|  Ú1foreign_key_constraint_option_reflection_ondeleteÚ1foreign_key_constraint_option_reflection_onupdateÚ1fk_constraint_option_reflection_ondelete_noactionÚ1fk_constraint_option_reflection_onupdate_restrictÚ1fk_constraint_option_reflection_ondelete_restrictr‹  r   rw   rò  r   ÚtrueÚexpression_server_defaultsr   r   ÚnowÚliteral_columnÚserver_defaultsr˜  rJ   rD   rC   r@   r÷  r÷  —
  sf  † Ø $Ðà‡_‚_˜T 5˜MÑ*ñó +ðð ‡_‚_Óñó ðò!ð. ×Ñ×1Ñ1ñ
ó 2ð
ð ×Ñ×8Ñ8Ø×ÒØ�Z Ð0Aññ
óó 9ð
ð@ ×Ñ×1Ñ1Ø×ÒØ�{ DÐ3Dññ
óó 2ð
ð4 ×Ñ×8Ñ8ñ
ó 9ð
ò>

ð ×Ñ×1Ñ1Ø×Òð 	@ð 	ð 	àààØñ!ñ$7.ó%ó 2ð&7.ðr ×Ñ×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Ð'àØ�GŠG�GÓØØ×Ñ×7Ñ7ð		
ð Ø�GŠG�IÓØØ×Ñ×7Ñ7ð		
ð 
�4—8’8“:Ð?Ð@àØ×Ò˜cÓ" R×%6Ò%6°sÓ%;Ñ;ØØ×Ñ×7Ñ7ð		
ð 3ñ/ð2 ×Ñ×%Ñ%ñIó &ó3ó4IrC   r÷  c                   ó8   • \ rS rSrSrSr\S 5       rS rS r	Sr
g)	ÚNormalizedNameTestiå  )Údenormalized_namesTc                 ó´   • [        [        SSS9U[        S[        SS95        [        [        SSS9U[        S[        SS9[        S[	        S5      5      5        g )	Nrü   T©r2  rP   rQ   rÌ  Út1idzt1.id)r   r%   r   r   r   r_   s     r@   ra   Ú NormalizedNameTest.define_tablesé  sU   € äÜ˜ DÑ)ØÜ�4œ¨dÑ3ô	
ô
 	Ü˜ DÑ)ØÜ�4œ¨dÑ3Ü�6œ: gÓ.Ó/õ		
rC   c                 óþ  • [        5       n[        [        SSS9U[        R                  S9nUR
                  S   nUR                  R                  R                  UR                  R                  5      (       d   e[        5       nUR                  [        R                  S S9  UR
                  S   R                  R                  R                  UR
                  S   R                  R                  5      (       d   eg )NrÌ  Tr®  ró   rü   c                 ó(   • U R                  5       S;   $ )N©rü   rÌ  r0  )rt   r¸  s     r@   rÆ   ÚINormalizedNameTest.test_reflect_lowercase_forced_tables.<locals>.<lambda>  s   € ¨D¯J©J«L¸LÒ,HrC   )Úonly)r   r   r%   r   r>   rÐ   rº   r¯  rù   rP   r·  )r†   rú   Út2_refÚt1_refÚm3s        r@   Ú$test_reflect_lowercase_forced_tablesÚ7NormalizedNameTest.test_reflect_lowercase_forced_tables÷  s¾   € Ü‹ZˆÜÜ˜ DÑ)¨2¼V¿Y¹Yñ
ˆð —‘˜4‘ˆØ�x‰x�}‰}×'Ñ'¨¯©¯©×4Ñ4Ð4Ð4ä‹ZˆØ
�
‰
Ü�I‰IÑHð 	ñ 	
ð �y‰y˜‰× Ñ ×%Ñ%×0Ñ0°·±¸4±×1BÑ1B×1EÑ1E×FÑFÐFÑFrC   c                 ó^  • [        [        R                  5      R                  5        Vs/ sH  nUR	                  5       S;   d  M  UPM     nn[        US   R                  5       US   R	                  5       5        [        US   R                  5       US   R	                  5       5        g s  snf )Nr³  r   rõ   )r   r   r>   rŠ  rX  r   Úupper)r†   rŽ  Ú
tablenamess      r@   r�  Ú'NormalizedNameTest.test_get_table_names  s“   € ô œVŸY™YÓ'×7Ñ7Ô9ó
á9�Ø�w‰w‹y˜LÑ(÷ Ù9ð 	ð 
ô 	ˆJ�q‰M×ÑÓ! :¨a¡=×#6Ñ#6Ó#8Ô9ÜˆJ�q‰M×ÑÓ! :¨a¡=×#6Ñ#6Ó#8Õ9ùò
s   ªB*ÁB*rD   N)rE   rF   rG   rH   rÛ   r¯   rI   ra   r¹  r�  rJ   rD   rC   r@   r«  r«  å  s*   † Ø*€LØ $Ðàñ
ó ð
òGõ:rC   r«  c                   ód   • \ rS rSrS rS rS rS r\R                  R                  S 5       rSrg)	ÚComputedReflectionTesti  c                 óú   • [        [        R                  5      nUR                  S5      nU Vs0 sH  o3S   U_M
     nn[	        SUS   S   ;   5        [        US   S   S 5        [        US   S   S 5        g s  snf )NÚcomputed_default_tablert   Ú42Úwith_defaultrú  ÚnormalÚcomputed_col)r   r   r>   r  r+   r   )r†   r�   r  rº   Úcol_datas        r@   Ú!test_computed_col_default_not_setÚ8ComputedReflectionTest.test_computed_col_default_not_set  s   € Ü”v—y‘yÓ!ˆà×ÑÐ 8Ó9ˆÙ*.Ó/©$ Q�f‘I˜q’L©$ˆÐ/Ü�˜ Ñ0°Ñ;Ñ;Ô<ÜˆH�XÑ˜yÑ)¨4Ô0ÜˆH�^Ñ$ YÑ/°Õ6ùò 0s   ¯A8c                 ój  • [        [        R                  5      nUR                  S5      nU Vs0 sH  o3S   U_M
     nnS H  n[	        SXE   ;  5        M     US   n[	        SU;   5        [	        SUS   ;   5        [        U R                  US   S   5      S5        [        SUS   ;   [        R                  R                  R                  5        [        R                  R                  R                  (       a5  [        US   S   [        R                  R                  R                  5        g g s  snf )	NrÂ  rt   )rP   rÅ  rÄ  ÚcomputedrÆ  r\  ú	normal+42Ú	persisted)r   r   r>   r  r+   r   r  r   rX   Ú"computed_columns_reflect_persistedr9   Ú"computed_columns_default_persisted)r†   r�   r  rº   rS   rì   ÚcompDatas          r@   Ú test_get_column_returns_computedÚ7ComputedReflectionTest.test_get_column_returns_computed  s  € Ü”v—y‘yÓ!ˆà×ÑÐ 8Ó9ˆÙ&*Ó+¡d �&‘	˜1’¡dˆÐ+Û3ˆCÜ�J d¡iÑ/Ö0ñ 4à˜Ñ'ˆÜ�
˜hÑ&Ô'Ü�	˜X jÑ1Ñ1Ô2ÜˆD�N‰N˜8 JÑ/°	Ñ:Ó;¸[ÔIÜØ˜8 JÑ/Ñ/Ü×Ñ×?Ñ?×GÑGô	
ô ×Ñ×>Ñ>×F×FÜØ˜Ñ$ [Ñ1Ü× Ñ ×CÑC×KÑKõð Gùò ,s   ¯D0c                 óü   • [        SX   ;   5        X   S   n[        U R                  US   5      U5        [        R                  R
                  R                  (       a  [        SU;   5        [        US   U5        g g )NrË  r\  rÍ  )r+   r   r  r   rX   rÎ  r9   r   )r†   rS   Úcolumnr\  rÍ  rÐ  s         r@   Úcheck_columnÚ#ComputedReflectionTest.check_column/  sl   € Ü�
˜d™lÑ*Ô+Ø‘< 
Ñ+ˆÜˆD�N‰N˜8 IÑ.Ó/°Ô9Ü×Ñ×>Ñ>×F×FÜ�K 8Ñ+Ô,Ü�˜Ñ% yÕ1ð GrC   c                 óì  • [        [        R                  5      nUR                  S5      nU Vs0 sH  o3S   U_M
     nnU R	                  USS[
        R                  R                  R                  5        [
        R                  R                  R                  (       a  U R	                  USSS5        [
        R                  R                  R                  (       a  U R	                  USS	S
5        g g s  snf )NÚcomputed_column_tablert   Úcomputed_no_flagrÌ  Úcomputed_virtualznormal+2FÚcomputed_storedz	normal-42T)r   r   r>   r  rÕ  r   rX   rÏ  r9   Úcomputed_columns_virtualÚcomputed_columns_stored©r†   r�   r  rº   rS   s        r@   Ú!test_get_column_returns_persistedÚ8ComputedReflectionTest.test_get_column_returns_persisted7  sÓ   € Ü”v—y‘yÓ!ˆà×ÑÐ 7Ó8ˆÙ&*Ó+¡d �&‘	˜1’¡dˆÐ+à×ÑØØØÜ×Ñ×?Ñ?×GÑGô		
ô ×Ñ×4Ñ4×<×<Ø×ÑØØ"ØØô	ô ×Ñ×3Ñ3×;×;Ø×ÑØØ!ØØõ	ð <ùò ,s   ¯C1c                 ó  • [        [        R                  5      nUR                  S[        R                  S9nU Vs0 sH  o3S   U_M
     nnU R                  USS[        R                  R                  R                  5        [        R                  R                  R                  (       a  U R                  USSS5        [        R                  R                  R                  (       a  U R                  US	S
S5        g g s  snf )NrØ  rV   rt   rÙ  z	normal/42rÚ  znormal/2FrÛ  z	normal*42T)r   r   r>   r  rZ   rÕ  r   rX   rÏ  r9   rÜ  rÝ  rÞ  s        r@   Ú-test_get_column_returns_persisted_with_schemaÚDComputedReflectionTest.test_get_column_returns_persisted_with_schemaR  sä   € ä”v—y‘yÓ!ˆà×ÑØ#¬F×,>Ñ,>ð  ð 
ˆñ '+Ó+¡d �&‘	˜1’¡dˆÐ+à×ÑØØØÜ×Ñ×?Ñ?×GÑGô		
ô ×Ñ×4Ñ4×<×<Ø×ÑØØ"ØØô	ô ×Ñ×3Ñ3×;×;Ø×ÑØØ!ØØõ	ð <ùò ,s   ¼C>rD   N)rE   rF   rG   rH   rÈ  rÑ  rÕ  rß  r   rX   rY   râ  rJ   rD   rC   r@   rÀ  rÀ    s6   † ò7òò*2òð6 ×Ñ×Ññó órC   rÀ  c                   óx   • \ rS rSrS=rrSrSr\S 5       r	S r
S r\R                  R                  S 5       rS	rg)
ÚIdentityReflectionTestiq  NT)r  rÕ  c                 ó�  • [        SU[        S[        5      [        S[        [        5       5      5        [        SU[        S[        [        SSSS	S
SSS95      5        [        R
                  R                  R                  (       aA  [        SU[        S[        5      [        S[        [        SSS95      [        R                  S9  g g )Nrü   rÅ  Úid1rÌ  rï   Tr   r   éþÿÿÿr   é   ©Úalwaysr  Ú	incrementÚminvalueÚmaxvalueÚcycleÚcacher–  )rë  r  rV   )
r   r   r   r   r   rX   rY   r9   r   rZ   r_   s     r@   ra   Ú$IdentityReflectionTest.define_tablesw  s³   € äØØÜ�8œWÓ%Ü�5œ'¤8£:Ó.ô		
ô 	ØØÜØÜÜØØØØØØØñóô	
ô" ×Ñ×#Ñ#×+×+ÜØØÜ�x¤Ó)Ü�uœg¤x°tÀ2Ñ'FÓGÜ×)Ñ)óð ,rC   c                 óö  • [         R                  R                  R                  (       a¬  Sn[	        U5       H  nXT;  d  M
  UR                  U5        M     U(       am  [        [        U5      [        U5      5        U HH  nUS:X  a  [        X   X%   :*  5        M  US;   a  [        X   X%   :¬  5        M7  [        X   X%   U5        MJ     g [        X5        g [        US   US   5        [        US   US   5        g )Nrê  rí  >   rð  rî  r  rì  )	r   rX   Úidentity_columns_standardr9   r  rü  r   r¯  r+   )r†   rÁ  r©  ÚapproxÚcommon_keysrÅ   s         r@   ÚcheckÚIdentityReflectionTest.check™  sÑ   € Ü×Ñ×5Ñ5×=×=ðˆKô ˜%–[�ØÕ'Ø—I‘I˜a–Lñ !ö Ü”C˜“J¤ C£Ô)Û�AØ˜J“Ü ¡¨C©FÑ 2Ö3ØÐ3Ó3Ü ¡¨C©FÑ 2Ö3ä˜E™H c¡f¨aÖ0ò ô �E•ä��g‘  G¡Ô-Ü��kÑ" C¨Ñ$4Õ5rC   c                 ó4  • [        [        R                  5      nUR                  S5      UR                  S5      -   nU HÖ  nUS   S:X  a  [	        SU;   5        M  US   S:X  aT  SU;   a  [        US   5        [        US   S 5        [        SU;   5        U R                  US   [        S	S
S
S
SS	S
S9SS9  My  US   S:X  d  M„  SU;   a  [        US   5        [        US   S 5        [        SU;   5        U R                  US   [        SSSSSSSS9S	S9  MØ     g )Nrü   rÌ  rt   rÅ  r   rç  rø  rú  Frõ   éÿÿÿrê  T©rô  rï   r   r   rè  r   ré  )	r   r   r>   r  r)   r+   r   rö  r<   ©r†   r�   r  rŒ   s       r@   r  Ú,IdentityReflectionTest.test_reflect_identity¶  sA  € Ü”v—y‘yÓ!ˆà×Ñ Ó%¨×(8Ñ(8¸Ó(>Ñ>ˆÛˆCØ�6‰{˜hÓ&Ü˜ sÑ*Ö+Ø�V‘ Ó%Ø" cÓ)Ü˜C Ñ0Ô1Ü�C˜	‘N DÔ)Ü˜
 cÑ)Ô*Ø—
‘
Ø˜
‘OÜØ$ØØ"#Ø!"Ø!+Ø#Øñð  ð ó ð �V‘ Õ%Ø" cÓ)Ü˜C Ñ0Ô1Ü�C˜	‘N DÔ)Ü˜
 cÑ)Ô*Ø—
‘
Ø˜
‘OÜØ#ØØ"#Ø!#Ø!#Ø"Øñð !ð ó ò5 rC   c                 óp  • [        [        R                  5      nUR                  S[        R                  S9nU Hy  nUS   S:X  a  [        SU;   5        M  US   S:X  d  M'  SU;   a  [        US   5        [        US   S 5        [        SU;   5        U R                  US   [        S	S
SSSSSS9S	S9  M{     g )Nrü   rV   rt   rÅ  r   rç  rø  rú  Tr–  rõ   rù  Frê  rú  )
r   r   r>   r  rZ   r)   r+   r   rö  r<   rû  s       r@   Útest_reflect_identity_schemaÚ3IdentityReflectionTest.test_reflect_identity_schemaâ  sÄ   € ä”v—y‘yÓ!ˆà×Ñ ¬V×-?Ñ-?ÐÐ@ˆÛˆCØ�6‰{˜hÓ&Ü˜ sÑ*Ö+Ø�V‘ Õ%Ø" cÓ)Ü˜C Ñ0Ô1Ü�C˜	‘N DÔ)Ü˜
 cÑ)Ô*Ø—
‘
Ø˜
‘OÜØ#Ø Ø"#Ø!"Ø!+Ø#Øñð  ð ó ò rC   rD   )rE   rF   rG   rH   rÏ  r°   r¯   rÛ   rI   ra   rö  r  r   rX   rY   rþ  rJ   rD   rC   r@   rå  rå  q  sU   † Ø $Ð$€K�+à $ÐØ;€Làñó ðòB6ò:*ðX ×Ñ×Ññó órC   rå  c                   ó˜   • \ rS rSrSr\S 5       r\R                  R                  S 5       r
\R                  R                  S 5       rSrg)ÚCompositeKeyReflectionTestiþ  Tc                 ó  • [        SU[        S[        5      [        S[        5      [        S[        R                  " S5      5      [
        R                  " SSSSS9S SS	9n[        S
U[        S[        SS9[        S[        5      [        S[        5      [        S[        R                  " S5      5      [
        R                  " / SQUR                  R                  UR                  R                  UR                  R                  /SS9S SS	9	  g )NÚtb1rP   Úattrrt   r–  Úpk_tb1r'  Tr‡  Útb2rQ   ÚpidÚpattrÚpname©r	  r  r  Úfk_tb1_name_id_attr)r   r   r   r´  ry   rw   r,  r÷   rº   rt   rP   r  )r?   r`   r  s      r@   ra   Ú(CompositeKeyReflectionTest.define_tables  sØ   € äØØÜ�4œÓ!Ü�6œ7Ó#Ü�6œ9×,Ò,¨RÓ0Ó1Ü×#Ò# F¨D°&¸xÑHØØñ	
ˆô 	ØØÜ�4œ¨dÑ3Ü�5œ'Ó"Ü�7œGÓ$Ü�7œI×-Ò-¨bÓ1Ó2Ü×#Ò#Ú)Ø—‘—‘˜SŸU™UŸX™X s§u¡u§z¡zÐ2Ø*ñð
 Øó	
rC   c                 ó²   • [        U5      nUR                  U R                  R                  R                  5      n[        UR                  S5      / SQ5        g )Nr
  ©rt   rP   r  )r   rJ  rÐ   r  rt   r   r=  )r†   r    r�   rR   s       r@   Útest_pk_column_orderÚ/CompositeKeyReflectionTest.test_pk_column_order  sA   € ô �zÓ"ˆØ×,Ñ,¨T¯[©[¯_©_×-AÑ-AÓBˆÜˆK�O‰OÐ1Ó2Ò4JÕKrC   c                 ó   • [        U5      nUR                  U R                  R                  R                  5      n[        [        U5      S5        US   n[        UR                  S5      / SQ5        [        UR                  S5      / SQ5        g )Nrõ   r   r  r  r
  r
  )r   rN  rÐ   r  rt   r   r¯  r=  )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‘ˆÜˆE�I‰IÐ(Ó)Ò+AÔBÜˆE�I‰IÐ+Ó,Ò.GÕHrC   rD   N)rE   rF   rG   rH   r¯   rI   ra   r   rX   rÓ  r  r  r  rJ   rD   rC   r@   r  r  þ  s^   † Ø $Ðàñ
ó ð
ð6 ×Ñ×7Ñ7ñLó 8ðLð ×Ñ×7Ñ7ñIó 8óIrC   r  )rr  r÷  rÚ  r"  rÞ   rL   r³   r«  rÀ  rå  r  r  )Ir  r  ra  r:   rw   rx  r   r   r   r   r   r	   r
   r   r   Ú	provisionr   r   rW   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r´  r  r   r   r    Úexcr!   r"   r#   r$   Úsql.elementsr%   Ú
sql.schemar&   r'   r(   r)   r*   r+   r,   r`   rz  Ú
TablesTestr/   rL   r³   ÚTestBaserÞ   r  r"  rp  rr  rÚ  r÷  r«  ÚComputedReflectionFixtureTestrÀ  rå  r  Ú__all__rD   rC   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0˜X×0Ñ0ô T0òn1ô<n0˜nÐ.Eô n0ôb?2,˜×*Ñ*ô 2,ôjK	I ?°H×4EÑ4Eô K	Iô\(:˜×,Ñ,ô (:ôV^˜X×CÑCô ^ôBJ˜X×0Ñ0ô JôZ.I ×!4Ñ!4ô .Iðb�rC   