Ë
    ­Œjµ½ ã                   ó
  — d dl Z d dlZd dlZd dlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z! ddl"m#Z# ddl"m$Z$ ddl"m%Z% dd l&m'Z' dd!l&m(Z( dd"lm)Z) dd#lm*Z* dd$l+m,Z, dd%l-m.Z. dd&lm/Z/ dd'lm0Z0 dd(lm1Z1 dd)lm2Z2 dd*lm3Z3 d+\  Z4Z5 G d,„ d-ejl                  «      Z7 G d.„ d/e7«      Z8 G d0„ d1ejl                  «      Z9 G d2„ d3ejt                  «      Z; G d4„ d5ejt                  «      Z< G d6„ d7ejl                  «      Z=d8„ Z> G d9„ d:e0e7«      Z? G d;„ d<ejt                  «      Z@ G d=„ d>e/ejt                  «      ZA G d?„ d@ejl                  «      ZB G dA„ dBej†                  «      ZD G dC„ dDejl                  «      ZE G dE„ dFejl                  «      ZFdGZGy)Hé    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_true)Úmock©NNc                   ó   — e Zd Zed„ «       Zy)ÚOneConnectionTablesTestc                 óÌ   — t         j                  j                  j                  r1ddlm} t        j                  t        |j                  d¬«      ¬«      S t         j                  S )Nr   )ÚpoolÚclass)Ú	poolclassÚscope)Úoptions)r   ÚrequirementsÚindependent_connectionsÚenabledÚ
sqlalchemyr0   r   Útesting_engineÚdictÚ
StaticPoolÚdb)Úclsr0   s     úr/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_reflection.pyÚ
setup_bindz"OneConnectionTablesTest.setup_bind;   sI   € ô
 ×Ñ×6Ñ6×>Ò>Ý'ä×)Ñ)Ü t§¡¸gÔFôð ô —9‘9Ðó    N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr?   © r@   r>   r.   r.   :   s   „ Øñó ñr@   r.   c                   óB  — e Zd ZdZed„ «       Zed„ «       Zed„ «       Zed„ «       Zd„ Z	d„ Z
ej                  j                  d„ «       Zej                  j                  d	„ «       Zej                  j                   d
„ «       Zej                  j$                  d„ «       Zej                  j$                  ej                  j(                  ej                  j*                  d„ «       «       «       Zej                  j                   ej                  j                  d„ «       «       Zy)ÚHasTableTestTc                 óò  — t        d|t        dt        d¬«      t        dt        d«      «      «       t        j
                  j                  j                  rAt        d|t        dt        d¬«      t        dt        d«      «      t        j                  ¬«       t        j
                  j                  r| j                  |«       t        j
                  j                  j                  r| j                  |«       y y )	NÚ
test_tableÚidT©Úprimary_keyÚdataé2   Útest_table_s©Úschema)r   r   r   r   r   ÚrequiresÚschemasr7   r   Útest_schemaÚview_reflectionÚdefine_viewsÚhas_temp_tableÚdefine_temp_tables©r=   Úmetadatas     r>   Údefine_tableszHasTableTest.define_tablesM   s¹   € äØØÜ�4œ¨dÔ3Ü�6œ6 "›:Ó&ô		
ô ×Ñ×#Ñ#×+Ò+ÜØØÜ�tœW°$Ô7Ü�vœv b›zÓ*Ü×)Ñ)õô ×Ñ×+Ò+Ø×Ñ˜XÔ&Ü×Ñ×*Ñ*×2Ò2Ø×"Ñ" 8Õ,ð 3r@   c                 ó¾  — d}t        j                  |dt        |«      «       t        j                  |dt        d«      «       t        j                  j
                  j                  rwdt        j                  ›dt        j                  ›d�}t        j                  |dt        |«      «       t        j                  |dt        dt        j                  z  «      «       y y )	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   rR   rS   r7   r   rT   )r=   rZ   Úquerys      r>   rV   zHasTableTest.define_viewsc   s¤   € àCˆä�‰�X˜~¬s°5«zÔ:Ü�‰�X˜}¬c°.Ó.AÔBä×Ñ×#Ñ#×+Ó+ô ×&Ó&Ü×&Ó&ðð ô �L‰L˜ >´3°u³:Ô>Ü�L‰LØØÜÐ%¬×);Ñ);Ñ<Ó=õð ,r@   c                 ób   — t        t        t        j                  dt        j                  › �«      S ©NÚ	user_tmp_©r   r   r<   Úident©r=   s    r>   Útemp_table_namezHasTableTest.temp_table_namey   ó%   € ä"Ü”F—I‘I ¬6¯<©<¨.Ð9ó
ð 	
r@   c                 ó"  — t        t        t        j                  «      }| j                  «       }t	        ||t        dt        j                  d¬«      t        dt        j                  d«      «      fi |¤Ž}t        j                  j                  j                  rwt        j                  j                  j                  rRt        j                  |dt!        dt        j"                  z  «      «       t        j                  |dt!        d	«      «       y y y )
NrJ   TrK   ÚnamerN   r]   ú=create temporary view user_tmp_v as select * from user_tmp_%sr^   údrop view user_tmp_v)r   r   r<   rh   r   r   ÚsaÚINTÚVARCHARr   rR   rU   r7   Útemporary_viewsr   r`   r#   rf   ©r=   rZ   ÚkwÚ
table_nameÚuser_tmps        r>   rX   z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ð 5r@   c                 óœ  — t         j                  j                  «       5 }t        t         j                  j                  j                  |d«      «       t        t         j                  j                  j                  |d«      «       t        t         j                  j                  j                  |d«      «       d d d «       y # 1 sw Y   y xY w)NrI   rO   Únonexistent_table)r   r<   Úbeginr*   ÚdialectÚ	has_tabler)   ©ÚselfÚconns     r>   Útest_has_tablez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                 ó"  — t        t        j                  «      }t        |j	                  d«      «       t        d|t        dt        «      «      }t        |j	                  d«      «       |j                  t        j                  «       	 t        |j	                  d«      «       |j                  «        t        |j	                  d«      «       |j                  t        j                  «       y # |j                  t        j                  «       w xY w)NrI   Ú	new_tableÚcol)r   r   r<   r*   rz   r   r   r   r)   ÚcreateÚclear_cacheÚdrop)r|   rZ   ÚinspÚnts       r>   Útest_has_table_cachez!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                 óü  — t         j                  j                  «       5 }t        t         j                  j                  j                  |dt         j                  ¬«      «       t        t         j                  j                  j                  |dt         j                  ¬«      «       t        t         j                  j                  j                  |dt         j                  ¬«      «       d d d «       y # 1 sw Y   y xY w)NrI   rP   rO   rw   )r   r<   rx   r)   ry   rz   rT   r*   r{   s     r>   Útest_has_table_schemaz"HasTableTest.test_has_table_schema«   s¹   € ä�Y‰Y�_‰_Ô $ÜÜ—	‘	×!Ñ!×+Ñ+Ø˜,¬v×/AÑ/Að ,ó ôô
 Ü—	‘	×!Ñ!×+Ñ+Ø˜.´×1CÑ1Cð ,ó ôô
 Ü—	‘	×!Ñ!×+Ñ+ØÐ-´f×6HÑ6Hð ,ó ô÷ ×Ñús   ŸC
C2Ã2C;c                 óÔ   — t         j                  j                  «       5 }t        t         j                  j                  j                  |dd¬«      «       d d d «       y # 1 sw Y   y xY w)NrI   Únonexistent_schemarP   )r   r<   rx   r)   ry   rz   r{   s     r>   Ú!test_has_table_nonexistent_schemaz.HasTableTest.test_has_table_nonexistent_schema¾   sK   € ä�Y‰Y�_‰_Ô $ÜÜ—	‘	×!Ñ!×+Ñ+Ø˜,Ð/Cð ,ó ô÷ ×Ñús   Ÿ6AÁA'c                 óN   — t        |«      }t        |j                  d«      «       y ©NÚvv©r   r*   rz   ©r|   Ú
connectionr…   s      r>   Útest_has_table_viewz HasTableTest.test_has_table_viewÇ   s   € ä�zÓ"ˆÜ�—‘˜tÓ$Õ%r@   c                 ón   — t        |«      }| j                  «       }t        |j                  |«      «       y ©N)r   rh   r*   rz   )r|   r’   r…   rh   s       r>   Útest_has_table_temp_tablez&HasTableTest.test_has_table_temp_tableÌ   s+   € ä�zÓ"ˆØ×.Ñ.Ó0ˆÜ�—‘˜Ó/Õ0r@   c                 óN   — t        |«      }t        |j                  d«      «       y ©NÚ
user_tmp_vr�   r‘   s      r>   Útest_has_table_temp_viewz%HasTableTest.test_has_table_temp_viewÒ   s   € ô �zÓ"ˆÜ�—‘˜|Ó,Õ-r@   c                 ól   — t        |«      }t        |j                  dt        j                  «      «       y rŽ   )r   r*   rz   r   rT   r‘   s      r>   Útest_has_table_view_schemaz'HasTableTest.test_has_table_view_schemaÙ   s'   € ô �zÓ"ˆÜ�—‘˜t¤V×%7Ñ%7Ó8Õ9r@   N)rA   rB   rC   Ú__backend__rD   r[   rV   rh   rX   r~   r‡   r   rR   rS   r‰   rŒ   Úviewsr“   rW   r–   rU   rq   rš   rœ   rE   r@   r>   rG   rG   J   s^  „ Ø€Kàñ-ó ð-ð* ñó ðð* ñ
ó ð
ð
 ñOó ðOò0Mòð ×Ñ×Ññó ðð$ ×Ñ×Ññó ðð ×Ñ×Ññ&ó ð&ð ×Ñ×$Ñ$ñ1ó %ð1ð
 ×Ñ×$Ñ$Ø×Ñ×%Ñ%Ø×Ñ×%Ñ%ñ.ó &ó &ó %ð.ð ×Ñ×ÑØ×Ñ×Ññ:ó ó ñ:r@   rG   c                   ó¦   — e Zd ZdZdZed„ «       Z ej                  ddd¬«      Z	d„ Z
e	d	„ «       Zej                  j                  e	d
„ «       «       Zy)ÚHasIndexTestT)Úindex_reflectionc                 óÚ  — t        d|t        dt        d¬«      t        dt        d«      «      t        dt        d«      «      «      }t	        d|j
                  j                  «       t        j                  j                  j                  rbt        d|t        dt        d¬«      t        dt        d«      «      t        j                  ¬	«      }t	        d
|j
                  j                  «       y y )NrI   rJ   TrK   rM   rN   Údata2Úmy_idxrP   Úmy_idx_s)r   r   r   r   r$   ÚcrM   r   rR   rS   r7   r   rT   )r=   rZ   Útts      r>   r[   z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Õ(ð ,r@   ry   Ú	inspectorÚkind©Úargnamesc                 óB   ‡— |dk(  rˆfd„S t        ‰«      j                  S )Nry   c                  ó^   •— t        j                  j                  j                  ‰g| ¢­i |¤ŽS r•   )r   r<   ry   Ú	has_index)ÚaÚkr}   s     €r>   Ú<lambda>z)HasIndexTest._has_index.<locals>.<lambda>ý   s$   ø€ ¤6§9¡9×#4Ñ#4×#>Ñ#>¸tÐ#MÀaÒ#MÈ1Ò#Mr@   )r   r®   )r|   r©   r}   s     `r>   Ú
_has_indexzHasIndexTest._has_indexû   s!   ø€ Ø�9ÒÛMÐMä˜4“=×*Ñ*Ð*r@   c           	      óØ  — | j                  ||«      } |dd«      sJ ‚ |dd«      rJ ‚ |dd«      rJ ‚ |dd«      rJ ‚ |dd«      rJ ‚ |dd«      rJ ‚t        d| j                  j                  j                  j
                  «      }t        d|t        d	t        «      t        dd	«      «      }|j                  |«       |j                  |«       	 |d
k(  r0 |dd«      rJ ‚ |dd«      rJ ‚|j                  j                  «         |dd«      du sJ ‚ |dd«      du sJ ‚	 |j                  |«       |j                  |«       y # |j                  |«       |j                  |«       w xY w)NrI   r¤   r¥   rw   Únonexistent_idxÚmy_idx_2Útest_table_2Úmy_idx_3Úfoor¨   T)r²   r$   ÚtablesrI   r¦   r£   r   r   r   r‚   Ú__self__rƒ   r„   )r|   r©   r’   rZ   ÚmethÚidxÚtbls          r>   Útest_has_indexzHasIndexTest.test_has_index  so  € à�‰˜t ZÓ0ˆÙ�L (Ô+Ð+Ð+Ù˜ jÔ1Ð1Ð1ÙÐ+¨XÔ6Ð6Ð6Ù˜Ð&7Ô8Ð8Ð8á˜ jÔ1Ð1Ð1Ù˜¨
Ô3Ð3Ð3Ü�J §¡× 6Ñ 6× 8Ñ 8× >Ñ >Ó?ˆÜØØÜ�5œ'Ó"Ü�*˜eÓ$ó	
ˆð 	�
‰
�:ÔØ�
‰
�:Ôð		!Ø�{Ò"Ù ¨jÔ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 Å$E)c                 ó   — | j                  ||«      } |ddt        j                  ¬«      sJ ‚ |ddt        j                  ¬«      rJ ‚ |ddt        j                  ¬«      rJ ‚ |ddt        j                  ¬«      rJ ‚y )NrI   r¥   rP   r¤   rw   Únonexistent_idx_s)r²   r   rT   )r|   r©   r’   r»   s       r>   Útest_has_index_schemaz"HasIndexTest.test_has_index_schema  sŠ   € ð �‰˜t ZÓ0ˆÙ�L *´V×5GÑ5GÕHÐHÐHÙ˜ h´v×7IÑ7IÕJÐJÐJÙØ ´F×4FÑ4Fõ
ð 	
ð 
ñ ØÐ-´f×6HÑ6Hõ
ð 	
ð 
ð 
r@   N)rA   rB   rC   r�   Ú__requires__rD   r[   r   Úcombinationsr©   r²   r¾   rR   rS   rÁ   rE   r@   r>   r    r    à   sw   „ Ø€KØ(€Làñ)ó ð)ð(  ˆ7×Ñ 	¨;ÀÔH€Dò+ð 
ñ!ó 
ð!ð: ×Ñ×ÑØ	ñ	
ó 
ó ñ	
r@   r    c                   ól  — e Zd ZdZd„ Zd„ Z ej                  dddg«       e«        e«       ej                  j                  d„ «       «       «       «       Z
 e«        e«       ej                  j                  d„ «       «       «       Z e«        e«       ej                  j                  d„ «       «       «       Zy	)
ÚBizarroCharacterTestTc                  ó6   — t        j                  ddddd¬«      S )N)Ú	plainname)z(3))zcol%p)z[brack]Ú
columnnamerª   ©r   rÃ   rE   r@   r>   Úcolumn_namesz!BizarroCharacterTest.column_names1  s$   € Ü×#Ñ#ØØØØØ!ô
ð 	
r@   c                  ó6   — t        j                  ddddd¬«      S )N)Úplain)z(2))z
per % cent)z
[brackets]Ú	tablenamerª   rÉ   rE   r@   r>   Útable_namesz BizarroCharacterTest.table_names:  s$   € Ü×#Ñ#ØØØØØ ô
ð 	
r@   Úuse_compositeFc                 ó`  — t        ||t        |t        dd¬«      d¬«      }|r!|j                  t        dt        d¬«      «       |rt        d|t        dt        d¬«      t        dt        «      t        d	t        «      t	        j
                  dd	g|j                  j                  |j                  j                  g«      d¬«       nGt        d|t        dt        d¬«      t        dt        |j                  j                  «      «      d¬«       |j                  |«       t        «       }t        d||¬
«      }|j                  |   }	|j                  j                  j                  |	j                  d   «      sJ ‚|r5|j                  j                  j                  |	j                  d   «      sJ ‚yy)ztests for #10275rJ   T)ÚkeyrL   ©Útest_needs_fkÚid2rK   ÚotherÚrefÚref2©Úautoload_withr   é   N)r   r   r   Úappend_columnrn   ÚForeignKeyConstraintr¦   rJ   rÔ   r   Ú
create_allr   r¹   rÖ   Ú
referencesr×   )
r|   r’   rZ   rÏ   rÍ   rÈ   r§   Úm2Úo2Út1s
             r>   Útest_fk_refz BizarroCharacterTest.test_fk_refC  sW  € ô ØØÜ�:œ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¨jÔ9ˆØ�Y‰Y�yÑ!ˆà�t‰t�x‰x×"Ñ" 2§4¡4¨¡7Ô+Ð+Ð+ÙØ—4‘4—9‘9×'Ñ'¨¯©¨Q©Ô0Ð0Ñ0ð r@   c           
      óÐ   — t        ||t        |t        t        «       d¬«      «       |j	                  |«       t        |«      }t        |j                  |«      d   d   d   d«       y )NTrK   r   ÚidentityÚstartrÚ   ©r   r   r   r   rÝ   r   r   Úget_columns©r|   rÍ   rÈ   r’   rZ   r…   s         r>   Útest_reflect_identityz*BizarroCharacterTest.test_reflect_identityr  s`   € ô 	ØØÜ�:œw¬«
ÀÔEô	
ð
 	×Ñ˜JÔ'Ü�zÓ"ˆäˆD×Ñ˜YÓ'¨Ñ*¨:Ñ6°wÑ?ÀÕCr@   c           
      óÚ   — t        ||t        dt        d¬«      t        |t        d¬«      «       |j                  |«       t	        |«      }t        |j                  |«      d   d   d«       y )NrJ   TrK   úsome comment©ÚcommentrÚ   rí   ©r   r   r   rÝ   r   r   rç   rè   s         r>   Útest_reflect_commentsz*BizarroCharacterTest.test_reflect_comments‚  sc   € ô 	ØØÜ�4œ¨dÔ3Ü�:œw°Ô?ô		
ð 	×Ñ˜JÔ'Ü�zÓ"ˆäˆD×Ñ˜YÓ'¨Ñ*¨9Ñ5°~ÕFr@   N)rA   rB   rC   r�   rÊ   rÎ   r   Ú	variationrR   Ú!foreign_key_constraint_reflectionrâ   Úidentity_columnsré   Úcomment_reflectionrï   rE   r@   r>   rÅ   rÅ   -  sÍ   „ à€Kò
ò
ð €W×Ñ�¨¨u¨Ó6Ùƒ^Ùƒ]Ø×Ñ×7Ñ7ñ)1ó 8ó ó ó 7ð)1ñV ƒ^Ùƒ]Ø×Ñ×&Ñ&ñDó 'ó ó ðDñ ƒ^Ùƒ]Ø×Ñ×(Ñ(ñGó )ó ó ñGr@   rÅ   c                   ó¨   — e Zd ZdZdZej                  d„ «       Zej                  j                  d„ «       Z
ej                  j                  d„ «       Zy)ÚTempTableElementsTestT)Útemp_table_reflectionc                 ób   — t        t        t        j                  dt        j                  › �«      S )NÚ
ident_tmp_re   ©r|   s    r>   rÍ   zTempTableElementsTest.tablenameš  s%   € ä"Ü”F—I‘I ¬F¯L©L¨>Ð:ó
ð 	
r@   c           
      óÐ   — t        ||t        dt        t        «       d¬«      «       |j	                  |«       t        |«      }t        |j                  |«      d   d   d   d«       y )NrJ   TrK   r   rä   rå   rÚ   ræ   ©r|   rÍ   r’   rZ   r…   s        r>   ré   z+TempTableElementsTest.test_reflect_identity   s^   € äØØÜ�4œ¤(£*¸$Ô?ô	
ð
 	×Ñ˜JÔ'Ü�zÓ"ˆäˆD×Ñ˜YÓ'¨Ñ*¨:Ñ6°wÑ?ÀÕCr@   c           
      óÚ   — t        ||t        dt        d¬«      t        dt        d¬«      «       |j                  |«       t	        |«      }t        |j                  |«      d   d   d«       y )	NrJ   TrK   Úfoobarrë   rì   rÚ   rí   rî   rû   s        r>   rï   z+TempTableElementsTest.test_reflect_comments¬  sa   € äØØÜ�4œ¨dÔ3Ü�8œW¨nÔ=ô		
ð 	×Ñ˜JÔ'Ü�zÓ"ˆäˆD×Ñ˜YÓ'¨Ñ*¨9Ñ5°~ÕFr@   N)rA   rB   rC   r�   rÂ   r   ÚfixturerÍ   rR   rò   ré   Útemp_table_comment_reflectionrï   rE   r@   r>   rõ   rõ   ”  sf   „ à€Kà-€Là‡_�_ñ
ó ð
ð
 ×Ñ×&Ñ&ñ	Dó 'ð	Dð ×Ñ×3Ñ3ñ
Gó 4ñ
Gr@   rõ   c                   óæ  — e Zd ZdZdZed„ «       Zd„ Zed„ «       Zee	j                  j                  d„ «       «       Zed„ «       Zed„ «       Zee	j                  j                  d	„ «       «       Zee	j                  j"                  d
„ «       «       Zee	j                  j&                  d„ «       «       Zee	j                  j*                  d„ «       «       Zee	j                  j.                  d„ «       «       Zy)ÚQuotedNameArgumentTestÚonceTc                 ó6  — t        d|t        dt        «      t        dt        d«      «      t        dt        d«      «      t        dt        «      t	        j
                  dd¬«      t	        j                  d	d«      t	        j                  dd
¬«      t	        j                  dgdgd¬«      t	        j                  dd¬«      dd¬«       t        j                  j                  j                  rÅt        d|t        dt        «      t        dt        d«      «      t        dt        d«      «      t        dt        «      t	        j
                  dd¬«      t	        j                  dd«      t	        j                  dd¬«      t	        j                  dgdgd¬«      t	        j                  dd¬«      dd¬«       t        d|t        dt        d¬«      t        dt        «      d¬«       t        j                  j                  j                  �rt        j                  j                  j                  rddg}ndg}|D ]æ  }dt        j                   j"                  j$                  j'                  d|z  «      ›dt        j                   j"                  j$                  j'                  |«      ›�}t)        j*                  |dt-        |«      «       t)        j*                  |d t-        d!t        j                   j"                  j$                  j'                  d|z  «      z  «      «       Œè y y )"Núquote ' onerJ   rk   rN   rM   Ú
related_idzpk quote ' one©rk   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ÚrelatedrK   rÒ   r_   úview %sú AS SELECT * FROM r]   r^   zDROP VIEW %s)r   r   r   r   rn   ÚPrimaryKeyConstraintr$   ÚUniqueConstraintrÜ   ÚCheckConstraintr   rR   Úsymbol_names_w_double_quoter7   Úview_column_reflectionr   r<   ry   Úidentifier_preparerÚquoter   r`   r#   )r=   rZ   Únamesrk   ra   s        r>   r[   z$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Ø%¨Ñ,óñóõ	ñ ð ;r@   c                 ón   —  t        j                  ddt         j                  j                  f«      | «      S )N)r  r  )r   rÃ   rR   r  )Úfns    r>   Úquote_fixturesz%QuotedNameArgumentTest.quote_fixtures  s:   € ð
Œw×#Ñ#ØØœG×,Ñ,×HÑHÐIó
ð óð 	r@   c                 ó>  — t        t        j                  «      }t        j                  j
                  j                  r+|j                  |«      }t        t        |t        «      «       y t        t        «      5  |j                  |«       d d d «       y # 1 sw Y   y xY wr•   )r   r   r<   r   rR   Úreflect_table_optionsr7   Úget_table_optionsr*   Ú
isinstancer:   r   ÚNotImplementedError)r|   rk   r…   Úress       r>   Útest_get_table_optionsz-QuotedNameArgumentTest.test_get_table_options  sg   € ä”v—y‘yÓ!ˆä×Ñ×1Ñ1×9Ò9Ø×(Ñ(¨Ó.ˆCÜ”J˜s¤DÓ)Õ*äÔ2Õ3Ø×&Ñ& tÔ,÷ 4×3Ñ3ús   Á8BÂBc                 ób   — t        t        j                  «      }|j                  d|z  «      sJ ‚y )Nr	  )r   r   r<   Úget_view_definition©r|   rk   r…   s      r>   Útest_get_view_definitionz/QuotedNameArgumentTest.test_get_view_definition"  s+   € ô ”v—y‘yÓ!ˆØ×'Ñ'¨	°DÑ(8Ô9Ð9Ñ9r@   c                 ó\   — t        t        j                  «      }|j                  |«      sJ ‚y r•   )r   r   r<   rç   r  s      r>   Útest_get_columnsz'QuotedNameArgumentTest.test_get_columns(  s$   € ä”v—y‘yÓ!ˆØ×Ñ Ô%Ð%Ñ%r@   c                 ó\   — t        t        j                  «      }|j                  |«      sJ ‚y r•   )r   r   r<   Úget_pk_constraintr  s      r>   Útest_get_pk_constraintz-QuotedNameArgumentTest.test_get_pk_constraint-  s$   € ä”v—y‘yÓ!ˆØ×%Ñ% dÔ+Ð+Ñ+r@   c                 ó\   — t        t        j                  «      }|j                  |«      sJ ‚y r•   )r   r   r<   Úget_foreign_keysr  s      r>   Útest_get_foreign_keysz,QuotedNameArgumentTest.test_get_foreign_keys2  s&   € ô ”v—y‘yÓ!ˆØ×$Ñ$ TÔ*Ð*Ñ*r@   c                 ó\   — t        t        j                  «      }|j                  |«      sJ ‚y r•   )r   r   r<   Úget_indexesr  s      r>   Útest_get_indexesz'QuotedNameArgumentTest.test_get_indexes8  s&   € ô ”v—y‘yÓ!ˆØ×Ñ Ô%Ð%Ñ%r@   c                 ó\   — t        t        j                  «      }|j                  |«      sJ ‚y r•   )r   r   r<   Úget_unique_constraintsr  s      r>   Útest_get_unique_constraintsz2QuotedNameArgumentTest.test_get_unique_constraints>  s&   € ô ”v—y‘yÓ!ˆØ×*Ñ*¨4Ô0Ð0Ñ0r@   c                 ó\   — t        t        j                  «      }|j                  |«      sJ ‚y r•   )r   r   r<   Úget_table_commentr  s      r>   Útest_get_table_commentz-QuotedNameArgumentTest.test_get_table_commentD  s&   € ô ”v—y‘yÓ!ˆØ×%Ñ% dÔ+Ð+Ñ+r@   c                 ó\   — t        t        j                  «      }|j                  |«      sJ ‚y r•   )r   r   r<   Úget_check_constraintsr  s      r>   Útest_get_check_constraintsz1QuotedNameArgumentTest.test_get_check_constraintsJ  s&   € ô ”v—y‘yÓ!ˆØ×)Ñ)¨$Ô/Ð/Ñ/r@   N)rA   rB   rC   Úrun_create_tablesr�   rD   r[   r  r  r   rR   r  r   r"  r%  rñ   r(  r¡   r+  Úunique_constraint_reflectionr.  ró   r1  Úcheck_constraint_reflectionr4  rE   r@   r>   r  r  º  sS  „ ØÐØ€KàñPó ðPòdð ñ-ó ð-ð Ø×Ñ×,Ñ,ñ:ó -ó ð:ð ñ&ó ð&ð ñ,ó ð,ð Ø×Ñ×7Ñ7ñ+ó 8ó ð+ð Ø×Ñ×&Ñ&ñ&ó 'ó ð&ð Ø×Ñ×2Ñ2ñ1ó 3ó ð1ð Ø×Ñ×(Ñ(ñ,ó )ó ð,ð Ø×Ñ×1Ñ1ñ0ó 2ó ñ0r@   r  c           
      ó”  — t        j                  d d„ t         j                  j                  fd¬«      }t        j                  t        j
                  t        j                  t        j                  d¬«      }t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  z  t        j                  t        j                  z  d¬«      }t        j                  ddd¬«      } | | | || «      «      «      «      S )	Nc                  ó"   — t         j                  S r•   )r   rT   rE   r@   r>   r±   z$_multi_combination.<locals>.<lambda>U  s
   € ”F×&Ò&r@   rQ   rª   r3   r©   TFÚ
use_filter)r   rÃ   rR   rS   r    ÚDEFAULTÚ	TEMPORARYÚANYr   ÚTABLEÚVIEWÚMATERIALIZED_VIEWÚANY_VIEW)r  rQ   r3   r©   Úfilter_namess        r>   Ú_multi_combinationrC  Q  só   € Ü×!Ñ!Øá&Ü×Ñ×$Ñ$ð	
ð ô€Fô × Ñ Ü×ÑÜ×ÑÜ�‰Øô	€Eô ×ÑÜ×ÑÜ�‰Ü×$Ñ$Ü�‰Ü×ÑÜ×Ñœ:Ÿ?™?Ñ*Ü×Ñœ:×7Ñ7Ñ7Øô	€Dô ×'Ñ'¨¨e¸lÔK€Lá‘%™™\¨"Ó-Ó.Ó/Ó0Ð0r@   c                   óH  — e Zd ZdxZZdZed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zd„ Zd	„ Zd
„ Zdej                   ej                   dfd„Zdej                   ej                   dfd„Zdej                   ej                   dfd„Zed„ «       Zdej                   ej                   dfd„Zed„ «       Zdej                   ej                   dfd„Zed„ «       Zdej                   ej                   dfd„Zed„ «       Zdej                   ej                   ddfd„Zed„ «       Zdej                   ej                   dfd„Zed„ «       Z e!jD                  jF                  d„ «       Z$e!jD                  jF                  d„ «       Z%e!jD                  jF                  d„ «       Z&e!jD                  jF                  d„ «       Z'e!jD                  jF                  e!jD                  jP                  d„ «       «       Z)e!jD                  jF                  d„ «       Z*e!jD                  jF                  d „ «       Z+ e!jX                  dd!e!jD                  jZ                  fd"¬#«       e!jX                  de!jD                  j\                  fdd$¬#«      d%„ «       «       Z/ e!jX                  de!jD                  j\                  fdd$¬#«      d&„ «       Z0e!jD                  jb                  d'„ «       Z2e!jD                  jf                  e!jD                  jh                  d(„ «       «       Z5e!jD                  jl                  d)„ «       Z7e!jD                  jl                  e!jD                  j\                  d*„ «       «       Z8d_d+„Z9 e!jX                  d,dde!jD                  j\                  fdde!jD                  jf                  fdde!jD                  j\                  e!jD                  jf                  z   fd-¬#«      d.„ «       Z:e!jD                  jv                  d/„ «       Z<e!jD                  jv                  d0„ «       Z=e!jD                  jv                  e!jD                  j|                  e!jD                  jh                  d1„ «       «       «       Z? e!jX                  d2de!jD                  j\                  fd$¬#«      e!jD                  j€                  d3„ «       «       ZA e!jX                  d2de!jD                  j\                  fd$¬#«      e!jD                  jZ                  d4„ «       «       ZBe!jD                  j†                  e!jD                  j\                  d5„ «       «       ZD e!jX                  d2de!jD                  j\                  fd$¬#«      e!jD                  jŠ                  d6„ «       «       ZF e!jX                  d7d8d9¬#«      e!jD                  jŠ                  e!jD                  jŽ                  e!jD                  j�                  d:„ «       «       «       «       ZIe!jD                  jv                  e!jD                  j”                  d;„ «       «       ZKe!jD                  j˜                  d<„ «       ZM e!jX                  de!jD                  j\                  fd2d$¬#«      e!jD                  j”                  d=„ «       «       ZNe!jD                  jf                   e!jX                  d2de!jD                  j\                  fd$¬#«      d>„ «       «       ZOe!jD                  jf                  d?„ «       ZPe!jD                  j¢                  d@„ «       ZR e!jX                  de!jD                  j\                  fd2d$¬#«      dA„ «       ZS e!jX                  de!jD                  j\                  fd«      dB„ «       ZTe!jª                  dC„ «       ZVe!jD                  j®                  eXdD„ «       «       ZYe!jD                  jl                  eXdE„ «       «       ZZdF„ Z[d`dG„Z\dadH„Z]eXdI„ «       Z^e!jD                  j€                  eXdJ„ «       «       Z_dK„ Z`e!jD                  jZ                  eXdL„ «       «       Zae!jD                  jŠ                  eXdM„ «       «       Zbe!jD                  j”                  eXdN„ «       «       Zce!jD                  jÈ                  eXdO„ «       «       Ze e!jX                  dPe!jD                  j®                  fdQdRe!jD                  j€                  fdSe!jD                  jZ                  fdTe!jD                  jŠ                  fdUe!jD                  j”                  fdVe!jD                  jÈ                  fdWe!jD                  jl                  fdX¬#«	      dY„ «       ZfdZ„ Zg e!jX                  ddd$¬#«       e!jX                  de!jD                  jÐ                  fdd[¬#«      d\„ «       «       Zie!jD                  jl                  d]„ «       Zje!jD                  jÖ                  d^„ «       Zly)bÚComponentReflectionTestNTc                 óÆ   — | j                  |d «       t        j                  j                  j                  r+| j                  |t        j
                  j                  «       y y r•   )Údefine_reflected_tablesr   rR   rS   r7   r   rT   rY   s     r>   r[   z%ComponentReflectionTest.define_tablest  sF   € à×#Ñ# H¨dÔ3Ü×Ñ×#Ñ#×+Ò+Ø×'Ñ'¨´'·.±.×2LÑ2LÕMð ,r@   c                 ó€  — |r|dz   }nd}t         j                  j                  j                  rt	        d|z  d¬«      f}nd}t        d|t        dt        j                  d	¬
«      t        dt        j                  d«      d¬«      t        dt        j                  «       d¬«      t        dt        j                  g|¢­Ž t        j                  ddd¬«      t        j                  d«      |d	¬«
      }t        d|t        dt        j                  d	¬
«      t        dt        j                  t	        d|z  dd¬«      «      t        dt        j                  t	        d|z  «      «      t        dt        j                  d«      d	¬ «      t        j                  d!d"¬«      t        j                  ddd#d$¬«      |d	¬«
       t        d%|t        dt        j                  «      t        d&t        j                  t	        |j                  j                   «      «      t        d't        j                  d(«      d	¬)«      t        j"                  dd*d+¬«      |d	¬«       t        d,|t        d-t        j                  d	d.¬/«      t        dt        j                  d(«      d0¬1«      t        d2t        j                  d(«      d3¬1«      t        d4t        j                  d5«      d6¬1«      |d7¬8«       t        d9|t        dt        j                  d(«      «      |d:¬8«       t         j                  j$                  j                  �re|€št        d;|t        d-t        j                  d	¬
«      t        dt        j                  d(«      «      t        d<t	        d=t         j&                  j(                  z  «      «      d	t&        j*                  j,                  j.                  ¬>«       nÉt        d?|t        d-t        j                  d	¬
«      t        d@t	        dAt&        j*                  j,                  j.                  z  «      «      t        dt        j                  d(«      «      |d	¬«       t        dB|t        d-t        j                  d	¬
«      t        dt        j                  d(«      «      |d	¬«       t         j                  j0                  j                  �r›t3        dC|j                  j4                  |j                  j6                  d	¬ «       t3        dD|j                  j                   |j                  j6                  |j                  j4                  «       |�st        dE|t        dFt        j                  d«      «      d	¬G«      }t        dH|t        d-t        j                  d	¬
«      t        dFt        j                  d«      «      d	¬G«      }t         j                  j8                  j                  r€t         j                  j:                  j                  r\t3        dI|j                  j<                  j?                  «       «       t3        dJ|j                  j<                  j?                  «       «       t         j                  j@                  j                  r| jC                  ||«       |s7t         j                  jD                  j                  r| jG                  |«       y y y )KNÚ.Ú z%susers.user_idÚ
user_id_fkr  rE   ÚusersÚuser_idTrK   Útest1é   F©ÚnullableÚtest2Úparent_user_idú	test2 > 0Úzz_test2_gt_zeroúusers check constraint©rk   rí   útest2 <= 1000©rQ   rÓ   Ú
dingalingsÚdingaling_idÚ
address_idz%semail_addresses.address_idÚzz_email_add_id_fgúdi fk commentÚid_userrM   é   )Ú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_testrJ   ú
id comment)rL   rí   údata % commentrì   Úd2ú)Comment types type speedily ' " \ '' Fun!Úd3é*   úComment
withescapesúthe test % ' " \ table comment)rQ   rí   Úno_constraintsú"no
constraintshasescapedcommentÚlocal_tableÚ	remote_idz%s.remote_table_2.id)rÓ   rQ   Ú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   rR   Úself_referential_foreign_keysr7   r   r   r   rn   ro   ÚCHARÚFloatr   r  r   r  r¦   rM  r  Úcross_schema_fk_reflectionr   rT   r<   ry   Údefault_schema_namer¡   r$   rN  rR  Úindexes_with_ascdescÚreflect_indexes_with_ascdescr  Údescr  rV   rö   rX   )r=   rZ   rQ   Úschema_prefixÚparent_id_argsrL  r~  r€  s           r>   rG  z/ComponentReflectionTest.define_reflected_tablesz  s4  € áØ" 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Ü�- §¡§¡°·±·±À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 vÔ.Ùœ'×*Ñ*×@Ñ@×HÒHØ×"Ñ" 8Õ,ð Iˆvr@   c                 ób   — t        t        t        j                  dt        j                  › �«      S rc   re   rg   s    r>   rh   z'ComponentReflectionTest.temp_table_name(  ri   r@   c                 óÌ  — t        t        t        j                  «      }| j                  «       }t	        ||t        dt        j                  d¬«      t        dt        j                  d«      «      t        dt        j                  «      t        j                  ddt        j                  › �¬«      t        j                  d	d«      fi |¤Ž}t        j                  j                  j                  rwt        j                  j                   j                  rRt#        j$                  |d
t'        dt        j                  z  «      «       t#        j$                  |dt'        d«      «       y y y )NrJ   TrK   rk   rN   r¸   Úuser_tmp_uq_r  Úuser_tmp_ixr]   rl   r^   rm   )r   r   r<   rh   r   r   rn   ro   rp   r  rf   r$   r   rR   rU   r7   rq   r   r`   r#   rr   s        r>   rX   z*ComponentReflectionTest.define_temp_tables.  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ð 5r@   c                 óâ  — t         j                  j                  j                  rdh}n
t	        «       }dD ]¸  }|}|r|› d|› �}|dz   }||v rdnd}d|› d|› d	|› �}t        j                  |d
t        |«      «       ||v rId}	|rt        j                  d«      r|› d|	› �}	d|	› d|› d�}
t        j                  |d
t        |
«      «       t        j                  |dt        d|› d|› �«      «       Œº y )NrZ  ©rL  re  rZ  rI  Ú_vzMATERIALIZED rJ  zCREATE zVIEW r
  r]   Ú	mat_indexÚoraclezCREATE INDEX z ON z(data)r^   zDROP )	r   rR   Úmaterialized_viewsr7   Úsetr   r`   r#   Úagainst)r=   rZ   rQ   Úmaterializedrt   ÚfullnameÚ	view_nameÚprefixra   Ú
index_namer¼   s              r>   rV   z$ComponentReflectionTest.define_viewsP  s	  € ä×Ñ×.Ñ.×6Ò6Ø(˜>‰Lä›5ˆLÛDˆJØ!ˆHÙØ$˜X Q z lÐ3�Ø  4™ˆIØ(2°lÑ(B‘_ÈˆFà˜&˜  y kÐ1CÀHÀ:ÐNð ô �L‰L˜ >´3°u³:Ô>Ø˜\Ñ)Ø(�
ÙœgŸo™o¨hÔ7Ø$* 8¨1¨Z¨LÐ!9�JØ% j \°°i°[ÀÐG�Ü—‘˜X ~´s¸3³xÔ@Ü�L‰LØ˜-¬¨u°V°H¸EÀ)ÀÐ-MÓ)Nõñ# Er@   c                 óÜ   — i }t         j                  |v r|j                  |«       t         j                  |v r|j                  |«       t         j                  |v r|j                  |«       |S r•   )r   r>  Úupdater?  r@  )r|   r©   r¹   rž   r™  r  s         r>   Ú_resolve_kindz%ComponentReflectionTest._resolve_kindk  sX   € ØˆÜ×Ñ˜tÑ#Ø�J‰J�vÔÜ�?‰?˜dÑ"Ø�J‰J�uÔÜ×'Ñ'¨4Ñ/Ø�J‰J�|Ô$Øˆ
r@   c                 ó  — t         j                  j                  j                  s!|j	                  «        |j	                  «        y t         j                  j
                  j                  s"|j                  |«       |j	                  «        y y r•   )r   rR   r  r7   Úclearr–  rŸ  )r|   rž   r™  s      r>   Ú_resolve_viewsz&ComponentReflectionTest._resolve_viewsu  s^   € Ü×Ñ×6Ñ6×>Ò>Ø×ÑÔ Ø�K‰K�MÜ×!Ñ!×4Ñ4×<Ò<Ø�L‰L˜Ô&Ø×ÑÕ ð =r@   c           	      óØ  — d„ }|t         j                  u rd„ }|t         j                  u rd„ }d ddht        j                  j
                  dddd	| j                  «       hi}t        j                  j                  j                  sB|d    j                  d«       |t        j                  j
                     j                  ddg«       t        j                  j                  j                  s|d    j                  ddg«       t        j                  j                  j                  r$t        j                  j                  j                  s$|d    j                  d	| j                  «       g«       t        j                  j                  j                  s|d    j                  d	g«       |j!                  «       D ��ci c]#  \  }} ||«      r|d
   ||   vr|r|d
   |v r||“Œ% }	}}|	S c c}}w )Nc                  ó   — y)NTrE   )Ú_s    r>   r±   z8ComponentReflectionTest._resolve_names.<locals>.<lambda>~  s   €  r@   c                 ó   — d| d   vS ©NÚtmprÚ   rE   ©r°   s    r>   r±   z8ComponentReflectionTest._resolve_names.<locals>.<lambda>€  s   €  U°!°A±$Ñ%6r@   c                 ó   — d| d   v S r¨  rE   rª  s    r>   r±   z8ComponentReflectionTest._resolve_names.<locals>.<lambda>‚  s   €  U¨a°©d¡]r@   ry  r{  rw  r~  r€  r™   rÚ   )r    r;  r<  r   r   rT   rh   rR   r†  r7   ÚaddrŸ  r¡   rö   Útemp_table_namesrq   Úitems)
r|   rQ   r3   rB  ÚvaluesÚscope_filterÚremovedr°   Úvr  s
             r>   Ú_resolve_namesz&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ð Ÿ™œô
á&‘��1Ù˜AŒØ�!‘˜G F™OÑ+Ù! Q q¡T¨\Ñ%9ð	 ˆq‰DØ&ð 	ñ 
ð ˆ
ùó
s   Æ9(G&c                 ó¾  — |dft         j                  i}|dft         j                  |dft         j                  |dft         j                  i}| j                  ||«       |dft         j                  |dft         j                  |dft         j                  |dft         j                  |d	ft         j                  |d
ft         j                  |dft         j                  |dft         j                  |dft         j                  |dft         j                  || j                  «       ft         j                  i}| j	                  ||||«      }| j                  ||||«      }|S )NÚdingalings_vÚemail_addresses_vÚusers_vr™   rL  rZ  re  rl  ru  rw  ry  r{  r~  r€  ©r+   r=  r£  rh   r   r³  )	r|   rQ   r3   r©   rB  r™  rž   r¹   r  s	            r>   Úexp_optionsz#ComponentReflectionTest.exp_options¨  s=  € ð   Ð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Ø�T×)Ñ)Ó+Ð,¬d¯h©hð
ˆð × Ñ   v¨u°lÓCˆØ×!Ñ! &¨%°¸sÓCˆØˆ
r@   c                 ó*  — dd i}|df|i}|df||df||df|i}| j                  ||«       |df||df||df||d	fdd
i|dfddi|df||df||df||df||df||| j                  «       f|i}| j                  ||||«      }	| j                  ||||	«      }	|	S )NÚtextrµ  r¶  r·  r™   rL  rZ  re  rl  rt  ru  rv  rw  ry  r{  r~  r€  )r£  rh   r   r³  )
r|   rQ   r3   r©   rB  Úemptyr™  rž   r¹   r  s
             r>   Úexp_commentsz$ComponentReflectionTest.exp_commentsÇ  s   € ð ˜�ˆØ Ð0°%Ð8ˆàÐ(Ð)¨5Ø�YÐ Ø�\Ð" Eð
ˆð
 	×Ñ˜E <Ô0à�WÐ˜uØ�\Ð" EØÐ&Ð'¨Ø�^Ð$ØÐ=ð'ð Ð%Ð&ØÐ@ð)ð �]Ð# UØ�^Ð$ eØÐ%Ð&¨ØÐ+Ð,¨eØÐ)Ð*¨EØ�T×)Ñ)Ó+Ð,¨eð
ˆð" × Ñ   v¨u°lÓCˆØ×!Ñ! &¨%°¸sÓCˆØˆ
r@   c                 óš  ‡
— dt         j                  d dfd„Š
ˆ
fd„}|df ‰
ddt         j                  ¬«       ‰
d	«       ‰
d
«       ‰
d«      gi}|df ‰
d	dt         j                  ¬«       ‰
d«       ‰
d«      g|df ‰
ddt         j                  ¬«       ‰
dt         j                  ¬«       ‰
dt         j                  ¬«       ‰
d«      g|df ‰
ddt         j                  ¬«       ‰
d«       ‰
d«      gi}| j                  ||«       |df |d«       ‰
dd¬«       ‰
dd¬«       ‰
d«      g|df |d«       ‰
d	«       ‰
d
«       ‰
d«      g|df |d	«       ‰
d«       ‰
d«      g|df |dd¬«       ‰
dd¬«       ‰
d d!¬«       ‰
d"d#¬«      g|d$f ‰
d«      g|d%f |d«       ‰
d«       ‰
d&«      g|d'f |d«       ‰
d(«       ‰
d«      g|d)f |d«       ‰
d«      g|d*f ‰
d+«      g|d,f |d«       ‰
d+«      g|| j                  «       f |d«       ‰
d«       ‰
d«      gi}| j	                  ||||«      }	| j                  ||||	«      }	|	S )-NFTc                 ó`   — | |t         j                  |||dœ}|dk(  r|j                  d«       |S )N)rk   ÚautoincrementÚtypeÚdefaultrí   rQ  ÚomitrÀ  )r+   r=  Úpop)rk   ÚautorÂ  rí   rQ  r  s         r>   r�   z0ComponentReflectionTest.exp_columns.<locals>.colò  s;   € ð Ø!%ÜŸ™Ø"Ø"Ø$ñˆCð �vŠ~Ø—‘˜Ô(ØˆJr@   c                 óB   •— dt         j                  ddœ|¥} ‰| fi |¤ŽS )NTF)rÅ  rÂ  rQ  ©r+   r=  )rk   rs   r�   s     €r>   Úpkz/ComponentReflectionTest.exp_columns.<locals>.pk  s&   ø€ Ø¬4¯8©8ÀÑMÈ"ÐMˆBÙ�t‘?˜r‘?Ð"r@   rµ  r[  rÃ  )rÅ  rQ  r\  r_  rM   r¶  rf  rg  r·  rM  rN  rP  rR  rS  r™   rJ   rk   r¸   rL  rZ  re  rl  rm  rì   rn  ro  rp  rq  rs  ru  rw  rx  ry  rz  r{  r~  r  r€  r¸  )r|   rQ   r3   r©   rB  rÈ  r™  rž   r¹   r  r�   s             @r>   Úexp_columnsz#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Ð,@Ø�T×)Ñ)Ó+Ð,Ù�4“Ù�F“Ù�E“
ð/ðC&
ˆðN × Ñ   v¨u°lÓCˆØ×!Ñ! &¨%°¸sÓCˆØˆ
r@   c                 ó
   — h d£S )N>   rk   rÁ  rÂ  rQ  rE   rù   s    r>   Ú_required_column_keysz-ComponentReflectionTest._required_column_keysK  s   € â6Ð6r@   c                 óÎ  — t         j                  d dœd„} |d ¬«      }t        j                  j                  j
                  r|df |d«      i}n|df|i}|df||df||df|i}| j                  ||«       |d	f |d
«      |df |d«      |df |ddd¬«      |df |d«      |df||df |d«      |df |d«      |df |d«      |df||df |d«      || j                  «       f |d«      i}	t        j                  j                  j
                  s.|	j                  «       D ]  }
|
d   €Œ	t         j                  |
d<   Œ | j                  ||	||«      }| j                  ||||«      }|S )NrW  c                 ó    — t        |«      | |dœS )N)Úconstrained_columnsrk   rí   )Úlist)rk   rí   Úcolss      r>   rÈ  z+ComponentReflectionTest.exp_pks.<locals>.pkV  s   € ä'+¨D£zØØ"ñð r@   r  rµ  r[  r¶  r·  r™   rL  rM  rZ  re  r\  rj  rk  rl  rJ   ru  rw  ry  r{  r~  r€  rk   )r+   r=  r   rR   Úmaterialized_views_reflect_pkr7   r£  rh   Úreflects_pk_namesr¯  r   r³  )r|   rQ   r3   r©   rB  rÈ  r¼  r™  rž   r¹   Úvalr  s               r>   Úexp_pkszComponentReflectionTest.exp_pksO  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Ø�T×)Ñ)Ó+Ð,©b°«hð
ˆô ×Ñ×1Ñ1×9Ò9Ø—}‘}–�Ø�v‘;Ñ*Ü"&§(¡(�C˜’Kð 'ð × Ñ   v¨u°lÓCˆØ×!Ñ! &¨%°¸sÓCˆØˆ
r@   c                 ó
   — ddhS )Nrk   rÎ  rE   rù   s    r>   Ú_required_pk_keysz)ComponentReflectionTest._required_pk_keys  s   € àÐ-Ð.Ð.r@   c                 óT  ‡—  G d„ d«      Š|t         j                  d fˆfd„	}|dfg i}|dfg |dfg |dfg i}| j                  ||«       |df |d	gd
gdd¬«      g|df |dgd
gd«       |dgdgddd¬«      g|df |dgd
gd«      g|dfg |dfg |df |dgdgdt        j                  ¬«      g|df |dgdgdd ¬«      g|dfg |dfg |dfg || j                  «       fg i}t        j                  j                  j                  s||df   j                  «        t        j                  j                  j                  sE|j                  «       D ]2  }	|	D ]+  }
|
d    t         j                  usŒt         j                  |
d <   Œ- Œ4 | j                  ||||«      }| j                  ||||«      }|S )!Nc                   ó   — e Zd Zd„ Zy)ú+ComponentReflectionTest.exp_fks.<locals>.ttc                 ó\   — |d u xs' t         j                  j                  j                  |k(  S r•   )r   r<   ry   r‡  )r|   rÕ   s     r>   Ú__eq__z2ComponentReflectionTest.exp_fks.<locals>.tt.__eq__‹  s,   € à˜T�Mò FÜ—y‘y×(Ñ(×<Ñ<ÀÑEðr@   N©rA   rB   rC   rÛ  rE   r@   r>   r§   rÙ  Š  s   „ ór@   r§   c                 óF   •— | ||t         j                  |�|n ‰«       ||dœS )N)rÎ  Úreferred_columnsrk   r4   Úreferred_schemaÚreferred_tablerí   rÇ  )rÐ  Úref_colÚ	ref_tableÚ
ref_schemark   rí   r§   s         €r>   Úfkz+ComponentReflectionTest.exp_fks.<locals>.fk‘  s1   ø€ ð (,Ø$+ØÜŸ8™8à",Ð"8‘J¹b»dà"+Ø"ñ
ð 
r@   rµ  r¶  r·  r™   rL  rS  rM  rK  r  rZ  r_  r\  re  r]  r^  rW  rf  rl  ru  rw  rx  rJ   r{  )rã  ry  rz  r~  r€  rk   )r+   r=  r£  r   rT   rh   r   rR   rƒ  r7   r¢  Únamed_constraintsr¯  r   r³  )r|   rQ   r3   r©   rB  rä  r™  rž   r¹   ÚvalsrÓ  r  r§   s               @r>   Úexp_fkszComponentReflectionTest.exp_fksƒ  s5  ø€ ÷	ñ 	ð Ü—‘Øõ	ð(   Ð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Ø�T×)Ñ)Ó+Ð,¨bðC"
ˆôF ×Ñ×=Ñ=×EÒEØ�F˜GÐ$Ñ%×+Ñ+Ô-Ü×Ñ×1Ñ1×9Ò9ØŸ™ž�Û�CØ˜6‘{¬$¯(©(Ò2Ü&*§h¡h˜˜Fšñ  ð (ð
 × Ñ   v¨u°lÓCˆØ×!Ñ! &¨%°¸sÓCˆØˆ
r@   c                 ó
   — h d£S )N>   rk   rà  rß  rÞ  rÎ  rE   rù   s    r>   Ú_required_fk_keysz)ComponentReflectionTest._required_fk_keysÛ  s   € ò
ð 	
r@   c                 ó^  — dd dddœd„}|dfg i}|dfg |dfg |dfg i}| j                  ||«       |r||df   j                   |dd	¬
«      «       |dfg  |ddd¬«      ¢ |dddd¬
«      ¢ |dddd¬«      ¢|dfg  |dt        j                  dd¬«      ¢ |dt        j                  d¬«      ¢ |ddddd¬«      ¢|dfg  |dt        j                  ¬
«      ¢ |dt        j                  d¬«      ¢|dfg |d fg |d!fg  |d"t        j                  d¬«      ¢|d#fg  |d$t        j                  d¬«      ¢|d%fg |d&fg  |d'd(d'd)i¬*«      ¢|d+fg  |d'd,d'd)i¬*«      ¢|| j	                  «       fg  |d-d.¬
«      ¢ |d/d0t
        j                  › �dd¬1«      ¢i}t        j                  j                  j                  r$t        j                  j                  j                  s*||d&f   j                  «        ||d+f   j                  «        | j                  ||||«      }	| j                  ||||	«      }	|	S )2NF)ra  Úcolumn_sortingÚ
duplicatesrä  c                 ó   — t         j                  j                  }t         j                  j                  }t         j                  j                  }|r|j
                  r|r|j
                  sy|t        |«      | t        j                  g dœ}	|r4||	d<   |j
                  r#|	d   x|	d<   }
|
D �cg c]
  }||v rd n|‘Œ c}|	d<   |r| |	d<   |	gS c c}w )NrE   )ra  rÊ   rk   Údialect_optionsÚinclude_columnsrë  rÊ   ÚexpressionsÚduplicates_constraint)	r   rR   Úforeign_keys_reflect_as_indexÚ#unique_constraints_reflect_as_indexÚ*reflect_indexes_with_ascdesc_as_expressionr7   rÏ  r+   r=  )rk   ra  rë  rì  rä  rÐ  Úfk_reqÚdup_reqÚsorting_expressionr  Úorigr¦   s               r>   r¼   z0ComponentReflectionTest.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™   rM   r”  r  rL  rS  rK  T)rk   rä  rM  rR  rN  r}  r|  )rk   ra  rZ  )rk   ra  rì  r_  r\  r[  rc  re  rg  rf  rl  ru  rw  rx  ry  rz  r{  r~  r  r�  )rŠ  )rk   rë  r€  r‚  r¸   r�  rk   r�  )rk   rì  ra  )r£  Úextendr+   r=  rh   r   rf   r   rR   rˆ  r7   r‰  r¢  r   r³  )
r|   rQ   r3   r©   rB  r¼   r™  rž   r¹   r  s
             r>   Úexp_indexesz#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ôð-ð
 �T×)Ñ)Ó+Ð,ð /Ù�U Ô/ð/áØØ'¬¯© ~Ð6Ø#Øô	ð/ðU3
ˆôj × Ñ ×5Ñ5×=Ò=Ü×#Ñ#×@Ñ@×HÒHà�FÐ2Ð3Ñ4×:Ñ:Ô<Ø�FÐ0Ð1Ñ2×8Ñ8Ô:Ø× Ñ   v¨u°lÓCˆØ×!Ñ! &¨%°¸sÓCˆØˆ
r@   c                 ó
   — h d£S )N>   rk   ra  rÊ   rE   rù   s    r>   Ú_required_index_keysz,ComponentReflectionTest._required_index_keysZ  s   € â1Ð1r@   Fc                 óö  — d dd dœd„}|dfg i}|dfg |dfg |dfg i}| j                  ||«       |dfg  |d	d
ddd¬«      ¢|dfg  |dt        j                  t        j                  ¬«      ¢ |ddddd¬«      ¢|dfg |dfg |dfg |dfg |dfg |dfg |dfg |dfg || j                  «       fg  |ddt        j
                  › �¬ «      ¢i}	|ri |¥|¥|	¥S | j                  ||	||«      }
| j                  ||||
«      }
|
S )!NF)Úduplicates_indexÚis_indexrí   c                 ó†   — t         j                  j                  }|r|j                  syt	        |«      | |dœ}|r||d<   |gS )NrE   )rÊ   rk   rí   rþ  )r   rR   Ú*unique_index_reflect_as_unique_constraintsr7   rÏ  )rk   rþ  rÿ  rí   rÐ  Úreqr  s          r>   Úucz+ComponentReflectionTest.exp_ucs.<locals>.ucf  sL   € ô ×"Ñ"×MÑMˆCÙ §¢Øä $ T£
ØØ"ñˆCñ
  Ø*:�Ð&Ñ'Ø�5ˆLr@   rµ  r¶  r·  r™   rL  rN  rR  r|  T)rk   rþ  rÿ  rZ  rM   )rk   rþ  r\  r[  rc  rd  )rk   rþ  rí   re  rl  ru  rw  ry  r{  r~  r€  rk   r�  r  )r£  r+   r=  rh   r   rf   r   r³  )r|   rQ   r3   r©   rB  Úall_r  r™  rž   r¹   r  s              r>   Úexp_ucszComponentReflectionTest.exp_ucs^  s   € ð +/¸Èô	ð   Ð0°"Ð5ˆàÐ(Ð)¨2Ø�YÐ Ø�\Ð" Bð
ˆð
 	×Ñ˜E <Ô0à�WÐð  ÙØØØ&Ø%2Ø!ôð ð �\Ð"ð 	%Ù�F¤§¡¼D¿H¹HÔEð	%áØ Ø"Ø1Ø%=Ø/ôð	%ð Ð&Ð'¨Ø�^Ð$ bØÐ%Ð&¨Ø�]Ð# RØ�^Ð$ bØÐ%Ð&¨ØÐ+Ð,¨bØÐ)Ð*¨BØ�T×)Ñ)Ó+Ð,ð /Ù�F <´·±¨~Ð!>Ô?ð/ð9
ˆñ@ Ø6�lÐ6 eÐ6¨vÐ6Ð6à×$Ñ$ T¨6°5¸,ÓGˆCØ×%Ñ% f¨e°\À3ÓGˆCØˆJr@   c                 ó
   — ddhS )Nrk   rÊ   rE   rù   s    r>   Ú_required_unique_cst_keysz1ComponentReflectionTest._required_unique_cst_keys£  s   € à˜Ð'Ð'r@   c                 ó˜  ‡
—  G d„ dt         «      Š
dˆ
fd„	}|dfg i}|dfg |dfg |dfg i}| j                  ||«       |df |d	t        j                  «       |d
dd¬«      g|df |dd¬«      g|dfg |dfg |dfg |dfg |dfg |dfg |dfg |dfg || j	                  «       fg i}| j                  ||||«      }	| j                  ||||	«      }	|	S )Nc                   ó   — e Zd Zd„ Zy)ú+ComponentReflectionTest.exp_ccs.<locals>.ttc                 óŠ   — |j                  «       j                  dd«      j                  dd«      j                  dd«      }| |v S )NÚ(rJ  Ú)Ú`)ÚlowerÚreplace)r|   rÕ   r  s      r>   rÛ  z2ComponentReflectionTest.exp_ccs.<locals>.tt.__eq__¯  s@   € à—K‘K“Mß‘W˜S "Ó%ß‘W˜S "Ó%ß‘W˜S "Ó%ð	 ð ˜s�{Ð"r@   NrÜ  rE   r@   r>   r§   r
  ®  s   „ ó#r@   r§   c                 ó   •—  ‰| «      ||dœS )N)Úsqltextrk   rí   rE   )r»  rk   rí   r§   s      €r>   Úccz+ComponentReflectionTest.exp_ccs.<locals>.cc¸  s   ø€ Ù! $›x°À'ÑJÐJr@   rµ  r¶  r·  r™   rL  rX  rT  rU  rV  rì   rZ  z$address_id > 0 and address_id < 1000rb  r  re  rl  ru  rw  ry  r{  r~  r€  r•   )Ústrr£  r+   r=  rh   r   r³  )r|   rQ   r3   r©   rB  r  r™  rž   r¹   r  r§   s             @r>   Úexp_ccszComponentReflectionTest.exp_ccs§  sK  ø€ ô	#”ô 	#õ	Kð
   Ð0°"Ð5ˆàÐ(Ð)¨2Ø�YÐ Ø�\Ð" Bð
ˆð
 	×Ñ˜E <Ô0à�WÐÙ�?¤D§H¡HÓ-ÙØØ&Ø4ôð ð �\Ð"ÙØ:Ø-ôð%ð Ð&Ð'¨Ø�^Ð$ bØÐ%Ð&¨Ø�]Ð# RØ�^Ð$ bØÐ%Ð&¨ØÐ+Ð,¨bØÐ)Ð*¨BØ�T×)Ñ)Ó+Ð,¨bð/
ˆð2 × Ñ   v¨u°lÓCˆØ×!Ñ! &¨%°¸sÓCˆØˆ
r@   c                 ó
   — ddhS )Nrk   r  rE   rù   s    r>   Ú_required_cc_keysz)ComponentReflectionTest._required_cc_keysá  s   € à˜	Ð"Ð"r@   c                 ó€   — t        |«      }t        t        j                  j                  |j                  «       v «       y r•   )r   r*   r   r   rT   Úget_schema_namesr‘   s      r>   Útest_get_schema_namesz-ComponentReflectionTest.test_get_schema_nameså  s,   € ä�zÓ"ˆä”—‘×*Ñ*¨d×.CÑ.CÓ.EÐEÕFr@   c                 ó²   — t        |«      }t        |j                  t        j                  j
                  «      «       t        |j                  d«      «       y )NÚsa_fake_schema_foo)r   r*   Ú
has_schemar   r   rT   r)   r‘   s      r>   Útest_has_schemaz'ComponentReflectionTest.test_has_schemaë  s9   € ä�zÓ"ˆä�—‘¤§¡× :Ñ :Ó;Ô<Ü�—‘Ð!5Ó6Õ7r@   c                 óä   — |j                  ddt        t        j                  j                  i¬«      }t        |«      }t        t        j                  j                  |j                  «       v «       y)z
test #7300r¸   Úbar©Úschema_translate_mapN)Úexecution_optionsr&   r   r   rT   r   r*   r  r‘   s      r>   Ú%test_get_schema_names_w_translate_mapz=ComponentReflectionTest.test_get_schema_names_w_translate_mapò  s^   € ð  ×1Ñ1à�uÜœgŸn™n×8Ñ8ð"ð 2ó 
ˆ
ô �zÓ"ˆä”—‘×*Ñ*¨d×.CÑ.CÓ.EÐEÕFr@   c                 ó  — |j                  ddt        t        j                  j                  i¬«      }t        |«      }t        |j                  t        j                  j                  «      «       t        |j                  d«      «       y )Nr¸   r   r!  r  )	r#  r&   r   r   rT   r   r*   r  r)   r‘   s      r>   Útest_has_schema_w_translate_mapz7ComponentReflectionTest.test_has_schema_w_translate_map   si   € à×1Ñ1à�uÜœgŸn™n×8Ñ8ð"ð 2ó 
ˆ
ô �zÓ"ˆä�—‘¤§¡× :Ñ :Ó;Ô<Ü�—‘Ð!5Ó6Õ7r@   c                 ó   — t        |«      }t        d|j                  «       v «       t        |j                  d«      «       |j	                  t        d«      «       	 t        d|j                  «       v «       t        |j                  d«      «       |j                  «        t        d|j                  «       v «       t        |j                  d«      «       |j	                  t        d«      «       y # |j	                  t        d«      «       w xY w)NÚfoo_barzCREATE SCHEMA foo_barzDROP SCHEMA foo_bar)r   r)   r  r  Úexecuter#   rƒ   r*   r‘   s      r>   Útest_schema_cachez)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:C1 Ã1Dc                 ór   — t        j                  «       }t        |«       t        |j                  d«      sJ ‚y )Nr‡  )r   r9   r   Úhasattrry   )r|   Úengines     r>   Útest_dialect_initializez/ComponentReflectionTest.test_dialect_initialize  s,   € ä×'Ñ'Ó)ˆÜ�ŒÜ�v—~‘~Ð'<Ô=Ð=Ñ=r@   c                 ón   — t        |«      }t        |j                  |j                  j                  «       y r•   )r   r   r‡  ry   r‘   s      r>   Útest_get_default_schema_namez4ComponentReflectionTest.test_get_default_schema_name$  s(   € ä�zÓ"ˆÜˆD×$Ñ$ j×&8Ñ&8×&LÑ&LÕMr@   Úforeign_keyÚorder_byrª   Ú
use_schemac                 óZ  — |rt         j                  }nd }h d£}t        |«      }|r'|j                  |«      D �cg c]  }|d   r|d   ‘Œ }}n|j	                  |«      }|D �	cg c]	  }	|	|vsŒ|	‘Œ }
}	|dk(  rg d¢}t        |
|«       y g d¢}t        t        |
«      |«       y c c}w c c}	w )N>   rw  rl  ry  ru  r{  r€  r~  r   r1  r’  )rZ  re  rL  )r   rT   r   Úget_sorted_table_and_fkc_namesÚget_table_namesr   Úsorted)r|   r’   r2  r3  rQ   Ú_ignore_tablesr…   Úrecr¹   ÚtrÎ   Úanswers               r>   Útest_get_table_namesz,ComponentReflectionTest.test_get_table_names)  sÈ   € ñ Ü×'Ñ'‰FàˆFò
ˆô �zÓ"ˆáð  ×>Ñ>¸vÔFóáF�CØ�q’6ð �A“ØFð ñ ð ×)Ñ)¨&Ó1ˆFÙ"(ÓD¡&˜Q¨A°^Ò,C’q &ˆÐDà�}Ò$Ú?ˆFÜ�˜VÕ$â?ˆFÜ”�{Ó# VÕ,ùòùò Es   ºB#Á#	B(Á-B(c                 óH  — t        |«      }|rt        j                  }nd }|j                  |«      }t        j
                  j                  j                  r4t        t        |«      ddg«       t        |j                  |«      dg«       y g d¢}t        t        |«      |«       y )Nr¶  r·  rµ  )rµ  r¶  r·  )r   r   rT   Úget_view_namesr   rR   r–  r7   r   r7  Úget_materialized_view_names)r|   r’   r3  r…   rQ   rÎ   r;  s          r>   Útest_get_view_namesz+ComponentReflectionTest.test_get_view_namesT  s‡   € ô �zÓ"ˆÙÜ×'Ñ'‰FàˆFØ×)Ñ)¨&Ó1ˆÜ×Ñ×.Ñ.×6Ò6Ü”�{Ó#Ð&9¸9Ð%EÔFÜ�×0Ñ0°Ó8¸>Ð:JÕKâEˆFÜ”�{Ó# VÕ,r@   c                 óˆ   — t        |«      }|j                  «       }t        t        |«      dt        j
                  › �g«       y rc   )r   Úget_temp_table_namesr   r7  r   rf   ©r|   r’   r…   r­  s       r>   Útest_get_temp_table_namesz1ComponentReflectionTest.test_get_temp_table_namese  s9   € ä�zÓ"ˆØ×4Ñ4Ó6ÐÜŒFÐ#Ó$¨´6·<±<°.Ð'AÐ&BÕCr@   c                 óf   — t        |«      }|j                  «       }t        t        |«      dg«       y r˜   )r   Úget_temp_view_namesr   r7  rC  s       r>   Útest_get_temp_view_namesz0ComponentReflectionTest.test_get_temp_view_namesk  s/   € ô �zÓ"ˆØ×3Ñ3Ó5ÐÜŒFÐ#Ó$ | nÕ5r@   c                 ó&   — | j                  |«       y r•   )Ú_test_get_comments©r|   r’   s     r>   Útest_get_commentsz)ComponentReflectionTest.test_get_commentsr  s   € à×Ñ 
Õ+r@   c                 óX   — | j                  |t        j                  j                  «       y r•   )rI  r   r   rT   rJ  s     r>   Útest_get_comments_with_schemaz5ComponentReflectionTest.test_get_comments_with_schemav  s   € ð 	×Ñ 
¬G¯N©N×,FÑ,FÕGr@   c                 óŽ  — t        |«      }| j                  |¬«      }t        |j                  d|¬«      ||df   «       t        |j                  d|¬«      ||df   «       t        |j                  d|¬«      ||df   «       | j                  j
                  j                  }t        |j                  ||¬«      |||f   «       y )NrP   rl  rL  )r   r½  r   r0  r¹   ru  rk   )r|   r’   rQ   r…   ÚexpÚno_csts         r>   rI  z*ComponentReflectionTest._test_get_comments{  sÚ   € Ü�zÓ"ˆØ×Ñ vÐÓ.ˆÜØ×"Ñ" >¸&Ð"ÓAØ�˜Ð(Ñ)ô	
ô
 	Ø×"Ñ" 7°6Ð"Ó:Ø�˜Ð!Ñ"ô	
ô
 	Ø×"Ñ" >¸&Ð"ÓAØ�˜Ð(Ñ)ô	
ð
 —‘×+Ñ+×0Ñ0ˆÜØ×"Ñ" 6°&Ð"Ó9Ø�˜Ð Ñ!õ	
r@   )FFzuse_views,use_schemac                 óâ  — |rt         j                  }nd }| j                  j                  | j                  j                  }}|rg d¢}nddg}t        |«      }t        |||f«      D �]  \  }	}
|}|j                  |	|¬«      }t        t        |«      dkD  t        |«      «       t        |
j                  «      D �]±  \  }}t        |j                  ||   d   «       ||   d   j                  }|j                  }t!        |t"        j$                  j&                  «      r|j                  }t)        j*                  d«      r2|t,        j.                  t,        j0                  fv rt,        j.                  }t        t        t3        |j4                  «      j7                  |j4                  «      j7                  t,        j8                  t,        j:                  t,        j0                  t,        j.                  t,        j<                  t,        j>                  t,        j@                  g«      «      dkD  |j                  ›d	|j                  ›d
||   d   ›d	|›d�«       |jB                  r�Œ¨||   d   €�Œ²J ‚ �Œ	 y )N©r·  r¶  rµ  rL  re  rP   r   rk   rÁ  r•  r  z), r  rÂ  )"r   rT   r¹   rL  re  r   Úziprç   r*   ÚlenÚ	enumerateÚcolumnsr   rk   Ú	__class__rÁ  r  rn   r   Ú
TypeEnginer   r˜  Ú	sql_typesÚDater   r—  Ú__mro__Úintersectionr   ÚNumericÚTimer   Ú_BinaryrL   )r|   r’   Ú	use_viewsr3  rQ   rL  Ú	addressesrÎ   r…   rt   ÚtableÚschema_namerÐ  Úir�   ÚctypeÚ	ctype_defs                    r>   r"  z(ComponentReflectionTest.test_get_columns“  sþ  € ñ Ü×'Ñ'‰FàˆFà ŸK™K×-Ñ-¨t¯{©{×/JÑ/JˆyˆÙÚJ‰Kà"Ð$5Ð6ˆKä�zÓ"ˆÜ!$ [°5¸)Ð2D×!EÑˆJ˜Ø ˆKØ×#Ñ# J°{Ð#ÓCˆDÜ”C˜“I ‘M¤3 t£9Ô-ô $ E§M¡M×2‘��3Ü�C—H‘H˜d 1™g f™oÔ.Ø˜Q™ ™×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r@   c                 ó–   — | j                  «       }| j                  |   }t        |t        «       |¬«      }| j	                  ||d¬«       y )NrØ   F)Ústrict_constraints)rh   r¹   r   r   Úassert_tables_equal)r|   r’   rt   ru   Úreflected_user_tmps        r>   Útest_reflect_table_temp_tablez5ComponentReflectionTest.test_reflect_table_temp_tableß  sO   € à×)Ñ)Ó+ˆ
Ø—;‘;˜zÑ*ˆä"Øœ›
°*ô
Ðð 	× Ñ ØÐ(¸Uð 	!õ 	
r@   c                 ó.  — | j                  «       }| j                  |   }t        |«      }|j                  |«      }t	        t        |«      dkD  t        |«      «       t        |j                  «      D ]!  \  }}t        |j                  ||   d   «       Œ# y )Nr   rk   )
rh   r¹   r   rç   r*   rT  rU  rV  r   rk   )r|   r’   rt   ru   r…   rÐ  rd  r�   s           r>   Útest_get_temp_table_columnsz3ComponentReflectionTest.test_get_temp_table_columnsë  s}   € à×)Ñ)Ó+ˆ
Ø—;‘;˜zÑ*ˆÜ�zÓ"ˆØ×Ñ 
Ó+ˆÜ”�D“	˜A‘œs 4›yÔ)ä × 0Ñ 0Ö1‰FˆAˆsÜ�—‘˜$˜q™' &™/Õ*ñ 2r@   c                 ó„   — t        |«      }|j                  d«      }t        |D �cg c]  }|d   ‘Œ	 c}g d¢«       y c c}w )Nr™   rk   )rJ   rk   r¸   )r   rç   r   )r|   r’   r…   rÐ  r�   s        r>   Útest_get_temp_view_columnsz2ComponentReflectionTest.test_get_temp_view_columnsö  s?   € ô �zÓ"ˆØ×Ñ Ó-ˆÜ¡DÓ)¡D˜SˆS�‹[ DÑ)Ò+@ÕAùÒ)s   ¦=)Fc                 ó,  — |rt         j                  j                  }nd }| j                  j                  | j                  j
                  }}t        |«      }| j                  |¬«      }|j                  |j                  |¬«      }| j                  |g|||j                  f   g| j                  «       |j                  |j                  |¬«      }	|||j                  f   d   }
t        |	d   |
«       t         j                  j                  j                  «       5  t        |	d   d«       d d d «       | j                  j                   j                  }| j                  |j                  ||¬«      g|||f   g| j                  «       y # 1 sw Y   Œ_xY w)NrP   rÎ  rk   rj  )r   r   rT   r¹   rL  re  r   rÔ  r$  rk   Ú_check_listrÖ  r   rR   rÒ  Úfail_ifru  )r|   r’   r3  rQ   rL  ra  r…   rO  Ú
users_consÚ	addr_consÚexp_colsrP  s               r>   r%  z.ComponentReflectionTest.test_get_pk_constraintþ  sf  € ñ
 Ü—^‘^×/Ñ/‰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°6Ð#Ó:Ð;Ø�&˜&Ð!Ñ"Ð#Ø×"Ñ"õ	
÷	 :Ð9ús   ÄF
Æ
Fc                 ó>  — |rt         j                  }nd }| j                  j                  | j                  j                  }}t        |«      }|}t        j                  j                  j                  rª|j                  |j                  |¬«      }|d   }	t        j                  j                  j                  «       5  t        |	d   d«       d d d «       t        |	d   |«       t        |	d   |j                  «       t        |	d   dg«       t        |	d	   d
g«       |j                  |j                  |¬«      }
|
d   }	t        j                  j                  j                  «       5  t!        |	d   d u«       d d d «       t        |	d   |«       t        |	d   |j                  «       t        |	d   dg«       t        |	d	   dg«       | j                  j"                  j                  }t        |j                  ||¬«      g «       y # 1 sw Y   �Œ;xY w# 1 sw Y   ŒœxY w)NrP   r   rk   rK  rß  rà  rÞ  rM  rÎ  rS  rf  )r   rT   r¹   rL  re  r   r   rR   rƒ  r7   r'  rk   rå  rr  r   Úimplicitly_named_constraintsr*   ru  )r|   r’   r3  rQ   rL  ra  r…   Úexpected_schemaÚusers_fkeysÚfkey1Ú
addr_fkeysrP  s               r>   r(  z-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c                 óh  — | j                  d|j                  j                  z  dt        j                  j
                  z  dt        j                  j
                  z  «      \  }}}t        |«      }|j                  |j                  «      }t        t        |«      d«       |d   }t        |d   t        j                  j
                  «       t        |d   |j                  «       t        |d   d	g«       t        |d
   dg«       |j                  |j                  t        j                  j
                  ¬«      }t        t        |«      d«       |d   }	t        |	d   d |j                  j                  fv «       t        |	d   |j                  «       t        |	d   d	g«       t        |	d
   dg«       y )Nz%s.local_tablez%s.remote_tablez%s.remote_table_2rÚ   r   rß  rà  rÞ  rJ   rÎ  rx  rP   rz  )r¹   ry   r‡  r   r   rT   r   r'  rk   r   rT  r*   )
r|   r’   rw  ry  r{  r…   Úlocal_fkeysrz  Úremote_fkeysÚfkey2s
             r>   Ú"test_get_inter_schema_foreign_keysz:ComponentReflectionTest.test_get_inter_schema_foreign_keysI  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Ð'Ñ(¨:¨,Õ7r@   c                 óx  — |rt         j                  }nd }t        |«      }|j                  d|¬«      }| j	                  |¬«      }| j                  |||df   | j                  «       | j                  j                  j                  }| j                  |j                  ||¬«      |||f   | j                  «       y )NrL  rP   )
r   rT   r   r*  rú  rq  rü  r¹   ru  rk   )r|   r’   r3  rQ   r…   ÚindexesrO  rP  s           r>   r+  z(ComponentReflectionTest.test_get_indexeso  s¾   € ñ
 Ü×'Ñ'‰FàˆFô �zÓ"ˆØ×"Ñ" 7°6Ð"Ó:ˆØ×Ñ fÐÓ-ˆØ×ÑØ�S˜& 'Ð*Ñ+¨T×-FÑ-Fô	
ð —‘×+Ñ+×0Ñ0ˆØ×ÑØ×Ñ˜V¨FÐÓ3Ø�˜Ð Ñ!Ø×%Ñ%õ	
r@   )r~  r�  )r€  r‚  ztname,ixnamec                 óº  — t        |«      }|j                  |«      }| j                  «       d |f   }| j                  ||| j                  «       t        |t        «       |¬«      }t        t        |j                  «      d«       t        t        |j                  «      d   j                  |«       t        t        |j                  «      d   j                  |«       y )NrØ   rÚ   r   )r   r*  rú  rq  rü  r   r   r   rT  r‚  r   rÏ  rb  rk   )r|   r’   ÚtnameÚixnamer…   r‚  Úexpected_indexesr:  s           r>   Útest_get_noncol_indexz-ComponentReflectionTest.test_get_noncol_index‰  s­   € ô �zÓ"ˆØ×"Ñ" 5Ó)ˆð  ×+Ñ+Ó-¨t°U¨mÑ<ÐØ×Ñ˜Ð"2°D×4MÑ4MÔNä�%œ›°:Ô>ˆÜŒC�—	‘	‹N˜AÔÜŒD�—‘‹O˜AÑ×$Ñ$ aÔ(ÜŒD�—‘‹O˜AÑ×#Ñ# VÕ,r@   c                 óÄ   — t        |«      }| j                  «       }|j                  |«      }| j                  d¬«      d |f   }| j	                  ||| j
                  «       y )NT)r  )r   rh   r-  r  rq  rü  )r|   r’   r…   rk   Ú	reflectedrO  s         r>   Ú&test_get_temp_table_unique_constraintsz>ComponentReflectionTest.test_get_temp_table_unique_constraintsŸ  s]   € ô �zÓ"ˆØ×#Ñ#Ó%ˆØ×/Ñ/°Ó5ˆ	Ø�l‰l ˆlÓ% t¨T lÑ3ˆØ×Ñ˜ C¨×)BÑ)BÕCr@   c                 óF  — t        |«      }| j                  «       }|j                  |«      }|D ]  }|j                  dd «       Œ ddgddœg}t        j
                  j                  j                  rg |d   d<   t        |D �cg c]  }|d   dk(  sŒ|‘Œ c}|«       y c c}w )	Nrî  Fr¸   r�  )ra  rÊ   rk   r   rï  rk   )	r   rh   r*  rÄ  r   rR   Úindex_reflects_included_columnsr7   r   )r|   r’   r…   rt   r‚  ÚindÚexpectedr¼   s           r>   Útest_get_temp_table_indexesz3ComponentReflectionTest.test_get_temp_table_indexes¨  s©   € ä�zÓ"ˆØ×)Ñ)Ó+ˆ
Ø×"Ñ" :Ó.ˆÛˆCØ�G‰GÐ% tÕ,ð ð ¨u¨g¸}ÑMð
ˆô ×Ñ×;Ñ;×CÒCØ-/ˆH�Q‰KÐ)Ñ*ÜÙ#ÓD™G�S s¨6¡{°mÓ'CŠS˜GÑDØõ	
ùÚDs   ÂBÂBc                 ó,  — |rt         j                  }nd }t        ddgdœdg d¢dœdg d¢dœdd	d
gdœddgdœddgdœgt        j                  d«      ¬«      }t        d|t        dt        j                  d«      «      t        dt        j                  d«      «      t        dt        j                  «      t        d	t        j                  d«      «      t        d
t        j                  d«      «      |¬«      }|D ],  }|j                  t        j                  |d   d|d   iŽ«       Œ. |j                  |«       t        |«      }t        |j                  d|¬«      t        j                  d«      ¬«      }	t        «       }
t!        t#        |«      t#        |	«      «       t%        ||	«      D ]d  \  }}|j'                  dd «      }|r|
j)                  |«       t!        |j'                  dd «      d «       |j'                  dd «       t!        ||«       Œf t+        «       }t        d|||¬«      }	|	j,                  D �ch c]  }|j.                  ’Œ }}|	j0                  D �ch c](  }t3        |t        j                  «      r|j.                  ’Œ* c}j5                  dg«      }|j7                  |«      rJ ‚|
r t!        |
|«       t!        |t        «       «       | j8                  j:                  j.                  }t!        |j                  ||¬«      g «       y c c}w c c}w )NÚunique_ar¯   )rk   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¦   rk   ©rÑ   Útesttblrh  r`  rP   rÊ   rþ  rí   rî  )rÙ   rQ   )r   rT   r7  ÚoperatorÚ
itemgetterr   r   rn   r   r   Úappend_constraintr  r‚   r   r-  r—  r   rT  rS  rÄ  r¬  r   r‚  rk   Úconstraintsr  Ú
differencer\  r¹   ru  )r|   rZ   r’   r3  rQ   Úuniquesrb  r  r…   r‰  Únames_that_duplicate_indexrø  ÚreflÚdupeÚreflected_metadatar¼   Ú	idx_namesÚuqÚuq_namesrP  s                       r>   r.  z3ComponentReflectionTest.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 yÖ1‰JˆD�$ð —8‘8Ð.°Ó5ˆDÙØ*×.Ñ.¨tÔ4Ü�—‘˜ DÓ)¨4Ô0à�H‰HÐ&¨Ô-Ü��d�Oð 2ô &›ZÐÜØØØ$Øô	
ˆ	ð *3×):Ò):Ó;Ñ): #�S—X“XÐ):ˆ	Ð;ð  ×+Ò+ó
á+�Ü˜"œb×1Ñ1Ô2ð �G‹GØ+ñ
÷ ‰*�nÐ%Ó
&ð	 	ð ×)Ñ)¨(Ô3Ð3Ð3Ù%ÜÐ*¨IÔ6Ü�œ#›%Ô à—‘×+Ñ+×0Ñ0ˆÜˆD×'Ñ'¨°vÐ'Ó>ÀÕCùò <ùò
s   È6LÉ-Lc                 ó    — |rt         j                  }nd }t        |«      }dD ])  }|j                  ||¬«      }t	        t        |«      «       Œ+ y )NrR  rP   )r   rT   r   r  r*   Úbool)r|   r’   r3  rQ   r…   Úviewr²  s          r>   r   z0ComponentReflectionTest.test_get_view_definition  sM   € ñ
 Ü×'Ñ'‰FàˆFÜ�zÓ"ˆÛDˆDØ×(Ñ(¨°fÐ(Ó=ˆAÜ”D˜“GÕñ Er@   c                 óî   — t        |«      }t        t        «      5  |j                  d«       d d d «       t        t        «      5  |j                  d«       d d d «       y # 1 sw Y   Œ3xY w# 1 sw Y   y xY w)NÚview_does_not_existrL  )r   r   r!   r  r‘   s      r>   Ú'test_get_view_definition_does_not_existz?ComponentReflectionTest.test_get_view_definition_does_not_exist#  sX   € ä�zÓ"ˆÜÔ+Õ,Ø×$Ñ$Ð%:Ô;÷ -äÔ+Õ,Ø×$Ñ$ WÔ-÷ -Ð,÷ -Ð,úç,Ð,ús   ›AÁA+ÁA(Á+A4c                 ó°   — t        |«      }dD ]A  \  }}|j                  |«      }|D �ci c]  }|d   |“Œ
 c}|   }|j                  dd«      rŒAJ ‚ yc c}w )aˆ  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.

        ))rL  rM  )re  r\  )rZ  r[  rk   rÀ  TN)r   rç   Úget)r|   r’   r…   r„  ÚcnamerÐ  r¦   Úid_s           r>   Útest_autoincrement_colz.ComponentReflectionTest.test_autoincrement_col+  sj   € ô �zÓ"ˆó
‰LˆE�5ð
 ×#Ñ# EÓ*ˆDÙ)-Ó.© A�1�V‘9˜a‘<¨Ñ.¨uÑ5ˆCØ—7‘7˜?¨DÕ1Ð1Ð1ñ
ùò /s   ©Ac                 óÆ  — t        t        j                  «      }|rt        j                  nd }t        j
                  j                  j                  rY|j                  d|¬«      }t        t        |t        «      «       |j                  d|¬«      }t        t        |t        «      «       y t        t        «      5  |j                  d|¬«       d d d «       y # 1 sw Y   y xY w)NrL  rP   ru  )r   r   r<   rT   r   rR   r  r7   r  r*   r  r:   r   r  )r|   r3  r…   rQ   r  s        r>   r  z.ComponentReflectionTest.test_get_table_optionsD  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                 ó¼  — t        t        j                  «      }t        j                  j
                  j                  rf|rt        j                  nd }|j                  |¬«      }|j                  |¬«      D �ci c]  }||f|j                  ||¬«      “Œ }}t        ||«       y t        t        «      5  |j                  «        d d d «       y c c}w # 1 sw Y   y xY w)NrP   )r   r   r<   r   rR   r  r7   rT   Úget_multi_table_optionsr6  r  r   r   r  )r|   r3  r…   rQ   r  rb  rO  s          r>   Útest_multi_get_table_optionsz4ComponentReflectionTest.test_multi_get_table_optionsU  sÆ   € ä”v—y‘yÓ!ˆÜ×Ñ×1Ñ1×9Ò9Ù+5”V×'Ò'¸4ˆFØ×.Ñ.°fÐ.Ó=ˆCð "×1Ñ1¸Ð1Ô@óá@�Eð ˜� ×!7Ñ!7¸ÀfÐ!7Ó!MÑMØ@ð ð ô ��S�MäÔ2Õ3Ø×,Ñ,Ô.÷ 4Ð3ùò÷ 4Ð3ús   Á8CÂ3CÃCc                 ó   ‡— ˆfd„}|S )Nc                 ó²  •— t        ‰«      } ||d«       ||dœ}| r | «       } g }t        j                  |v r|j                  g d¢«       t        j                  |v r|j                  ddg«       t        j
                  |v r|j                  ddg«       | r| |d<   |r||d<    || |||j                  d«      ¬	«      }	|g}
|t        j                  k(  r2|j                  «       }|j                  d
«       |
j                  |«       |t        j                  k(  r2|j                  «       }|j                  d«       |
j                  |«       t        ‰«      |
|	fS )Nre  )r3   r©   )rl  rL  údoes-not-existr¶  r·  rµ  rQ   rB  )rQ   r3   r©   rB  r3   r©   )r   r   r>  rù  r?  r@  r­  r    r;  ÚcopyrÄ  Úappend)rQ   r3   r©   r:  Úsingle_reflect_fnÚ
exp_methodr…   rs   rB  rO  ÚkwsÚnkwr’   s               €r>   Úprovide_fixturez>ComponentReflectionTest.get_multi_exp.<locals>.provide_fixtureg  sK  ø€ ô ˜:Ó&ˆ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”ä˜:Ó&¨¨SÐ0Ð0r@   rE   )r|   r’   r¾  s    ` r>   Úget_multi_expz%ComponentReflectionTest.get_multi_expe  s   ø€ ô,	1ð\ Ðr@   c                 óÀ   —  |||||t         j                  | j                  «      \  }}}|D ]0  }	|j                  «         |j                  di |	¤Ž}
t        |
|«       Œ2 y ©NrE   )r   r  r¹  rƒ   r³  r   ©r|   r¿  rQ   r3   r©   r:  r…   r¼  rO  rs   Úresults              r>   Ú#test_multi_get_table_options_tablesz;ComponentReflectionTest.test_multi_get_table_options_tables—  si   € ñ
 'ØØØØÜ×'Ñ'Ø×Ñó
‰ˆˆc�3ó ˆBØ×ÑÔØ1�T×1Ñ1Ñ7°BÑ7ˆFÜ�˜Õñ r@   c                 ó¼   —  |||||t         j                  | j                  «      \  }}}|D ].  }	|j                  «        t	         |j
                  di |	¤Ž|«       Œ0 y rÁ  )r   r0  r½  rƒ   r   Úget_multi_table_comment)
r|   r¿  rQ   r3   r©   r:  r…   r¼  rO  rs   s
             r>   Útest_get_multi_table_commentz4ComponentReflectionTest.test_get_multi_table_comment©  se   € ñ
 'ØØØØÜ×'Ñ'Ø×Ñó
‰ˆˆc�3ó ˆBØ×ÑÔÜÐ,�×,Ñ,Ñ2¨rÑ2°CÕ8ñ r@   c           	      óü   — dt         fd„}t        |t        «      r6t        |j	                  «       D ��ci c]  \  }} ||«      |“Œ c}}||«       y t        |D �cg c]
  } ||«      ‘Œ c}||«       y c c}}w c c}w )Nr»  c                 óL   — t        j                  dd| «      j                  «       S )Nz['\" ]rJ  )ÚreÚsubr  )r»  s    r>   Ú_cleanz:ComponentReflectionTest._check_expressions.<locals>._clean»  s   € Ü—6‘6˜) R¨Ó.×4Ñ4Ó6Ð6r@   )r  r  r:   r   r®  )r|   rÃ  rO  Úerr_msgrÌ  Úer²  s          r>   Ú_check_expressionsz*ComponentReflectionTest._check_expressionsº  sn   € ð	7œó 	7ô �cœ4Ô Ü¨&¯,©,¬.Ô9©.¡$ ! Q‘˜“˜A‘¨.Ò9¸3ÀÕHä¡FÓ+¡F˜q‘˜• FÑ+¨S°'Õ:ùó :ùâ+s   ³A3
ÁA9c                 óT  — |€t        |||«       y t        t        |«      t        |«      |«       t        ||«      D ]j  \  }}t        |«      t        |«      z  D ]K  }||v s
||v sŒ||v sŒ|› d|› d|› �}|dv r| j	                  ||   ||   |«       Œ9t        ||   ||   |«       ŒM Œl y )Nz - )rð  rë  )r   rT  rS  r—  rÏ  )	r|   rÃ  rO  Úreq_keysÚmsgÚrrÎ  r°   rÍ  s	            r>   rq  z#ComponentReflectionTest._check_listÃ  s³   € ØÐÜ�˜˜SÕ!ä”�F“œS ›X sÔ+Ü˜F CÖ(‘��1Ü˜Q›¤# a£&œ�AØ˜H‘}¨¨aª°A¸²FØ%( E¨¨Q¨C¨s°1°#Ð"6˜ØÐ AÑAØ ×3Ñ3°A°a±D¸!¸A¹$ÀÕHä  !¡ a¨¡d¨GÕ4ñ )ñ )r@   c                 óÒ   — t        t        |j                  «       «      t        |j                  «       «      «       |D ](  }||   ||   }}|r|g|g}}| j                  ||||«       Œ* y r•   )r   r—  Úkeysrq  )r|   rÃ  rO  rÑ  Ú
make_listsr°   rÓ  rÎ  s           r>   Ú_check_table_dictz)ComponentReflectionTest._check_table_dictÑ  s`   € ÜŒC�—‘“Ó¤ C§H¡H£J£Ô0ÛˆAØ˜!‘9˜c !™fˆqˆAÙØ�s˜Q˜C�1�Ø×Ñ˜Q  8¨QÕ/ñ	 r@   c                 óâ   —  |||||t         j                  | j                  «      \  }}}|D ]A  }	|j                  «         |j                  di |	¤Ž}
| j                  |
|| j                  «       ŒC y rÁ  )r   rç   rÉ  rƒ   Úget_multi_columnsr×  rË  rÂ  s              r>   Útest_get_multi_columnsz.ComponentReflectionTest.test_get_multi_columnsÙ  sw   € ñ 'ØØØØÜ×!Ñ!Ø×Ñó
‰ˆˆc�3ó ˆBØ×ÑÔØ+�T×+Ñ+Ñ1¨bÑ1ˆFØ×"Ñ" 6¨3°×0JÑ0JÕKñ r@   c                 óæ   —  |||||t         j                  | j                  «      \  }}}|D ]C  }	|j                  «         |j                  di |	¤Ž}
| j                  |
|| j                  d¬«       ŒE y )NT)rÖ  rE   )r   r$  rÔ  rƒ   Úget_multi_pk_constraintr×  rÖ  rÂ  s              r>   Útest_get_multi_pk_constraintz4ComponentReflectionTest.test_get_multi_pk_constraintë  s   € ñ
 'ØØØØÜ×'Ñ'Ø�L‰Ló
‰ˆˆc�3ó ˆBØ×ÑÔØ1�T×1Ñ1Ñ7°BÑ7ˆFØ×"Ñ"Ø˜˜T×3Ñ3Àð #õ ñ r@   c                 óò   — t         j                  j                  j                  sS||fD ]K  }|j	                  «       D ]6  }t        |«      dkD  sŒt        d„ |D «       «      sŒ%|j                  |¬«       Œ8 ŒM y y )NrÚ   c              3   ób   K  — | ]'  }|j                  d «      dt        j                  fv –— Œ) y­w)rk   N)r­  r+   r=  )Ú.0r²  s     r>   Ú	<genexpr>z7ComponentReflectionTest._adjust_sort.<locals>.<genexpr>	  s*   è ø€ ð ,ÙCF¸a˜Ÿ™˜f›¨$´·±Ð)9Ô9Á3ùs   ‚-/r—  )r   rR   rw  r7   r¯  rT  ÚanyÚsort)r|   rÃ  rŽ  rÑ   ÚobjrÓ  s         r>   Ú_adjust_sortz$ComponentReflectionTest._adjust_sortÿ  sk   € Ü×Ñ×<Ñ<×DÒDØ Ó)�ØŸ:™:ž<�CÜ˜3“x !“|¬ñ ,ÙCFó,õ )ð Ÿ™ S˜Õ)ñ	 (ñ *ð Er@   c                 ó
  —  |||||t         j                  | j                  «      \  }}}|D ]U  }	|j                  «         |j                  di |	¤Ž}
| j                  |
|d„ «       | j                  |
|| j                  «       ŒW y )Nc                 ó   — t        | d   «      S )NrÎ  ©Útuple©Úds    r>   r±   zEComponentReflectionTest.test_get_multi_foreign_keys.<locals>.<lambda>	  s   € ¤u¨QÐ/DÑ-EÔ'Fr@   rE   )r   r'  rç  rƒ   Úget_multi_foreign_keysrå  r×  ré  rÂ  s              r>   Útest_get_multi_foreign_keysz3ComponentReflectionTest.test_get_multi_foreign_keys	  s�   € ñ
 'ØØØØÜ×&Ñ&Ø�L‰Ló
‰ˆˆc�3ó ˆBØ×ÑÔØ0�T×0Ñ0Ñ6°2Ñ6ˆFØ×ÑØ˜ÑFôð ×"Ñ" 6¨3°×0FÑ0FÕGñ r@   c                 óâ   —  |||||t         j                  | j                  «      \  }}}|D ]A  }	|j                  «         |j                  di |	¤Ž}
| j                  |
|| j                  «       ŒC y rÁ  )r   r*  rú  rƒ   Úget_multi_indexesr×  rü  rÂ  s              r>   Útest_get_multi_indexesz.ComponentReflectionTest.test_get_multi_indexes	  sw   € ñ
 'ØØØØÜ×!Ñ!Ø×Ñó
‰ˆˆc�3ó ˆBØ×ÑÔØ+�T×+Ñ+Ñ1¨bÑ1ˆFØ×"Ñ" 6¨3°×0IÑ0IÕJñ r@   c                 ó
  —  |||||t         j                  | j                  «      \  }}}|D ]U  }	|j                  «         |j                  di |	¤Ž}
| j                  |
|d„ «       | j                  |
|| j                  «       ŒW y )Nc                 ó   — t        | d   «      S )NrÊ   rè  rê  s    r>   r±   zKComponentReflectionTest.test_get_multi_unique_constraints.<locals>.<lambda>?	  s   € ´U¸1¸^Ñ;LÔ5Mr@   rE   )r   r-  r  rƒ   Úget_multi_unique_constraintsrå  r×  r  rÂ  s              r>   Ú!test_get_multi_unique_constraintsz9ComponentReflectionTest.test_get_multi_unique_constraints/	  sˆ   € ñ
 'ØØØØÜ×,Ñ,Ø�L‰Ló
‰ˆˆc�3ó ˆBØ×ÑÔØ6�T×6Ñ6Ñ<¸Ñ<ˆFØ×Ñ˜f cÑ+MÔNØ×"Ñ" 6¨3°×0NÑ0NÕOñ	 r@   c                 ó
  —  |||||t         j                  | j                  «      \  }}}|D ]U  }	|j                  «         |j                  di |	¤Ž}
| j                  |
|d„ «       | j                  |
|| j                  «       ŒW y )Nc                 ó   — t        | d   «      S ©Nr  rè  rê  s    r>   r±   zJComponentReflectionTest.test_get_multi_check_constraints.<locals>.<lambda>R	  s   € ´U¸1¸Y¹<Ô5Hr@   rE   )r   r3  r  rƒ   Úget_multi_check_constraintsrå  r×  r  rÂ  s              r>   Ú test_get_multi_check_constraintsz8ComponentReflectionTest.test_get_multi_check_constraintsB	  sˆ   € ñ
 'ØØØØÜ×+Ñ+Ø�L‰Ló
‰ˆˆc�3ó ˆBØ×ÑÔØ5�T×5Ñ5Ñ;¸Ñ;ˆFØ×Ñ˜f cÑ+HÔIØ×"Ñ" 6¨3°×0FÑ0FÕGñ	 r@   r  rç   r$  r'  r*  r-  r3  r0  Úmethodc                 óŠ   — t        |«      }t        ||«      }t        t        «      5   |d«       d d d «       y # 1 sw Y   y xY w)NÚtable_does_not_exists)r   Úgetattrr   r!   )r|   rú  r’   r…   r»   s        r>   Útest_not_existing_tablez/ComponentReflectionTest.test_not_existing_tableU	  s8   € ô0 �zÓ"ˆÜ�t˜VÓ$ˆÜÔ+Õ,ÙÐ(Ô)÷ -×,Ñ,ús	   §	9¹Ac           	      óH  ‡— t         j                  Šˆfd„}t        j                  j	                  t         d|«      5  t        t        d«      5  t        |«      j                  t        dt        «       «      d «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nc                  óT   •— |j                  di «      }t        d«      |d<    ‰| i |¤ŽS )NÚunreflectableÚerr)NÚ
some_table)Ú
setdefaultr"   )r¯   r°   ÚurÚmcs      €r>   Úpatchedz;ComponentReflectionTest.test_unreflectable.<locals>.patchedu	  s1   ø€ Ø—‘˜o¨rÓ2ˆBÜ'>¸uÓ'EˆBÐ#Ñ$Ù�q�;˜A‘;Ðr@   rÙ  r  r  )r   rÙ  r+   ÚpatchÚobjectr	   r"   r   Úreflect_tabler   r   )r|   r’   r  r  s      @r>   Útest_unreflectablez*ComponentReflectionTest.test_unreflectabler	  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                 óœ  — t        «       }|rt        j                  nd }|j                  |||d¬«       t	        |«      }|j                  |«      }|r)||j                  |«      z  }	 ||j                  |«      z  }|r|D �cg c]	  }|› d|› �‘Œ }}t        t        |j                  «      t        |«      «       y # t        $ r Y ŒJw xY wc c}w )NF)rQ   rž   Úresolve_fksrI  )r   r   rT   Úreflectr   r6  r>  r?  r  r   r7  r¹   )	r|   r’   r3  rž   ÚmrQ   r…   r¹   r:  s	            r>   Útest_metadataz%ComponentReflectionTest.test_metadata€	  sÌ   € ô
 ‹JˆÙ'1”×#Ò#°tˆØ	�	‰	�* V°5Àeˆ	ÔLä�zÓ"ˆØ×%Ñ% fÓ-ˆÙØ�d×)Ñ)¨&Ó1Ñ1ˆFðØ˜$×:Ñ:¸6ÓBÑB�ñ Ù/5Ó6©v¨!˜˜  ! ’o¨vˆFÐ6ÜŒF�1—8‘8Óœf V›nÕ-øô	 'ò Ùðüò 7s   Á'B: ÂC	Â:	CÃCc           
      óT  — t        d|t        dt        d¬«      t        dt        d¬«      d¬«       |j                  |«       t	        |«      }|j                  d«      }t        |ddi«       |j                  d«      }|D �ci c]  }|d	   |d
   “Œ }}dddœ}t        ||«       y c c}w )NÚunicode_commentsÚunicodeu   Ã©è©¦è›‡áºŸÎ©rì   Úemojiu	   â˜�ï¸�âœ¨u   è©¦è›‡áºŸÎ©âœ¨r»  rk   rí   )r  r  ©r   r   r   rÝ   r   r0  r   rç   )	r|   r’   rZ   r…   ÚtcrÐ  r¦   ÚvaluerO  s	            r>   Útest_comments_unicodez-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�3�ùò 8s   ÂB%c           	      ó  — t        d|t        dt        d¬«      d¬«       |j                  |«       t	        |«      }|j                  d«      }t        |ddi«       |j                  d«      d   }t        |d   |d	   iddi«       y )
Nr  r  u&   ðŸ��ðŸ§™ðŸ��ðŸ§™â€�â™‚ï¸�ðŸ§™â€�â™€ï¸�rì   u&   ðŸŽ©ðŸ�°ðŸ�‘ðŸ¤·â€�â™€ï¸�ðŸ¤·â€�â™‚ï¸�r»  r   rk   rí   r  )r|   r’   rZ   r…   r  r¦   s         r>   Útest_comments_unicode_fullz2ComponentReflectionTest.test_comments_unicode_fullª	  sŽ   € äØØÜ�7œGÐ-UÔVØ<õ		
ð 	×Ñ˜JÔ'ä�zÓ"ˆØ×#Ñ#Ð$6Ó7ˆÜˆB�ÐAÐBÔCØ×ÑÐ/Ó0°Ñ3ˆÜˆQˆv‰Y˜˜)™Ð%¨Ð1YÐ'ZÕ[r@   r•   r,   )NF)mrA   rB   rC   Úrun_insertsÚrun_deletesr�   rD   r[   rG  rh   rX   rV   r   r£  r³  r    r=  r   r¹  r½  rÉ  ÚpropertyrË  rÔ  rÖ  rç  ré  rú  rü  r  r  r  r  r   rR   Úschema_reflectionr  r  r$  r&  Úschema_create_deleter*  r.  r0  rÃ   rñ   rS   r<  r@  r­  rD  rU   rq   rG  ró   rK  rM  rI  r"  rö   rk  rm  r  ro  Ú!primary_key_constraint_reflectionr%  r(  r†  r€  r¡   r+  rˆ  r‰  r‡  r6  rŠ  Útemp_table_reflect_indexesr�  r.  r   r«  Útable_reflectionr°  r  r´  rþ   r¿  r  rC  rÄ  rÇ  rÏ  rq  r×  rÚ  rÝ  rå  rí  rð  rô  r7  rù  rþ  r  rž   r  r  Úcomment_reflection_full_unicoder  rE   r@   r>   rE  rE  o  s7  „ Ø $Ð$€K�+à€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ð €W×ÑØØ	˜×(Ñ(×JÑJÐKØôð
 €W×ÑØ	ˆw×Ñ×'Ñ'Ð(¨%¸,ôñ!-óóð!-ðF €W×ÑØ	ˆw×Ñ×'Ñ'Ð(¨%¸,ôñ-óð-ð ×Ñ×&Ñ&ñDó 'ðDð
 ×Ñ×%Ñ%Ø×Ñ×%Ñ%ñ6ó &ó &ð6ð
 ×Ñ×(Ñ(ñ,ó )ð,ð ×Ñ×(Ñ(Ø×Ñ×ÑñHó ó )ðHó
ð0 €W×ÑØØ	��g×&Ñ&×.Ñ.Ð/Ø	ˆu�g×&Ñ&×6Ñ6Ð7àØØ×Ñ×$Ñ$ w×'7Ñ'7×'GÑ'GÑGð	
ð
 (ô
ñ<6ó
ð<6ðB ×Ñ×+Ñ+ñ	
ó ,ð	
ð ×Ñ×+Ñ+ñ+ó ,ð+ð ×Ñ×+Ñ+Ø×Ñ×,Ñ,Ø×Ñ×%Ñ%ñBó &ó -ó ,ðBð
 €W×ÑØ�4˜×)Ñ)×1Ñ1Ð2¸\ôð ×Ñ×7Ñ7ñ
ó 8óð
ð: €W×ÑØ�4˜×)Ñ)×1Ñ1Ð2¸\ôð ×Ñ×7Ñ7ñ$>ó 8óð$>ðL ×Ñ×0Ñ0Ø×Ñ×Ññ"8ó ó 1ð"8ðH €W×ÑØ�4˜×)Ñ)×1Ñ1Ð2¸\ôð ×Ñ×&Ñ&ñ
ó 'óð
ð, €W×ÑØ3Ø/Øôð
 ×Ñ×&Ñ&Ø×Ñ×*Ñ*Ø×Ñ×2Ñ2ñ-ó 3ó +ó 'óð-ð ×Ñ×+Ñ+Ø×Ñ×2Ñ2ñDó 3ó ,ðDð ×Ñ×0Ñ0ñ
ó 1ð
ð  €W×ÑØ	ˆw×Ñ×'Ñ'Ð(¨(¸\ôð ×Ñ×2Ñ2ñVDó 3óðVDðp ×Ñ×%Ñ%Ø€W×ÑØ�4˜×)Ñ)×1Ñ1Ð2¸\ôñóó &ðð ×Ñ×%Ñ%ñ.ó &ð.ð ×Ñ×&Ñ&ñ2ó 'ð2ð0 €W×ÑØ	ˆw×Ñ×'Ñ'Ð(¨(¸\ôñ?óð?ð €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ð" €W×ÑØ	˜g×.Ñ.×DÑDÐEØàØ×Ñ×>Ñ>ð	
ð
 Ø×Ñ×>Ñ>ð	
ð 
˜×(Ñ(×9Ñ9Ð:à$Ø×Ñ×9Ñ9ð	
ð
 $Ø×Ñ×8Ñ8ð	
ð 
˜g×.Ñ.×AÑAÐBØô+ñ.*ó/ð.*òð €W×Ñ˜$ °Ô=Ø€W×ÑØ	ˆw×Ñ×%Ñ%Ð&¨¸ôñ.óó >ð.ð" ×Ñ×(Ñ(ñó )ðð( ×Ñ×5Ñ5ñ\ó 6ñ\r@   rE  c                   óÞ   — e Zd ZdZdZej                  d„ «       Zej                  d„ «       Zd„ Z	d„ Z
d„ Zej                  j                  d„ «       Zej                  j                  d	„ «       Zy
)ÚTableNoColumnsTest)Úreflect_tables_no_columnsTc                 ó>   — t        d|«       |j                  |«       y ©Nr¼  )r   rÝ   ©r|   r’   rZ   s      r>   Útable_no_columnsz#TableNoColumnsTest.table_no_columnsÀ	  s   € äˆg�xÔ Ø×Ñ˜JÕ'r@   c                 ó¾   — t        d|«       t        j                  |dt        d«      «       t        j                  |dt        d«      «       |j	                  |«       y )Nr¼  r]   z*CREATE VIEW empty_v AS SELECT * FROM emptyr^   zDROP VIEW IF EXISTS empty_v)r   r   r`   r#   rÝ   r)  s      r>   Úview_no_columnsz"TableNoColumnsTest.view_no_columnsÅ	  sR   € äˆg�xÔ Ü�‰ØØÜÐ<Ó=ô	
ô 	�‰Ø�m¤SÐ)FÓ%Gô	
ð 	×Ñ˜JÕ'r@   c                 ón   — t        dt        «       |¬«      }t        t        |j                  «      g «       y )Nr¼  rØ   ©r   r   r   rÏ  r¦   )r|   r’   r*  Út2s       r>   Útest_reflect_table_no_columnsz0TableNoColumnsTest.test_reflect_table_no_columnsÕ	  s$   € Ü�7œH›J°jÔAˆÜŒD�—‘‹J˜Õr@   c                 óŒ   — t        |«      }t        |j                  d«      g «       |j                  «       }t        |dg i«       y )Nr¼  r(  )r   r   rç   rÙ  )r|   r’   r*  r…   Úmultis        r>   Ú!test_get_columns_table_no_columnsz4TableNoColumnsTest.test_get_columns_table_no_columnsÙ	  s>   € Ü�zÓ"ˆÜˆD×Ñ˜WÓ% rÔ*Ø×&Ñ&Ó(ˆÜˆE�O RÐ(Õ)r@   c                 óˆ   — t        «       }|j                  |«       t        |j                  «      j	                  dg«      sJ ‚y r(  )r   r  r—  r¹   r\  )r|   r’   r*  r  s       r>   Ú"test_reflect_incl_table_no_columnsz5TableNoColumnsTest.test_reflect_incl_table_no_columnsß	  s3   € Ü‹JˆØ	�	‰	�*ÔÜ�1—8‘8‹}×)Ñ)¨7¨)Ô4Ð4Ñ4r@   c                 ón   — t        dt        «       |¬«      }t        t        |j                  «      g «       y )NÚempty_vrØ   r.  )r|   r’   r,  r/  s       r>   Útest_reflect_view_no_columnsz/TableNoColumnsTest.test_reflect_view_no_columnsä	  s$   € ä�9œh›j¸
ÔCˆÜŒD�—‘‹J˜Õr@   c                 ó¬   — t        |«      }t        |j                  d«      g «       |j                  t        j
                  ¬«      }t        |dg i«       y )Nr7  )r©   )Nr7  )r   r   rç   rÙ  r   r?  )r|   r’   r,  r…   r2  s        r>   Ú test_get_columns_view_no_columnsz3TableNoColumnsTest.test_get_columns_view_no_columnsé	  sH   € ä�zÓ"ˆÜˆD×Ñ˜YÓ'¨Ô,Ø×&Ñ&¬J¯O©OÐ&Ó<ˆÜˆEÐ% rÐ*Õ+r@   N)rA   rB   rC   rÂ   r�   r   rþ   r*  r,  r0  r3  r5  rR   rž   r8  r:  rE   r@   r>   r%  r%  ¼	  s‰   „ Ø1€LØ€Kà‡_�_ñ(ó ð(ð ‡_�_ñ(ó ð(òò*ò5ð
 ×Ñ×Ññó ðð ×Ñ×Ññ,ó ñ,r@   r%  c                   ó(  — e Zd ZdZ ej
                  ddg¬«      d„ «       Z ej
                  «       d„ «       Zd„ Zej                  j                  d„ «       Zej                  j                   ej                  dd	d
d¬«      d„ «       «       Zej                  j                   ej                  ddd
d¬«      d„ «       «       Zej                  j                  d„ «       Zej                  j"                  d„ «       Zej                  j&                  d„ «       Zd„ Zej                  j,                  d„ «       Zej                  j,                   ej                  ej2                  ej4                  ej6                  ej8                  ej                  j:                  fej<                  ej                  j:                  fd¬«      d„ «       «       Zej                  j,                  d„ «       Z  ej                  d
dd
ej                  jB                  fd
d
dej                  jD                  fi d
dej                  jD                  fi dd
ej                  jF                  fd
d
dej                  jH                  fd
dd
ej                  jJ                  fd¬«      d„ «       Z& ej                  e' e(jR                  d«      d fe'dd fe* e(jV                  «       d!fe' e(jR                  d"«      d#ej                  jX                  fe' e(jR                  d$«      d%ej                  jX                  fe- e.j^                  «       d&fe' e(j`                  d'«       e(j`                  d(«      z   d#ej                  jX                  fd)¬«      ej                  jb                  d*„ «       «       Z2y
)+ÚComponentReflectionTestExtraTF)Úparamsc                 ó<   — |j                   rt        j                  S y r•   )Úparamr   rT   )r|   Úrequests     r>   Úuse_schema_fixturez/ComponentReflectionTestExtra.use_schema_fixtureô	  s   € à�=Š=Ü×%Ñ%Ð%àr@   c                 ó@   ‡‡‡— t         j                  ˆˆˆfd„«       }|S )Nc              3   óN   •K  — ‰t        ‰«      f–— ‰j                  ‰«       y ­wr•   )r   rÝ   )rÍ   r’   rZ   rA  s    €€€r>   Úgoz:ComponentReflectionTestExtra.inspect_for_table.<locals>.goý	  s%   øè ø€ à$¤g¨jÓ&9Ð9Ò9à×Ñ 
Õ+ùs   ƒ"%)Ú
contextlibÚcontextmanager)r|   rZ   r’   rA  rD  s    ``` r>   Úinspect_for_tablez.ComponentReflectionTestExtra.inspect_for_tableû	  s"   ú€ ä	×	"Ñ	"õ	,ó 
#ð	,ð
 ˆ	r@   c           
      óž   — d„ }t        |D �cg c]  }|d    ||d   «      dœ‘Œ c}d„ ¬«      }t        |d„ ¬«      }t        ||«       y c c}w )Nc                 ó†   — dj                  t        j                  d| j                  «       t        j                  «      «      S )NÚ zand|\d|=|a|b|c|or|<|>)ÚjoinrÊ  Úfindallr  ÚI)r  s    r>   Ú	normalizez5ComponentReflectionTestExtra.ck_eq.<locals>.normalize	
  s.   € Ø—8‘8Ü—
‘
Ð3°W·]±]³_ÄbÇdÁdÓKóð r@   rk   r  ©rk   r  c                 ó   — | d   S r÷  rE   ©Úitems    r>   r±   z4ComponentReflectionTestExtra.ck_eq.<locals>.<lambda>
  ó   € ˜d 9šor@   r—  c                 ó   — | d   S r÷  rE   rQ  s    r>   r±   z4ComponentReflectionTestExtra.ck_eq.<locals>.<lambda>
  rS  r@   )r7  r   )r|   r‰  rŽ  rN  rR  s        r>   Úck_eqz"ComponentReflectionTestExtra.ck_eq
  sj   € ò	ô
 ñ &óá%�Dð ˜f™±)¸DÀ¹OÓ2LÓMØ%ññ /ô
ˆ	ô ØÙ.ô
ˆô 	ˆI�xÕ ùòs   �A
c                 óâ   —  |d«      5 \  }}t        d|t        dt        j                  d«      «      |¬«       d d d «       | j	                  j                  d¬«      g «       y # 1 sw Y   Œ-xY w)Nru  rM   rh  rP   )r   r   rn   r   rU  r3  )r|   rZ   rG  rQ   r¨   s        r>   Ú#test_check_constraint_no_constraintz@ComponentReflectionTestExtra.test_check_constraint_no_constraint
  sh   € áÐ/Ô0Ñ4G°V¸YÜØ ØÜ�vœrŸy™y¨›}Ó-Øõ	÷ 1ð 	�
‰
Ø×+Ñ+Ð,<ÀVÐ+ÓLØõ	
÷ 1Ð0ús   ‰0A%Á%A.Ú	my_inlineÚMyInlineNÚconstraint_namerª   c                 óz  —  |d«      5 \  }}t        d|t        dt        «       d¬«      t        dt        «       t        j                  d|¬«      «      t        dt        d	«      «      |¬
«       d d d «       j                  d¬
«      }| j                  ||xs t        j                  ddœg«       y # 1 sw Y   ŒExY w)NÚsa_ccrJ   TrK   r¯   úa > 1 AND a < 5r  rM   rN   rP   úa > 1 and a < 5rO  )
r   r   r   rn   r  r   r3  rU  r+   r=  ©r|   rZ   rG  rZ  rQ   r¨   r‰  s          r>   Útest_check_constraint_inlinez9ComponentReflectionTestExtra.test_check_constraint_inline+
  s´   € ñ ˜wÔ'Ñ+>¨F°IÜØØÜ�tœW›Y°DÔ9ÜØÜ“IÜ×&Ñ&Ø)°ôóô �vœv b›zÓ*Øõ÷ (ð  ×3Ñ3°GÀFÐ3ÓKˆ	à�
‰
Øð ,Ò7¬t¯x©xØ0ñðõ	
÷% (Ð'ús   ‰A$B1Â1B:Úmy_ck_constÚ	MyCkConstc           
      ó(  —  |d«      5 \  }}t        d|t        dt        «       «      t        j                  d|¬«      |¬«       d d d «       j                  d¬«      }| j                  ||xs t        j                  ddœg«       y # 1 sw Y   ŒExY w)Nr\  r¯   za = 1 OR (a > 2 AND a < 5)r  rP   za = 1 or a > 2 and a < 5rO  )	r   r   r   rn   r  r3  rU  r+   r=  r_  s          r>   Ú test_check_constraint_standalonez=ComponentReflectionTestExtra.test_check_constraint_standaloneO
  s”   € ñ ˜wÔ'Ñ+>¨F°IÜØØÜ�sœG›IÓ&Ü×"Ñ"Ø0°ôð õ÷ (ð ×3Ñ3°GÀFÐ3ÓKˆ	à�
‰
Øð ,Ò7¬t¯x©xØ9ñðõ	
÷ (Ð'ús   ‰;BÂBc                 óz  —  |d«      5 \  }}t        d|t        dt        «       d¬«      t        dt        «       t        j                  d«      «      t        dt        «       t        j                  dd	¬
«      «      t        dt        «       «      t        dt        d«      «      t        j                  dd¬
«      t        j                  dd¬
«      t        j                  dd¬
«      |¬«       d d d «       j                  d¬«      }| j                  |dddœd	ddœt        j                  ddœg«       y # 1 sw Y   ŒIxY w)Nr\  rJ   TrK   r¯   r]  r“  zb > 1 AND b < 5rX  r  r¦   rM   rN   Úsome_uqzc > 1 AND c < 5Úcc1Ú	some_c_uqrP   zc > 1 and c < 5rO  zb > 1 and b < 5r^  )r   r   r   rn   r  r   r  r3  rU  r+   r=  )r|   rZ   rG  rQ   r¨   r‰  s         r>   Útest_check_constraint_mixedz8ComponentReflectionTestExtra.test_check_constraint_mixedm
  s  € á˜wÔ'Ñ+>¨F°IÜØØÜ�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 D1Ä1D:c                 ó.  ‡‡— t        d|t        dt        d«      «      t        dt        d«      «      t        dt        d«      «      «      }t        dt	        j
                  |j                  j                  «      |j                  j                  t	        j
                  |j                  j                  «      «       dŠt        dt	        j                  |j                  j                  ‰«      «       t        d	|j                  j                  «       |j                  ‰«       t        ‰«      }d	dgd
i dœg}ˆfd„} ||d   «        G d„ dt        «      } G ˆfd„dt        «      }t        j                  j                   j"                  r’dg d¢ |d«      d |d«      gd
dœ}	 ||	«       |j%                  d|	«       dd g |d‰› d�«      gd
dœ}
 ||
«       |j'                  |
«       t)        |j+                  d«      |«       t-        «       }t        d|‰¬«      }nGt/        d«      5  t)        |j+                  d«      |«       t-        «       }t        d|‰¬«      }d d d «       | j1                  |‰j2                  j4                  «       y # 1 sw Y   Œ1xY w)Nr:  Úxr`  ÚyÚ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)rk   rÊ   ra  rî  c                 óº   •— t         j                  j                  j                  r$g | d<   ‰j                  j
                  › d�g i| d<   y | j                  di «       y )Nrï  Ú_includerî  )r   rR   rŒ  r7   r-  rk   r  )Úentryr’   s    €r>   ÚcompleteIndexzYComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.completeIndex©
  s\   ø€ Ü×Ñ×?Ñ?×GÒGØ+-�Ð'Ñ(à!×(Ñ(×-Ñ-Ð.¨hÐ7¸ð,�Ð'Ò(ð × Ñ Ð!2°BÕ7r@   r   c                   ó   — e Zd Zd„ Zy)ú[ComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.lower_index_strc                 óB   — |j                  «       }d|v xr
 d|v xs d|v S )Nr  rk  rl  ©r  )r|   rÕ   Úols      r>   rÛ  zbComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.lower_index_str.__eq__µ
  s)   € Ø—[‘[“]�à "�}ÒA¨#°¨)Ò*@°s¸b°yÐAr@   NrÜ  rE   r@   r>   Úlower_index_strrv  ´
  s   „ óBr@   rz  c                   ó   •— e Zd Zˆ fd„Zy)ú^ComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.coalesce_index_strc                 ó4   •— d|j                  «       v xr ‰|v S )NÚcoalescerx  )r|   rÕ   Úlong_strs     €r>   rÛ  zeComponentReflectionTestExtra.test_reflect_expression_based_indexes.<locals>.coalesce_index_str.__eq__»
  s   ø€ à! U§[¡[£]Ð2ÒH°xÀ5Ð7HÐHr@   NrÜ  )r  s   €r>   Úcoalesce_index_strr|  º
  s	   ø„ õIr@   r€  )Nrm  Nzlower(x)zlower(y))rk   rÊ   rð  ra  zcoalesce(x, 'z')rØ   z>Skipped unsupported reflection of expression-based index t_idx)r   r   r   r$   r   r  r¦   rk  rm  rl  r~  rÝ   r   r  r   rR   Ú reflect_indexes_with_expressionsr7   Úinsertr¹  r   r*  r   r
   Ú!compare_table_index_with_expectedr-  rk   )r|   rZ   r’   r:  r…   rŽ  rt  rz  r€  Ú
expr_indexÚexpr_index_longrß   r/  r  s     `          @r>   Ú%test_reflect_expression_based_indexeszBComponentReflectionTestExtra.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   È'4JÊJc                 ó®  — t        d|t        dt        d«      «      t        dt        d«      «      «      }t        d|j                  j
                  «      }dg|j                  |j                  j                     d<   |j                  |«       t        |«      }|j                  d«      }t        |ddgdgdt        j                  dœg«       t        |d	   d
   d|j                  j                  z     dg«       t        dt        «       |¬«      }t        t!        |j"                  «      d	   j                  |j                  j                     d   dg«       y )Nr:  rk  r`  rl  rn  ÚincludeF)rk   rÊ   rï  ra  rî  r   rî  z
%s_includerØ   )r   r   r   r$   r¦   rk  rî  r-  rk   rÝ   r   r*  r   r+   r=  r   rÏ  r‚  )r|   rZ   r’   r:  r¼   r…   r*  r/  s           r>   Útest_reflect_covering_indexz8ComponentReflectionTestExtra.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õ		
r@   c                 óü   — t        d|gt        |«      D ��cg c]  \  }}t        d|z  |«      ‘Œ c}}¢­Ž }|j                  |«       t	        |«      j                  d«      D �cg c]  }|d   ‘Œ	 c}S c c}}w c c}w )Nr:  zt%drÁ  )r   rU  r   r‚   r   rç   )r|   r’   rZ   r   rd  Útype_r:  r¦   s           r>   Ú_type_round_tripz-ComponentReflectionTestExtra._type_round_trip  s‡   € ÜØØð
ô 8AÀÔ7GÔHÑ7G©8¨1¨eŒf�U˜Q‘Y Õ&Ð7GÒHò
ˆð
 	
�‰�Ôä#*¨:Ó#6×#BÑ#BÀ3Ô#GÓHÑ#G˜a��&“	Ð#GÑHÐHùó	 Iùò Is   —A3Á$A9c                 óì   — | j                  ||t        j                  dd«      «      D ]J  }t        |t        j                  «      sJ ‚t	        |j
                  d«       t	        |j                  d«       ŒL y )Né   rO  )rŒ  rY  r]  r  r   Ú	precisionÚscale)r|   r’   rZ   Útyps       r>   Útest_numeric_reflectionz4ComponentReflectionTestExtra.test_numeric_reflection  s_   € à×(Ñ(Ø˜¤)×"3Ñ"3°B¸Ó":ö
ˆCô ˜c¤9×#4Ñ#4Ô5Ð5Ð5Ü�—‘˜rÔ"Ü�—	‘	˜1Õñ
r@   r‹  c                 ó°  — | j                  || |d«      «      d   }t        |t        j                  «      rt	        |t        j                  «      sTJ ‚t        |t        j
                  «      rt	        |t        j
                  «      sJ ‚t	        |t        j                  «      sJ ‚t        |j                  d«       t	        |j                  t        «      sJ ‚y )Né4   r   )
rŒ  Ú
issubclassrY  rp   r  r„  r   r   ÚlengthÚint)r|   r’   rZ   r‹  r‘  s        r>   Útest_string_length_reflectionz:ComponentReflectionTestExtra.test_string_length_reflection&  s¡   € ð ×#Ñ# J°¹%À»)ÓDÀQÑGˆÜ�eœY×.Ñ.Ô/Ü˜c¤9×#4Ñ#4Ô5Ð5Ð5Ü˜œyŸ~™~Ô.Ü˜c¤9§>¡>Ô2Ð2Ð2ä˜c¤9×#3Ñ#3Ô4Ð4Ð4äˆC�J‰J˜ÔÜ˜#Ÿ*™*¤cÔ*Ð*Ñ*r@   c           
      ó  — t        d|t        dt        d¬«      t        dt        d¬«      «      }|j                  |«       t	        t        |«      j                  d«      D �ci c]  }|d   |d   “Œ c}ddd	œ«       y c c}w )
Nr:  r¯   TrP  r“  Frk   rQ  )r¯   r“  )r   r   r   r‚   r   r   rç   )r|   r’   rZ   r:  r�   s        r>   Útest_nullable_reflectionz5ComponentReflectionTestExtra.test_nullable_reflection;  s‰   € äØØÜ�3œ¨$Ô/Ü�3œ¨%Ô0ó	
ˆð 	
�‰�ÔÜô # :Ó.×:Ñ:¸3Ô?óá?�Cð �F‘˜S ™_Ñ,Ø?ñð ˜UÑ#õ	
ùòs   Á!A=ÚCASCADEzSET NULLz	NO ACTIONÚRESTRICTzexpected,ondelete,onupdatec                 óÀ  — i }|r||d<   |r||d<   |€|}t        d|t        dt        d¬«      d¬«       t        d|t        dt        d¬«      t        d	t        t        d
d¬«      «      t        dt	        d«      «      d¬«       t        d|t        dt        d¬«      t        dt	        d«      d¬«      t        dt        «      t        j                  dgdgfddi|¤Žd¬«       |j                  |«       t        |«      }|j                  d«      d   d   }t        |D �	ci c]  }	||	   sŒ	|	||	   “Œ c}	i «       |j                  d«      d   d   }t        ||«       y c c}	w )NÚondeleteÚonupdaterk  rJ   TrK   rÒ   rb  Úx_idzx.idÚxidr  Útesté
   Úuserrk   rN   FrP  Útidztable.idÚmyfkr   r4   )r   r   r   r   r   rn   rÜ   rÝ   r   r'  r   )
r|   r’   rZ   rŽ  rž  rŸ  r4   r…   Úoptsr°   s
             r>   Útest_get_foreign_key_optionsz9ComponentReflectionTestExtra.test_get_foreign_key_optionsL  st  € ðT ˆÙØ"*ˆG�JÑÙØ"*ˆG�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«ˆ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           
      ó   — t        d|t        dt        d¬«      t        d||¬«      «      }|j                  |«       t	        |«      j                  d«      d   d   }t        j                  d	d
|«      }t        ||t        j                  ¬«       y )Nr:  rJ   TrK   Úthecol)Úserver_defaultrÚ   rÂ  z	[\(\) \']rJ  )Úflags)
r   r   r   r‚   r   rç   rÊ  rË  r   Ú
IGNORECASE)	r|   rZ   r’   ÚdatatyperÂ  Úexpected_regr:  r‰  Úreflected_sanitizeds	            r>   Útest_server_defaultsz1ComponentReflectionTestExtra.test_server_defaults©  s}   € ô: ØØÜ�4œ¨dÔ3Ü�8˜X°gÔ>ó	
ˆð 	
�‰�Ôä˜JÓ'×3Ñ3°CÓ8¸Ñ;¸IÑFˆ	Ü Ÿf™f \°2°yÓAÐÜÐ$ l¼"¿-¹-ÖHr@   )3rA   rB   rC   r�   r   rþ   rA  rG  rU  rR   r7  rW  Ú"inline_check_constraint_reflectionrÃ   r`  rd  ri  Úindexes_with_expressionsr†  rŒ  r‰  rŒ  r"  r’  rY  r   rp   r„  ÚNVARCHARÚnvarchar_typesÚNCHARr˜  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   rn   r»  r   ÚtrueÚexpression_server_defaultsr   r   ÚnowÚliteral_columnÚserver_defaultsr´  rE   r@   r>   r<  r<  ñ	  s  „ Ø€Kà€W‡_�_˜T 5˜MÔ*ñó +ðð €W‡_�_Óñó ðò!ð. ×Ñ×1Ñ1ñ
ó 2ð
ð ×Ñ×8Ñ8Ø€W×ÑØ�Z Ð0Aôñ
óó 9ð
ð@ ×Ñ×1Ñ1Ø€W×ÑØ�{ DÐ3Dôñ
óó 2ð
ð4 ×Ñ×8Ñ8ñ
ó 9ð
ð> ×Ñ×.Ñ.ñX
ó /ðX
ðt ×Ñ×5Ñ5ñ(
ó 6ð(
òTIð ×Ñ×&Ñ&ñó 'ðð ×Ñ×&Ñ&Ø€W×ÑØ×ÑØ×ÑØ�‰Ø	×	Ñ	˜W×-Ñ-×<Ñ<Ð=Ø	�‰˜'×*Ñ*×9Ñ9Ð:Øôñ
+óó 'ð
+ð ×Ñ×&Ñ&ñ
ó 'ð
ð  €W×ÑàØØØ×Ñ×NÑNð		
ð ØØØ×Ñ×NÑNð		
ð ØØØ×Ñ×NÑNð		
ð ØØØ×Ñ×NÑNð		
ð ØØØ×Ñ×NÑNð		
ð ØØØ×Ñ×NÑNð		
ð .ôK&ñN3óO&ðN3ðl €W×ÑØ	�'�"—'‘'˜$“- Ð+Ø	�$˜	Ð"Ø	�'�"—'‘'“)˜YÐ'àØˆB�G‰G�GÓØØ×Ñ×7Ñ7ð		
ð ØˆB�G‰G�IÓØØ×Ñ×7Ñ7ð		
ð 
�8�4—8‘8“:Ð?Ð@àØˆB×Ñ˜cÓ"Ð%6 R×%6Ñ%6°sÓ%;Ñ;ØØ×Ñ×7Ñ7ð		
ð 3ô/ð2 ×Ñ×%Ñ%ñIó &ó3ñ4Ir@   r<  c                   ó0   — e Zd ZdZdZed„ «       Zd„ Zd„ Zy)ÚNormalizedNameTest)Údenormalized_namesTc                 óÌ   — t        t        dd¬«      |t        dt        d¬«      «       t        t        dd¬«      |t        dt        d¬«      t        dt	        d«      «      «       y )	Nrá   T©r  rJ   rK   r/  Út1idzt1.id)r   r%   r   r   r   rY   s     r>   r[   z NormalizedNameTest.define_tables×  sU   € äÜ˜ DÔ)ØÜ�4œ¨dÔ3ô	
ô
 	Ü˜ DÔ)ØÜ�4œ¨dÔ3Ü�6œ: gÓ.Ó/õ		
r@   c                 óü  — t        «       }t        t        dd¬«      |t        j                  ¬«      }|j
                  d   }|j                  j                  j                  |j                  j                  «      sJ ‚t        «       }|j                  t        j                  d„ ¬«       |j
                  d   j                  j                  j                  |j
                  d   j                  j                  «      sJ ‚y )Nr/  TrÈ  rØ   rá   c                 ó&   — | j                  «       dv S )N©rá   r/  rx  )rk   r  s     r>   r±   zINormalizedNameTest.test_reflect_lowercase_forced_tables.<locals>.<lambda>ï  s   € ¨D¯J©J«L¸LÑ,Hr@   )Úonly)r   r   r%   r   r<   r¹   r¦   rÉ  rÞ   rJ   r  )r|   rß   Út2_refÚt1_refÚm3s        r>   Ú$test_reflect_lowercase_forced_tablesz7NormalizedNameTest.test_reflect_lowercase_forced_tableså  s¸   € Ü‹ZˆÜÜ˜ DÔ)¨2¼V¿Y¹Yô
ˆð —‘˜4‘ˆØ�x‰x�}‰}×'Ñ'¨¯©¯©Ô4Ð4Ð4ä‹ZˆØ
�
‰
Ü�I‰IÑHð 	ô 	
ð �y‰y˜‰× Ñ ×%Ñ%×0Ñ0°·±¸4±×1BÑ1B×1EÑ1EÔFÐFÑFr@   c                 óR  — t        t        j                  «      j                  «       D �cg c]  }|j	                  «       dv r|‘Œ }}t        |d   j                  «       |d   j	                  «       «       t        |d   j                  «       |d   j	                  «       «       y c c}w )NrÌ  r   rÚ   )r   r   r<   r6  r  r   Úupper)r|   r:  Ú
tablenamess      r>   r<  z'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$N)	rA   rB   rC   rÂ   r�   rD   r[   rÑ  r<  rE   r@   r>   rÅ  rÅ  Ó  s)   „ Ø*€LØ€Kàñ
ó ð
òGó:r@   rÅ  c                   ó\   — e Zd Zd„ Zd„ Zd„ Zd„ Zej                  j                  d„ «       Z
y)ÚComputedReflectionTestc                 óö   — t        t        j                  «      }|j                  d«      }|D �ci c]  }|d   |“Œ
 }}t	        d|d   d   v «       t        |d   d   d «       t        |d   d   d «       y c c}w )NÚcomputed_default_tablerk   Ú42Úwith_defaultrÂ  ÚnormalÚcomputed_col)r   r   r<   rç   r*   r   )r|   r…   rÐ  r¦   Úcol_datas        r>   Ú!test_computed_col_default_not_setz8ComputedReflectionTest.test_computed_col_default_not_setÿ  s�   € Ü”v—y‘yÓ!ˆà×ÑÐ 8Ó9ˆÙ*.Ó/©$ Q�A�f‘I˜q‘L¨$ˆÐ/Ü�˜ Ñ0°Ñ;Ð;Ô<ÜˆH�XÑ˜yÑ)¨4Ô0ÜˆH�^Ñ$ YÑ/°Õ6ùò 0s   ¯A6c                 óT  — t        t        j                  «      }|j                  d«      }|D �ci c]  }|d   |“Œ
 }}dD ]  }t	        d||   v«       Œ |d   }t	        d|v «       t	        d|d   v «       t        | j                  |d   d   «      d«       t        d|d   v t        j                  j                  j                  «       t        j                  j                  j                  r5t        |d   d   t        j                  j                  j                  «       y y c c}w )	NrØ  rk   )rJ   rÛ  rÚ  ÚcomputedrÜ  r  ú	normal+42Ú	persisted)r   r   r<   rç   r*   r   rN  r   rR   Ú"computed_columns_reflect_persistedr7   Ú"computed_columns_default_persisted)r|   r…   rÐ  r¦   rM   rÑ   ÚcompDatas          r>   Ú test_get_column_returns_computedz7ComputedReflectionTest.test_get_column_returns_computed  s  € Ü”v—y‘yÓ!ˆà×ÑÐ 8Ó9ˆÙ&*Ó+¡d ��&‘	˜1‘ dˆÐ+Û3ˆCÜ�J d¨3¡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   ¯D%c                 óò   — t        d||   v «       ||   d   }t        | j                  |d   «      |«       t        j                  j
                  j                  rt        d|v «       t        |d   |«       y y )Nrà  r  râ  )r*   r   rN  r   rR   rã  r7   r   )r|   rM   Úcolumnr  râ  rå  s         r>   Úcheck_columnz#ComputedReflectionTest.check_column  sp   € Ü�
˜d 6™lÐ*Ô+Ø˜‘< 
Ñ+ˆÜˆD�N‰N˜8 IÑ.Ó/°Ô9Ü×Ñ×>Ñ>×FÒFÜ�K 8Ð+Ô,Ü�˜Ñ% yÕ1ð Gr@   c                 óÖ  — t        t        j                  «      }|j                  d«      }|D �ci c]  }|d   |“Œ
 }}| j	                  |ddt
        j                  j                  j                  «       t
        j                  j                  j                  r| j	                  |ddd«       t
        j                  j                  j                  r| j	                  |dd	d
«       y y c c}w )NÚcomputed_column_tablerk   Úcomputed_no_flagrá  Úcomputed_virtualznormal+2FÚcomputed_storedz	normal-42T)r   r   r<   rç   ré  r   rR   rä  r7   Úcomputed_columns_virtualÚcomputed_columns_stored©r|   r…   rÐ  r¦   rM   s        r>   Ú!test_get_column_returns_persistedz8ComputedReflectionTest.test_get_column_returns_persisted%  sÕ   € Ü”v—y‘yÓ!ˆà×ÑÐ 7Ó8ˆÙ&*Ó+¡d ��&‘	˜1‘ dˆÐ+à×ÑØØØÜ×Ñ×?Ñ?×GÑGô		
ô ×Ñ×4Ñ4×<Ò<Ø×ÑØØ"ØØô	ô ×Ñ×3Ñ3×;Ò;Ø×ÑØØ!ØØõ	ð <ùò ,s   ¯C&c                 óö  — t        t        j                  «      }|j                  dt        j                  ¬«      }|D �ci c]  }|d   |“Œ
 }}| j                  |ddt        j                  j                  j                  «       t        j                  j                  j                  r| j                  |ddd«       t        j                  j                  j                  r| j                  |d	d
d«       y y c c}w )Nrë  rP   rk   rì  z	normal/42rí  znormal/2Frî  z	normal*42T)r   r   r<   rç   rT   ré  r   rR   rä  r7   rï  rð  rñ  s        r>   Ú-test_get_column_returns_persisted_with_schemazDComputedReflectionTest.test_get_column_returns_persisted_with_schema@  sæ   € ä”v—y‘yÓ!ˆà×ÑØ#¬F×,>Ñ,>ð  ó 
ˆñ '+Ó+¡d ��&‘	˜1‘ dˆÐ+à×ÑØØØÜ×Ñ×?Ñ?×GÑGô		
ô ×Ñ×4Ñ4×<Ò<Ø×ÑØØ"ØØô	ô ×Ñ×3Ñ3×;Ò;Ø×ÑØØ!ØØõ	ð <ùò ,s   ¿C6N)rA   rB   rC   rÞ  ræ  ré  rò  r   rR   rS   rô  rE   r@   r>   rÖ  rÖ  þ  s6   „ ò7òò*2òð6 ×Ñ×Ññó ñr@   rÖ  c                   óp   — e Zd ZdxZZdZdZed„ «       Zd„ Z	d„ Z
ej                  j                  d„ «       Zy)ÚIdentityReflectionTestNT)rò   r"  c                 ó˜  — t        d|t        dt        «      t        dt        t        «       «      «       t        d|t        dt        t        dddd	d
dd¬«      «      «       t        j
                  j                  j                  rGt        d|t        dt        «      t        dt        t        dd¬«      «      t        j                  ¬«       y y )Nrá   rÛ  Úid1r/  rÔ   Tr   r   éþÿÿÿrr  é   ©Úalwaysrå   Ú	incrementÚminvalueÚmaxvalueÚcycleÚcacherh  )rü  rå   rP   )
r   r   r   r   r   rR   rS   r7   r   rT   rY   s     r>   r[   z$IdentityReflectionTest.define_tablese  s³   € äØØÜ�8œWÓ%Ü�5œ'¤8£:Ó.ô		
ô 	ØØÜØÜÜØØØØØØØôóô	
ô" ×Ñ×#Ñ#×+Ò+ÜØØÜ�x¤Ó)Ü�uœg¤x°tÀ2Ô'FÓGÜ×)Ñ)öð ,r@   c                 óÚ  — t         j                  j                  j                  r£d}t	        |«      D ]  }||vsŒ|j                  |«       Œ |rlt        t        |«      t        |«      «       |D ]H  }|dk(  rt        ||   ||   k  «       Œ|dv rt        ||   ||   k\  «       Œ6t        ||   ||   |«       ŒJ y t        ||«       y t        |d   |d   «       t        |d   |d   «       y )Nrû  rþ  >   r  rÿ  rå   rý  )	r   rR   Úidentity_columns_standardr7   rÏ  rÄ  r   rT  r*   )r|   r  rO  ÚapproxÚcommon_keysr°   s         r>   ÚcheckzIdentityReflectionTest.check‡  sá   € Ü×Ñ×5Ñ5×=Ò=ðˆKô ˜%–[�Ø˜KÒ'Ø—I‘I˜a•Lð !ñ Ü”C˜“J¤ C£Ô)Û�AØ˜J’Ü  a¡¨C°©FÑ 2Õ3ØÐ3Ñ3Ü  a¡¨C°©FÑ 2Õ3ä˜E !™H c¨!¡f¨aÕ0ñ ô �E˜3•ä��g‘  G¡Ô-Ü��kÑ" C¨Ñ$4Õ5r@   c                 ó.  — t        t        j                  «      }|j                  d«      |j                  d«      z   }|D ]Ô  }|d   dk(  rt	        d|v «       Œ|d   dk(  rVd|v rt        |d   «       t        |d   d «       t        d|v «       | j                  |d   t        d	d
d
d
dd	d
¬«      d¬«       Œw|d   dk(  sŒ€d|v rt        |d   «       t        |d   d «       t        d|v «       | j                  |d   t        ddddddd¬«      d	¬«       ŒÖ y )Nrá   r/  rk   rÛ  rä   rø  rÀ  rÂ  FrÚ   éÿÿÿrû  T©r  rÔ   r   r   rù  rr  rú  )	r   r   r<   rç   r)   r*   r   r  r:   ©r|   r…   rÐ  r�   s       r>   ré   z,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 r@   c                 ón  — t        t        j                  «      }|j                  dt        j                  ¬«      }|D ]v  }|d   dk(  rt        d|v «       Œ|d   dk(  sŒ"d|v rt        |d   «       t        |d   d «       t        d|v «       | j                  |d   t        d	d
ddddd¬«      d	¬«       Œx y )Nrá   rP   rk   rÛ  rä   rø  rÀ  rÂ  Trh  rÚ   r  Frû  r	  )
r   r   r<   rç   rT   r)   r*   r   r  r:   r
  s       r>   Útest_reflect_identity_schemaz3IdentityReflectionTest.test_reflect_identity_schemaÐ  sÄ   € ä”v—y‘yÓ!ˆà×Ñ ¬V×-?Ñ-?ÐÓ@ˆÛˆCØ�6‰{˜hÒ&Ü˜ sÐ*Õ+Ø�V‘ Ó%Ø" cÑ)Ü˜C Ñ0Ô1Ü�C˜	‘N DÔ)Ü˜
 cÐ)Ô*Ø—
‘
Ø˜
‘OÜØ#Ø Ø"#Ø!"Ø!+Ø#Øôð  ð õ ñ r@   )rA   rB   rC   r  r  r�   rÂ   rD   r[   r  ré   r   rR   rS   r  rE   r@   r>   rö  rö  _  sT   „ Ø $Ð$€K�+à€KØ;€Làñó ðòB6ò:*ðX ×Ñ×Ññó ñr@   rö  c                   ó�   — e Zd ZdZed„ «       Zej                  j                  d„ «       Z	ej                  j                  d„ «       Zy)ÚCompositeKeyReflectionTestTc                 ó2  — t        d|t        dt        «      t        dt        «      t        dt        j                  d«      «      t        j                  dddd¬«      d d¬	«      }t        d
|t        dt        d¬«      t        dt        «      t        dt        «      t        dt        j                  d«      «      t        j                  g d¢|j                  j                  |j                  j                  |j                  j                  gd¬«      d d¬	«	       y )NÚtb1rJ   Úattrrk   rh  Úpk_tb1r  TrY  Útb2rK   ÚpidÚpattrÚpname©r  r  r  Úfk_tb1_name_id_attr)r   r   r   rY  rp   rn   r  rÜ   r¦   rk   rJ   r  )r=   rZ   r  s      r>   r[   z(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Ø*ôð
 Øö	
r@   c                 ó²   — t        |«      }|j                  | j                  j                  j                  «      }t        |j                  d«      g d¢«       y )NrÎ  ©rk   rJ   r  )r   r$  r¹   r  rk   r   r­  )r|   r’   r…   rL   s       r>   Útest_pk_column_orderz/CompositeKeyReflectionTest.test_pk_column_order  sA   € ô �zÓ"ˆØ×,Ñ,¨T¯[©[¯_©_×-AÑ-AÓBˆÜˆK�O‰OÐ1Ó2Ò4JÕKr@   c                 ó   — t        |«      }|j                  | j                  j                  j                  «      }t        t        |«      d«       |d   }t        |j                  d«      g d¢«       t        |j                  d«      g d¢«       y )NrÚ   r   rÞ  r  rÎ  r  )r   r'  r¹   r  rk   r   rT  r­  )r|   r’   r…   Úforeign_keysrz  s        r>   Útest_fk_column_orderz/CompositeKeyReflectionTest.test_fk_column_order  sn   € ô �zÓ"ˆØ×,Ñ,¨T¯[©[¯_©_×-AÑ-AÓBˆÜŒC�Ó˜qÔ!Ø˜Q‘ˆÜˆE�I‰IÐ(Ó)Ò+AÔBÜˆE�I‰IÐ+Ó,Ò.GÕHr@   N)rA   rB   rC   r�   rD   r[   r   rR   r   r  rñ   r  rE   r@   r>   r  r  ì  s]   „ Ø€Kàñ
ó ð
ð6 ×Ñ×7Ñ7ñLó 8ðLð ×Ñ×7Ñ7ñIó 8ñIr@   r  )rE  r<  r%  r  rÅ   rG   r    rÅ  rÖ  rö  r  rõ   )HrE  r™  rÊ  r8   rn   rJ  r   r   r   r   r   r	   r
   r   r   Ú	provisionr   r   rQ   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rY  r-  r   r   r    Úexcr!   r"   r#   r$   Úsql.elementsr%   Ú
sql.schemar&   r'   r(   r)   r*   r+   rZ   rL  Ú
TablesTestr.   rG   r    ÚTestBaserÅ   rõ   r  rC  rE  r%  r<  rÅ  ÚComputedReflectionFixtureTestrÖ  rö  r  Ú__all__rE   r@   r>   Ú<module>r'     s©  ðó Û Û 	ã Ý Ý Ý Ý Ý Ý $Ý Ý Ý Ý +Ý /Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý "Ý Ý  Ý !Ý #Ý *Ý Ý Ý 'Ý &Ý &Ý %Ý Ý Ý ð �€ˆ%ô˜h×1Ñ1ô ô S:Ð*ô S:ôlJ
�8×&Ñ&ô J
ôZdG˜8×,Ñ,ô dGôN#G˜H×-Ñ-ô #GôLT0˜X×0Ñ0ô T0òn1ô<J\˜nÐ.Eô J\ôZ:2,˜×*Ñ*ô 2,ôj_I ?°H×4EÑ4Eô _IôD(:˜×,Ñ,ô (:ôV^˜X×CÑCô ^ôBJ˜X×0Ñ0ô JôZ.I ×!4Ñ!4ô .Iðb�r@   