Ë
    r™ãjÊT  ã                   ó  — 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  G d„ dej.                  «      Zy)é   )Úfixtures)Úeq_)Úget_temp_table_nameé   )Ú	bindparam)ÚColumn)Úfunc)Úinspect)ÚInteger)Úliteral)ÚMetaData)Úselect)ÚString)Útesting)ÚCreateTableAs)Ú
CreateView)Ú	DropTable)ÚDropView)ÚTable)Úconfigc                   ó|  — e Zd ZdZed„ «       Zed„ «       Zed„ «       Zed„ «       Z e	j                  dd¬«      d„ «       Z e	j                  d	d
ddde	j                  j                  fdddde	j                  j                  fd	d
ddde	j                  j                   fdddde	j                  j                  fdd¬«      d„ «       Z e	j$                  dde	j                  j&                  fde	j                  j&                  fde	j                  j(                  fg«       e	j$                  d
dde	j                  j                  e	j                  j                   z   fg«       e	j$                  dddg«      d„ «       «       «       Z e	j$                  dde	j                  j&                  fde	j                  j(                  fg«      d„ «       Ze	j                  j.                  e	j                  j&                  d„ «       «       Ze	j                  j2                  d„ «       Ze	j                  j6                   e	j$                  dddg«      d„ «       «       Z e	j$                  dde	j                  j&                  fde	j                  j(                  fg«      d„ «       Z e	j$                  dde	j                  j&                  fde	j                  j(                  fg«      d„ «       Z e	j$                  dde	j                  j&                  fde	j                  j(                  fg«      d„ «       Ze	j                  j(                  d„ «       Z y )!ÚTableViaSelectTestTc                 ób   — t        t        t        j                  dt        j                  › �«      S )NÚ	user_tmp_©r   r   ÚdbÚident©Úclss    úy/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_table_via_select.pyÚtemp_table_namez"TableViaSelectTest.temp_table_name!   s%   € ä"Ü”F—I‘I ¬6¯<©<¨.Ð9ó
ð 	
ó    c                 ób   — t        t        t        j                  dt        j                  › �«      S )NÚuser_tmp_view_r   r   s    r    Útemp_view_namez!TableViaSelectTest.temp_view_name'   s%   € ä"Ü”F—I‘I ´·±¨~Ð>ó
ð 	
r"   c                 óÞ  — t        d|t        dt        dd¬«      t        dt        d«      «      t        dt        «      «       t        d	|t        dt        «      «       t        d
|t        dt        «      «       t        j
                  j                  j                  rRt        d|t        dt        dd¬«      t        dt        d«      «      t        dt        «      t        j                  ¬«       y y )NÚsource_tableÚidTF©Úprimary_keyÚautoincrementÚnameé2   ÚvalueÚaÚbÚsource_table_s©Úschema)
r   r   r   r   r   ÚrequiresÚschemasÚenabledr   Útest_schema)r   Úmetadatas     r    Údefine_tablesz TableViaSelectTest.define_tables-   sµ   € äØØÜ�4œ¨dÀ%ÔHÜ�6œ6 "›:Ó&Ü�7œGÓ$ô	
ô 	ˆc�8œV D¬'Ó2Ô3Üˆc�8œV D¬'Ó2Ô3ä×Ñ×#Ñ#×+Ò+ÜØ ØÜ�tœW°$ÀeÔLÜ�vœv b›zÓ*Ü�w¤Ó(Ü×)Ñ)öð ,r"   c           	      ó¢  — | j                   j                  }|j                  |j                  «       ddddœddddœdd	d
dœg«       | j                   j                  }| j                   j
                  }|j                  |j                  «       dD �cg c]  }d|i‘Œ c}«       |j                  |j                  «       dD �cg c]  }d|i‘Œ c}«       t        j                  j                  j                  rP| j                   t        j                  › d�   }|j                  |j                  «       ddddœddddœdd	d
dœg«       y y c c}w c c}w )Né   Úaliceéd   )r(   r,   r.   r   ÚbobéÈ   r   Úcharlieé,  )r;   r   r(   )r   é   ú.source_table_s)Útablesr'   ÚexecuteÚinsertr/   r0   r   r4   r5   r6   r   r7   )r   Ú
connectionÚtabler/   r0   Úvs         r    Úinsert_datazTableViaSelectTest.insert_dataC   s*  € à—
‘
×'Ñ'ˆØ×ÑØ�L‰L‹Nà '°CÑ8Ø %°#Ñ6Ø )°cÑ:ðô	
ð �J‰J�L‰LˆØ�J‰J�L‰Lˆà×Ñ˜1Ÿ8™8›:¸6Ö'B°a¨¨qª	Ò'BÔCØ×Ñ˜1Ÿ8™8›:¸6Ö'B°a¨¨qª	Ò'BÔCä×Ñ×#Ñ#×+Ò+Ø—J‘J¤&×"4Ñ"4Ð!5°_ÐEÑFˆEØ×ÑØ—‘“à g¸Ñ<Ø e°cÑ:Ø i¸#Ñ>ðõð ,ùò (CùÚ'Bs   ÂE
Ã E
Úfunction)ÚscopeÚautousec                 óÚ  — d t         j                  fD ]Æ  }d| j                  «       fD ]M  }t        |«      j	                  ||¬«      sŒ |j                  t        t        |t        «       |¬«      «      «       ŒO d| j                  «       fD ]M  }t        |«      j	                  ||¬«      sŒ |j                  t        t        |t        «       |¬«      «      «       ŒO ŒÈ |j                  «        y )NÚ
dest_tabler2   Ú	dest_view)r   r7   r!   r
   Ú	has_tablerE   r   r   r   r%   r   Úcommit)ÚselfrG   r3   r,   s       r    Údrop_dest_tablez"TableViaSelectTest.drop_dest_table`   sØ   € àœF×.Ñ.Ð.ò 
	ˆFØ% t×';Ñ';Ó'=Ð>ò �Ü˜:Ó&×0Ñ0°¸fÐ0ÕEØ×&Ñ&Ü!¤%¨¬h«jÀÔ"HÓIõðð
 % d×&9Ñ&9Ó&;Ð<ò �Ü˜:Ó&×0Ñ0°¸fÐ0ÕEØ×&Ñ&Ü ¤ t¬X«ZÀÔ!GÓHõñð
	ð 	×ÑÕr"   )ÚplainFFFÚuse_tempFÚ
use_schemazuse_schemas,use_temp,use_viewÚiaaa)ÚargnamesÚid_c                 ób  — | j                   j                  }|s—|r| j                  «       nd}t        t	        |j
                  j                  |j
                  j                  «      j                  |j
                  j                  dkD  «      |t        |«      |rt        j                  nd ¬«      }n¸|r | j                   t        j                  › d�   }|r| j                  «       nd}t        t	        |j
                  j                  |j
                  j                  «      j                  |j
                  j                  dkD  «      |t        |«      |rt        j                  nd ¬«      }|j                  |«       |j                   }|j                  t	        |j
                  j                  |j
                  j                  «      j#                  |j
                  j                  «      «      j%                  «       }	t'        |	ddg«       t)        |«      }
|
j+                  ||rt        j                  nd ¬«      }t'        t-        |«      d	«       t'        |d
   d   d«       t'        |d   d   d«       t'        |d
   d   j.                  t0        «       t'        |d   d   j.                  t2        «       y )NrO   r=   )Ú	temporaryr3   rC   rP   ©r   r>   ©r   r@   r2   r   é    r,   r(   r;   Útype)rD   r'   r!   r   r   Úcr(   r,   Úwherer.   Úboolr   r7   r%   r   rE   rH   Úorder_byÚfetchallr   r
   Úget_columnsÚlenÚ_type_affinityr   r   )rS   rG   rV   Úuse_schemasÚuse_viewr'   Ú	tablenameÚstmtÚdestÚresultÚinspÚcolss               r    Útest_without_metadataz(TableViaSelectTest.test_without_metadatao   s&  € ð& —{‘{×/Ñ/ˆáÙ2:˜×,Ñ,Ô.ÀˆIÜ Ü�|—~‘~×(Ñ(¨,¯.©.×*=Ñ*=Ó>×DÑDØ —N‘N×(Ñ(¨3Ñ.óð Ü˜x›.Ù-8”v×)Ò)¸dô‰Dñ Ø#Ÿ{™{Ü×)Ñ)Ð*¨/Ð:ñ �ñ 2:˜×+Ñ+Ô-¸{ˆIÜÜ�|—~‘~×(Ñ(¨,¯.©.×*=Ñ*=Ó>×DÑDØ —N‘N×(Ñ(¨3Ñ.óð Ü˜x›.Ù-8”v×)Ò)¸dôˆDð 	×Ñ˜4Ô ð �z‰zˆØ×#Ñ#Ü�4—6‘6—9‘9˜dŸf™fŸk™kÓ*×3Ñ3°D·F±F·I±IÓ>ó
ç
‰(‹*ð 	ô 	ˆF�Z Ð0Ô1ô �zÓ"ˆØ×ÑØÙ)4”6×%Ò%¸$ð  ó 
ˆô
 	ŒC�‹I�qÔÜˆD�‰G�F‰O˜TÔ"ÜˆD�‰G�F‰O˜VÔ$ô 	ˆD�‰G�F‰O×*Ñ*¬GÔ4ÜˆD�‰G�F‰O×*Ñ*¬FÕ3r"   Ú
table_typeÚcreate_table_asÚselect_intoÚcreate_viewÚuse_drop_allc                 ó^  — | j                   j                  }t        |j                  j                  |j                  j
                  |j                  j                  «      j                  |j                  j                  dkD  «      }|xdk(  r. |r| j                  «       nd}t        |||t        |«      ¬«      }	nqxdk(  r* |r| j                  «       nd}|j                  |||¬«      }	nBdk(  r-|r| j                  «       nd}t        |||t        |«      ¬«      }	n	 |j                  «        |j                  |«       	j                   }
t#        |
t$        «      sJ ‚|
j&                  |u sJ ‚t)        |
j
                  «       |j+                  t        |
j                  j                  |
j                  j
                  «      j-                  |
j                  j                  «      «      j/                  «       }t)        |d	d
g«       |r|j1                  |«       n|
j3                  |«       |rEt4        j6                  j8                  j:                  r t=        |«      }||j?                  «       vsJ ‚y y t=        |«      }|j@                  r||jC                  «       vsJ ‚y ||jE                  «       vsJ ‚y )Nr=   rs   rO   )r8   r\   rt   )r\   r8   ru   rP   r]   r^   )#rD   r'   r   ra   r(   r,   r.   rb   r!   r   rc   Úintor%   r   ÚfailÚ
create_allrH   Ú
isinstancer   r8   r   rE   rd   re   Údrop_allÚdropr   r4   Útemp_table_namesr6   r
   Úget_temp_table_namesru   Úget_view_namesÚget_table_names)rS   rG   r8   rV   rr   rv   r'   Úselect_stmtrk   rl   rm   rn   ro   s                r    Útest_with_metadataz%TableViaSelectTest.test_with_metadata·   s\  € ð8 —{‘{×/Ñ/ˆäØ�N‰N×ÑØ�N‰N×ÑØ�N‰N× Ñ ó
÷ ‰%�—‘×$Ñ$ sÑ*Ó
+ð	 	ð Ý"á.6�D×(Ñ(Ô*¸Lð ô %ØØØ%Ü" 8›nô	‘õ á.6�D×(Ñ(Ô*¸Lð ð #×'Ñ'ØØ&Ø%ð (ó ‘ó
 Ù5=˜D×/Ñ/Ô1À;�	Ü!ØØØ%Ü" 8›nô	‘ð Ø—‘Ô!ð 	×Ñ˜JÔ'ð �z‰zˆÜ˜$¤Ô&Ð&Ð&Ø�}‰} Ñ(Ð(Ð(ÜˆD�I‰I�yÔ!ð ×#Ñ#Ü�4—6‘6—9‘9˜dŸf™fŸk™kÓ*×3Ñ3°D·F±F·I±IÓ>ó
ç
‰(‹*ð 	ô 	ˆF�Z Ð0Ô1ñ Ø×Ñ˜jÕ)à�I‰I�jÔ!ñ Ü×Ñ×0Ñ0×8Ò8Ü˜zÓ*�Ø ¨×(AÑ(AÓ(CÑCÐCÑCð 9ô ˜:Ó&ˆDØ×%Ò%Ø ¨×(;Ñ(;Ó(=Ñ=Ð=Ñ=à ¨×(<Ñ(<Ó(>Ñ>Ð>Ñ>r"   c                 óÐ  — | j                   j                  }|xdk(  r` d}t        t        |j                  j
                  j                  d«      |j                  j                  j                  d«      «      |«      }ntdk(  r_d}t        t        |j                  j
                  j                  d«      |j                  j                  j                  d«      «      |«      }n	 |j                  «        |j                  «       t        |«      }|j                  «      }t        t        |«      d«       t        |d   d	   d«       t        |d
   d	   d«       |j                  }|j                  t        |j                  j                   |j                  j"                  «      j%                  |j                  j                   d
k(  «      «      j'                  «       }	t        |	dg«       y )Nrs   rO   Úuser_idÚ	user_nameru   rP   r   r_   r,   r;   )r;   r<   )rD   r'   r   r   ra   r(   Úlabelr,   r   ry   rE   r
   rf   r   rg   rH   r…   r†   rb   re   )
rS   rG   rr   r'   rk   rl   ro   rp   rm   rn   s
             r    Útest_with_labelsz#TableViaSelectTest.test_with_labels  sˆ  € ð —{‘{×/Ñ/ˆàÝ"Ø(�	Ü$ÜØ$Ÿ™×)Ñ)×/Ñ/°	Ó:Ø$Ÿ™×+Ñ+×1Ñ1°+Ó>óð ó‘ó Ø'�	Ü!ÜØ$Ÿ™×)Ñ)×/Ñ/°	Ó:Ø$Ÿ™×+Ñ+×1Ñ1°+Ó>óð ó‘ð Ø—‘Ô!à×Ñ˜4Ô ô �zÓ"ˆØ×Ñ 	Ó*ˆÜŒC�‹I�qÔÜˆD�‰G�F‰O˜YÔ'ÜˆD�‰G�F‰O˜[Ô)ð �z‰zˆØ×#Ñ#Ü�4—6‘6—>‘> 4§6¡6×#3Ñ#3Ó4×:Ñ:¸4¿6¹6¿>¹>ÈQÑ;NÓOó
ç
‰(‹*ð 	ô 	ˆF�\�NÕ#r"   c                 óh  — | j                   j                  }d}t        t        |j                  j
                  «      j                  |«      |d¬«      }t        |«      }||j                  «       vsJ ‚|j                  |«       t        |«      }||j                  «       v sJ ‚|j                  |«       y )NrO   T)Úif_not_exists)
rD   r'   r   r   ra   r(   Úselect_fromr
   r�   rE   )rS   rG   r'   rk   rl   ro   s         r    Ú"test_create_table_as_if_not_existsz5TableViaSelectTest.test_create_table_as_if_not_existsN  s§   € ð —{‘{×/Ñ/ˆØ ˆ	äÜ�<—>‘>×$Ñ$Ó%×1Ñ1°,Ó?ØØô
ˆô �zÓ"ˆØ × 4Ñ 4Ó 6Ñ6Ð6Ð6à×Ñ˜4Ô ä�zÓ"ˆØ˜D×0Ñ0Ó2Ñ2Ð2Ð2ð 	×Ñ˜4Õ r"   c                 ó‚  — | j                   j                  }d}t        t        |j                  j
                  «      j                  |«      |d¬«      }t        |«      }||j                  «       vsJ ‚|j                  |«       t        |«      }||j                  «       v sJ ‚|j                  t        |j                  «      «      j                  «       }t        t        |«      d«       t        t        |j                  j
                  «      j                  |«      j                  |j                  j
                  dkD  «      |d¬«      }|j                  |«       t        |«      }||j                  «       v sJ ‚|j                  t        |j                  «      «      j                  «       }t        t        |«      d«       y )NrP   T)Ú
or_replacer   r;   r   )rD   r'   r   r   ra   r(   r‹   r
   r€   rE   rH   re   r   rg   rb   )rS   rG   r'   Úviewnamerl   ro   rn   s          r    Útest_create_or_replace_viewz.TableViaSelectTest.test_create_or_replace_viewe  ss  € à—{‘{×/Ñ/ˆØˆô Ü�<—>‘>×$Ñ$Ó%×1Ñ1°,Ó?ØØô
ˆô �zÓ"ˆØ˜t×2Ñ2Ó4Ñ4Ð4Ð4à×Ñ˜4Ô ä�zÓ"ˆØ˜4×.Ñ.Ó0Ñ0Ð0Ð0ð ×#Ñ#¤F¨4¯:©:Ó$6Ó7×@Ñ@ÓBˆÜŒC�‹K˜Ôô Ü�<—>‘>×$Ñ$Ó%ß‰[˜Ó&ß‰U�<—>‘>×$Ñ$ qÑ(Ó)ØØô
ˆð 	×Ñ˜4Ô ô �zÓ"ˆØ˜4×.Ñ.Ó0Ñ0Ð0Ð0à×#Ñ#¤F¨4¯:©:Ó$6Ó7×@Ñ@ÓBˆÜŒC�‹K˜Õr"   Úuse_metadatac                 óÂ  — | j                   j                  }d}|r[t        «       }t        t	        |j
                  j                  |j
                  j                  «      j                  |«      |d|¬«      }nOt        t	        |j
                  j                  |j
                  j                  «      j                  |«      |d¬«      }t        |«      }||j                  «       vsJ ‚|rj                  |«       n|j                  |«       t        |«      }||j                  «       v sJ ‚|j                  }|j                  t	        |«      «      j                  «       }	t        t!        |	«      d«       t        t#        d„ |	D «       «      h d£«       |rj%                  |«       nt'        |d¬«      }
|j                  |
«       t        |«      }||j                  «       vsJ ‚y )NÚdest_mat_viewT)Úmaterializedr8   )r”   r   c              3   ó&   K  — | ]	  }|d    –— Œ y­w)r_   N© )Ú.0Úrs     r    ú	<genexpr>zHTableViaSelectTest.test_create_drop_materialized_view.<locals>.<genexpr>¸  s   è ø€ Ò%˜��!•Ñ%ùs   ‚>   r;   r   r   )rD   r'   r   r   r   ra   r(   r,   r‹   r
   Úget_materialized_view_namesrz   rE   rH   re   r   rg   Úsetr|   r   )rS   rG   r‘   r'   r�   r8   rl   ro   Údst_viewrn   Ú	drop_stmts              r    Ú"test_create_drop_materialized_viewz5TableViaSelectTest.test_create_drop_materialized_viewŽ  s   € ð —{‘{×/Ñ/ˆØ"ˆáä“zˆHÜÜ�|—~‘~×(Ñ(¨,¯.©.×*=Ñ*=Ó>×JÑJØ óð Ø!Ø!ô‰Dô Ü�|—~‘~×(Ñ(¨,¯.©.×*=Ñ*=Ó>×JÑJØ óð Ø!ôˆDô �zÓ"ˆØ˜t×?Ñ?ÓAÑAÐAÐAáØ×Ñ 
Õ+à×Ñ˜tÔ$ä�zÓ"ˆØ˜4×;Ñ;Ó=Ñ=Ð=Ð=ð —:‘:ˆØ×#Ñ#¤F¨8Ó$4Ó5×>Ñ>Ó@ˆÜŒC�‹K˜ÔÜŒCÑ%˜fÔ%Ó%¢yÔ1ñ Ø×Ñ˜jÕ)ä  ¸Ô=ˆIØ×Ñ˜yÔ)ä�zÓ"ˆØ˜t×?Ñ?ÓAÑAÐAÑAr"   c           	      ó¼  — | j                   j                  }t        |j                  j                  dz   j                  d«      t        d«      j                  d«      «      j                  |«      }|xdk(  r d}t        ||«      }n$dk(  rd}t        ||«      }n	 |j                  «        |j                  «       |j                  }|j                  t        t        j                  «       t        j                  |j                  j                   «      t        j"                  |j                  j                   «      «      «      j%                  «       }t'        |d	«       y )
Nr;   Úid2ÚxÚtagrs   rO   ru   rP   )r   r¡   r¡   )rD   r'   r   ra   r(   r‡   r   r‹   r   r   ry   rE   rH   r	   ÚcountÚminr¢   ÚmaxÚfirstr   ©	rS   rG   rr   ÚsrcÚselrk   rl   ÚtblÚrows	            r    Ú#test_literal_inlining_inside_selectz6TableViaSelectTest.test_literal_inlining_inside_selectÄ  s  € ð �k‰k×&Ñ&ˆÜØ�U‰U�X‰X˜‰\× Ñ  Ó'Ü�C‹L×Ñ˜uÓ%ó
÷ ‰+�cÓ
ð 	ð
 Ý"Ø(�	Ü$ S¨)Ó4‘ÛØ'�	Ü! # yÓ1‘ØØ—‘Ô!à×Ñ˜4Ô à�j‰jˆØ× Ñ Ü”4—:‘:“<¤§¡¨#¯%©%¯)©)Ó!4´d·h±h¸s¿u¹u¿y¹yÓ6IÓJó
ç
‰%‹'ð 	ô 	ˆC�Õr"   c           	      óò  — | j                   j                  }t        |j                  j                  |j                  j
                  «      j                  |«      j                  |j                  j
                  t        dd¬«      k(  «      }|xdk(  r d}t        ||«      }n$dk(  rd}t        ||«      }n	 |j                  «        |j                  «       |j                  }|j                  t        t        j                  «       t        j                   |j                  j
                  «      t        j"                  |j                  j
                  «      «      «      j%                  «       }t'        |d«       y )	NÚpr<   )r.   rs   rO   ru   rP   )r;   r<   r<   )rD   r'   r   ra   r(   r,   r‹   rb   r   r   r   ry   rE   rH   r	   r£   r¤   r¥   r¦   r   r§   s	            r    Útest_with_bind_param_executesz0TableViaSelectTest.test_with_bind_param_executesä  s  € ð �k‰k×&Ñ&ˆô �3—5‘5—8‘8˜SŸU™UŸZ™ZÓ(ß‰[˜Óß‰U�3—5‘5—:‘:¤¨3°gÔ!>Ñ>Ó?ð 	ð Ý"Ø(�	Ü$ S¨)Ó4‘ÛØ'�	Ü! # yÓ1‘ØØ—‘Ô!à×Ñ˜4Ô à�j‰jˆà× Ñ Ü”4—:‘:“<¤§¡¨#¯%©%¯*©*Ó!5´t·x±xÀÇÁÇ
Á
Ó7KÓLó
ç
‰%‹'ð 	ô 	ˆCÐ&Õ'r"   c                 óx  — | j                  dd«      \  }}t        |j                  j                  «      j	                  t        |j                  j                  «      «      }|xdk(  r d}t        ||«      }n$dk(  rd}t        ||«      }n	 |j                  «        |j                  «       |j                  t        |j                  j                  j                  «      j                  |j                  j                  j                  «      «      j                  «       j                  «       }t        |g d¢«       y )Nr/   r0   rs   rO   ru   rP   )r;   r   r   rB   )rD   r   ra   r(   Ú	union_allr   r   ry   rE   rH   rd   ÚscalarsÚallr   )	rS   rG   rr   r/   r0   r©   rk   rl   Úvalss	            r    Útest_compound_select_smokez-TableViaSelectTest.test_compound_select_smoke  sâ   € ð �{‰{˜3 Ó$‰ˆˆ1ä�Q—S‘S—V‘V‹n×&Ñ&¤v¨a¯c©c¯f©f£~Ó6ˆàÝ"Ø(�	Ü$ S¨)Ó4‘ÛØ'�	Ü! # yÓ1‘ØØ—‘Ô!à×Ñ˜4Ô ð ×ÑÜ�t—z‘z—|‘|—‘Ó'×0Ñ0°·±·±·±ÓAó÷ ‰W‹Yß‰S‹Uð 	ô 	ˆD’,Õr"   c           
      óü  — t        d|t        dt        dd¬«      t        dt        «      «      }t        d|t        dt        dd¬«      t        dt        «      «      }t        d	|t        dt        dd¬«      t        d
t        «      «      }t        t	        |j
                  j                  |j
                  j                  |j
                  j                  «      j                  |j                  ||j
                  j                  |j
                  j                  k(  «      «      j                  |j
                  j                  dkD  «      d|¬«      }t        t	        |j                  j
                  j                  |j                  j
                  j                  |j
                  j                  «      j                  |j                  j                  ||j                  j
                  j                  |j
                  j                  k(  «      «      j                  |j
                  j                  dkD  «      d|¬«      }t        h d£t        |j                   «      «       |j#                  |«       t%        |«      }h d£j'                  |j)                  «       «      sJ ‚ddhj'                  |j+                  «       «      sJ ‚|j-                  |j/                  «       dddœdddœdddœg«       |j-                  |j/                  «       dddœdddœdddœg«       |j-                  |j/                  «       dddœdddœdddœg«       |j-                  t	        |j                  «      j1                  |j                  j
                  j                  «      «      j3                  «       }	t        |	g d ¢«       |j-                  t	        |j                  «      j1                  |j                  j
                  j                  «      «      j3                  «       }
t        |
d!d"g«       |j5                  |«       t%        |«      }h d£j7                  |j)                  «       «      sJ ‚ddhj7                  |j+                  «       «      sJ ‚y#)$a>  Test that views with dependencies are created/dropped in correct
        order.

        This validates that when views are attached to metadata: - create_all()
        creates base tables first, then dependent views in order - drop_all()
        drops dependent views first, then base tables in reverse order
        Úbase_table1r(   TFr)   r.   Úbase_table2ÚamountÚbase_table3Útotalr_   Úview1)r8   r=   Úview2>   r¼   r½   r·   r¸   rº   >   r·   r¸   rº   r;   é
   )r(   r.   r   é   r   é   )r(   r¹   r?   rA   r-   )r(   r»   é–   éú   ))r;   r¾   r=   )r   r¿   r?   )r   rÀ   rA   )r   r¿   rÁ   )r   rÀ   rÂ   N)r   r   r   r   r   ra   r(   r.   r¹   r‹   Újoinrb   rH   r»   r   r›   rD   rz   r
   Úissubsetr�   r€   rE   rF   rd   re   r|   Ú
isdisjoint)rS   rG   r8   Útable1Útable2Útable3Ú
view1_stmtÚ
view2_stmtro   Úview1_resultsÚview2_resultss              r    Ú$test_view_dependencies_with_metadataz7TableViaSelectTest.test_view_dependencies_with_metadata(  så  € ô ØØÜ�4œ¨dÀ%ÔHÜ�7œGÓ$ó	
ˆô ØØÜ�4œ¨dÀ%ÔHÜ�8œWÓ%ó	
ˆô ØØÜ�4œ¨dÀ%ÔHÜ�7œGÓ$ó	
ˆô  ÜØ—‘—‘Ø—‘—‘Ø—‘—‘ó÷
 ‰[˜Ÿ™ V¨V¯X©X¯[©[¸F¿H¹H¿K¹KÑ-GÓHÓIß‰U�6—8‘8—>‘> AÑ%Ó&ØØô

ˆ
ô  ÜØ× Ñ ×"Ñ"×%Ñ%Ø× Ñ ×"Ñ"×(Ñ(Ø—‘—‘ó÷
 ‰[Ø× Ñ ×%Ñ%Ø˜J×,Ñ,×.Ñ.×1Ñ1°V·X±X·[±[Ñ@óó÷
 ‰U�6—8‘8—>‘> CÑ'Ó(ØØô
ˆ
ô" 	ÚKÜ�—‘Ó ô	
ð 	×Ñ˜JÔ'ô �zÓ"ˆÚ<×EÑEØ× Ñ Ó"ô
ð 	
ð 
ð ˜Ð!×*Ñ*¨4×+>Ñ+>Ó+@ÔAÐAÐAð 	×ÑØ�M‰M‹Oà 2Ñ&Ø 2Ñ&Ø 2Ñ&ðô	
ð 	×ÑØ�M‰M‹Oà CÑ(Ø CÑ(Ø CÑ(ðô	
ð 	×ÑØ�M‰M‹Oà 2Ñ&Ø 3Ñ'Ø 3Ñ'ðô	
ð #×*Ñ*Ü�:×#Ñ#Ó$×-Ñ-¨j×.>Ñ.>×.@Ñ.@×.CÑ.CÓDó
ç
‰(‹*ð 	ô 	Øòô	
ð #×*Ñ*Ü�:×#Ñ#Ó$×-Ñ-¨j×.>Ñ.>×.@Ñ.@×.CÑ.CÓDó
ç
‰(‹*ð 	ô 	ØàØðô	
ð 	×Ñ˜*Ô%ô �zÓ"ˆÚ<×GÑGØ× Ñ Ó"ô
ð 	
ð 
ð ˜Ð!×,Ñ,¨T×-@Ñ-@Ó-BÔCÐCÑCr"   N)!Ú__name__Ú
__module__Ú__qualname__Ú__sparse_driver_backend__Úclassmethodr!   r%   r9   rJ   r   ÚfixturerT   Úcombinationsr4   Úcreate_temp_table_asr5   Útemporary_viewsrq   Ú	variationrs   Úviewsrƒ   rˆ   Útable_ddl_if_existsrŒ   Úcreate_or_replace_viewr�   Úmaterialized_viewsrž   r¬   r¯   rµ   rÍ   r–   r"   r    r   r      sã  „ Ø $Ðàñ
ó ð
ð
 ñ
ó ð
ð
 ñó ðð* ñó ðð8 €W‡_�_˜:¨tÔ4ñó 5ðð €W×ÑØ&àØØØØ×Ñ×1Ñ1ð	
ð 
�t˜U E¨7×+;Ñ+;×+CÑ+CÐDØ&Ø	�U˜D $¨×(8Ñ(8×(HÑ(HÐIØ	�t˜U D¨'×*:Ñ*:×*BÑ*BÐCØ0Øôñ 64ó!ð 64ðp €W×ÑØà × 0Ñ 0× @Ñ @ÐAØ˜G×,Ñ,×<Ñ<Ð=Ø˜G×,Ñ,×2Ñ2Ð3ð	
óð €W×ÑØààØ× Ñ ×5Ñ5Ø×"Ñ"×2Ñ2ñ3ðð	
ó
ð €W×Ñ�~¨¨e }Ó5ñP?ó 6ó
óð(P?ðd €W×ÑØà × 0Ñ 0× @Ñ @ÐAØ˜G×,Ñ,×2Ñ2Ð3ð	
óñ($óð($ðT ×Ñ×)Ñ)Ø×Ñ×%Ñ%ñ!ó &ó *ð!ð* ×Ñ×,Ñ,ñ&ó -ð&ðP ×Ñ×(Ñ(Ø€W×Ñ�~¨¨e }Ó5ñ2Bó 6ó )ð2Bðh €W×ÑØà × 0Ñ 0× @Ñ @ÐAØ˜G×,Ñ,×2Ñ2Ð3ð	
óñ óð ð2 €W×ÑØà × 0Ñ 0× @Ñ @ÐAØ˜G×,Ñ,×2Ñ2Ð3ð	
óñ(óð(ð8 €W×ÑØà × 0Ñ 0× @Ñ @ÐAØ˜G×,Ñ,×2Ñ2Ð3ð	
óñ óð ð4 ×Ñ×ÑñEDó ñEDr"   r   N)Ú r   Ú
assertionsr   Ú	provisionr   r   r   r	   r
   r   r   r   r   r   r   r3   r   r   r   r   r   r   Ú
TablesTestr   r–   r"   r    ú<module>rà      sV   ðõ Ý Ý +Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý #Ý  Ý Ý Ý Ý ôP
D˜×,Ñ,õ P
Dr"   