§
    ZøÁi?i  ã                  ó6  — 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* er0d d$lm+Z+ d d%l,m-Z- d d&l.m/Z/ d d'l.m0Z0 d d(l1m2Z2 d d)lm3Z3 d d*l4m5Z5 dd+l6m7Z7  G d,„ d-¦  «        Z8 G d.„ d/¦  «        Z9d0S )1é    )Úannotations)ÚAny)ÚDict)ÚList)ÚOptional)ÚTuple)ÚTYPE_CHECKING)ÚUnion)ÚCheckConstraint)ÚColumn)ÚForeignKeyConstraint)ÚIndex)ÚMetaData)ÚPrimaryKeyConstraint©Úschema)ÚTable)Útypes)ÚSchemaEventTarget)ÚOrderedDict)Útopologicalé   )Úexc)Ú_columns_for_constraint)Ú_copy)Ú_copy_expression)Ú_ensure_scope_for_ddl)Ú_fk_is_self_referential)Ú_idx_table_bound_expressions)Ú_insert_inline)Ú_is_type_bound)Ú_remove_column_from_collection)Ú_resolve_for_variant)Ú_select)Úconstraint_name_defined)Úconstraint_name_string)ÚLiteral)ÚDialect)ÚColumnClause)Úquoted_name)ÚFunction)Ú
Constraint)Ú
TypeEngine)ÚDefaultImplc                  ó°   — e Zd Zd„ Zedd„¦   «         Zed d„¦   «         Zd!d„Zd"d
„Zd"d„Z	d"d„Z
d"d„Zd#d„Zd#d„Zd„ Zd$d„Zd$d„Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )%ÚBatchOperationsImplc           	     óâ  — || _         || _        || _        |dvrt          d¦  «        ‚|| _        || _        || _        t          |¦  «        | _        || _	        t          |	¦  «        | _
        | j
                             dt          | j
                             dd¦  «        ¦  «        ¦  «         | j
        d                              d|j        j        f¦  «         |
| _        || _        g | _        d S )N)ÚautoÚalwaysÚneverz4recreate may be one of 'auto', 'always', or 'never'.Ú	listeners© Úcolumn_reflect)Ú
operationsÚ
table_namer   Ú
ValueErrorÚrecreateÚ	copy_fromÚ
table_argsÚdictÚtable_kwargsÚreflect_argsÚreflect_kwargsÚ
setdefaultÚlistÚgetÚappendÚimplÚautogen_column_reflectÚnaming_conventionÚpartial_reorderingÚbatch)Úselfr8   r9   r   r;   r<   r=   r?   r@   rA   rH   rI   s               úb/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/alembic/operations/batch.pyÚ__init__zBatchOperationsImpl.__init__8   s   € ð %ˆŒØ$ˆŒØˆŒØÐ6Ð6Ð6ÝØFñô ð ð !ˆŒØ"ˆŒØ$ˆŒÝ  Ñ.Ô.ˆÔØ(ˆÔÝ" >Ñ2Ô2ˆÔØÔ×&Ò&Ø�˜dÔ1×5Ò5°kÀ2ÑFÔFÑGÔGñ	
ô 	
ð 	
ð 	Ô˜KÔ(×/Ò/Ø˜zœÔEÐFñ	
ô 	
ð 	
ð "3ˆÔØ"4ˆÔØˆŒ
ˆ
ˆ
ó    Úreturnr(   c                ó$   — | j         j        j        S ©N)r8   rF   Údialect©rK   s    rL   rR   zBatchOperationsImpl.dialect]   s   € àŒÔ#Ô+Ð+rN   r.   c                ó   — | j         j        S rQ   )r8   rF   rS   s    rL   rF   zBatchOperationsImpl.impla   s   € àŒÔ#Ð#rN   Úboolc                ót   — | j         dk    r| j        j                             | ¦  «        S | j         dk    rdS dS )Nr2   r3   TF)r;   r8   rF   Úrequires_recreate_in_batchrS   s    rL   Ú_should_recreatez$BatchOperationsImpl._should_recreatee   s?   € ØŒ=˜FÒ"Ð"Ø”?Ô'×BÒBÀ4ÑHÔHÐHØŒ]˜hÒ&Ð&Ø�4à�5rN   ÚNonec           	     óP  — |                       ¦   «         }t          | j        j        ¦  «        5  |s2| j        D ](\  }}}t          | j        j        |¦  «        } ||i |¤Ž Œ)�n+| j        rt          | j        ¬¦  «        }nt          ¦   «         }| j	        �
| j	        }d}n†| j        j
        j        r4t          j        d| j        j
        j        j        › d| j        › d�¦  «        ‚t#          | j        |g| j        ¢R | j        | j                             ¦   «         dœ| j        ¤Ž}d}t-          | j        || j        | j        || j        ¬¦  «        }	| j        D ]\  }}}t          |	|¦  «        } ||i |¤Ž Œ|	                     | j        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	N)rH   FzEThis operation cannot proceed in --sql mode; batch mode with dialect zF requires a live database connection with which to reflect the table "zØ". To generate a batch SQL migration script using table "move and copy", a complete Table object should be passed to the "copy_from" argument of the batch_alter_table() method so that table reflection can be skipped.)r   Úautoload_withT)rI   )rX   r   rF   Ú
connectionrJ   Úgetattrr8   rH   r   r<   Úmigration_contextÚas_sqlr   ÚCommandErrorrR   Únamer9   r   r@   r   Úget_bindrA   ÚApplyBatchImplr=   r?   rI   Ú_create)
rK   Úshould_recreateÚopnameÚargÚkwÚfnÚm1Úexisting_tableÚ	reflectedÚ
batch_impls
             rL   ÚflushzBatchOperationsImpl.flushm   sQ  € Ø×/Ò/Ñ1Ô1ˆå" 4¤9Ô#7Ñ8Ô8ð 4	.ð 4	.Ø"ð 3.Ø'+¤zð #ð #‘O�F˜C Ý  ¤Ô!5°vÑ>Ô>�BØ�B˜�N˜r�N�N�N�Nñ#ð Ô)ð $Ý!°DÔ4JÐKÑKÔK�B�Bå!™œ�Bà”>Ð-Ø%)¤^�NØ %�I�Ià”Ô8Ô?ð Ý!Ô.ð
9à#œÔ@ÔHÔMð
9ð 
9ð 6:´_ð	
9ð 
9ð 
9ñô ð õ &+ØœØð&ð
 Ô*ð&ð &ð  $œ{Ø&*¤o×&>Ò&>Ñ&@Ô&@ð	&ð &ð Ô-ð&ð &�Nð !%�Iå+Ø”IØ"Ø”OØÔ%ØØ'+Ô'>ðñ ô �
ð (,¤zð #ð #‘O�F˜C Ý  ¨VÑ4Ô4�BØ�B˜�N˜r�N�N�N�Nà×"Ò" 4¤9Ñ-Ô-Ð-ði4	.ð 4	.ð 4	.ñ 4	.ô 4	.ð 4	.ð 4	.ð 4	.ð 4	.ð 4	.ð 4	.ð 4	.øøøð 4	.ð 4	.ð 4	.ð 4	.ð 4	.ð 4	.s   ®E FÆFÆ"Fc                ó@   — | j                              d||f¦  «         d S )NÚalter_column©rJ   rE   ©rK   rg   rh   s      rL   rp   z BatchOperationsImpl.alter_column¦   ó%   € ØŒ
×Ò˜>¨3°Ð3Ñ4Ô4Ð4Ð4Ð4rN   c                ó    — d|v sd|v r(|                       ¦   «         st          j        d¦  «        ‚| j                             d||f¦  «         d S )NÚinsert_beforeÚinsert_afterz^Can't specify insert_before or insert_after when using ALTER; please specify recreate='always'Ú
add_column)rX   r   r`   rJ   rE   rr   s      rL   rw   zBatchOperationsImpl.add_column©   sj   € à˜rÐ!Ð! ^°rÐ%9Ð%9Ø×'Ò'Ñ)Ô)ð &:åÔ"ð:ñô ð ð 	Œ
×Ò˜<¨¨bÐ1Ñ2Ô2Ð2Ð2Ð2rN   c                ó@   — | j                              d||f¦  «         d S )NÚdrop_columnrq   rr   s      rL   ry   zBatchOperationsImpl.drop_column³   s%   € ØŒ
×Ò˜=¨#¨rÐ2Ñ3Ô3Ð3Ð3Ð3rN   Úconstr,   c                óB   — | j                              d|fi f¦  «         d S )NÚadd_constraintrq   ©rK   rz   s     rL   r|   z"BatchOperationsImpl.add_constraint¶   s(   € ØŒ
×ÒÐ+¨e¨X°rÐ:Ñ;Ô;Ð;Ð;Ð;rN   c                óB   — | j                              d|fi f¦  «         d S )NÚdrop_constraintrq   r}   s     rL   r   z#BatchOperationsImpl.drop_constraint¹   s(   € ØŒ
×ÒÐ,¨u¨h¸Ð;Ñ<Ô<Ð<Ð<Ð<rN   c                ó@   — | j                              d||f¦  «         d S )NÚrename_tablerq   rr   s      rL   r�   z BatchOperationsImpl.rename_table¼   rs   rN   Úidxr   rh   r   c                óB   — | j                              d|f|f¦  «         d S )NÚcreate_indexrq   ©rK   r‚   rh   s      rL   r„   z BatchOperationsImpl.create_index¿   s'   € ØŒ
×Ò˜>¨C¨6°2Ð6Ñ7Ô7Ð7Ð7Ð7rN   c                óB   — | j                              d|f|f¦  «         d S )NÚ
drop_indexrq   r…   s      rL   r‡   zBatchOperationsImpl.drop_indexÂ   s'   € ØŒ
×Ò˜<¨#¨°Ð4Ñ5Ô5Ð5Ð5Ð5rN   c                óB   — | j                              d|fi f¦  «         d S )NÚcreate_table_commentrq   ©rK   Útables     rL   r‰   z(BatchOperationsImpl.create_table_commentÅ   s(   € ØŒ
×ÒÐ1°E°8¸RÐ@ÑAÔAÐAÐAÐArN   c                óB   — | j                              d|fi f¦  «         d S )NÚdrop_table_commentrq   rŠ   s     rL   r�   z&BatchOperationsImpl.drop_table_commentÈ   s(   € ØŒ
×ÒÐ/°%°¸2Ð>Ñ?Ô?Ð?Ð?Ð?rN   c                ó    — t          d¦  «        ‚)Nz Can't create table in batch mode©ÚNotImplementedErrorrŠ   s     rL   Úcreate_tablez BatchOperationsImpl.create_tableË   s   € Ý!Ð"DÑEÔEÐErN   c                ó    — t          d¦  «        ‚)NzCan't drop table in batch moder�   rŠ   s     rL   Ú
drop_tablezBatchOperationsImpl.drop_tableÎ   s   € Ý!Ð"BÑCÔCÐCrN   c                óB   — | j                              d|fi f¦  «         d S )NÚcreate_column_commentrq   ©rK   Úcolumns     rL   r•   z)BatchOperationsImpl.create_column_commentÑ   s(   € ØŒ
×ÒÐ2°V°I¸rÐBÑCÔCÐCÐCÐCrN   N)rO   r(   )rO   r.   )rO   rU   ©rO   rY   ©rz   r,   rO   rY   )r‚   r   rh   r   rO   rY   )Ú__name__Ú
__module__Ú__qualname__rM   ÚpropertyrR   rF   rX   rn   rp   rw   ry   r|   r   r�   r„   r‡   r‰   r�   r‘   r“   r•   r6   rN   rL   r0   r0   7   s„  € € € € € ð#ð #ð #ðJ ð,ð ,ð ,ñ „Xð,ð ð$ð $ð $ñ „Xð$ðð ð ð ð7.ð 7.ð 7.ð 7.ðr5ð 5ð 5ð 5ð3ð 3ð 3ð 3ð4ð 4ð 4ð 4ð<ð <ð <ð <ð=ð =ð =ð =ð5ð 5ð 5ð8ð 8ð 8ð 8ð6ð 6ð 6ð 6ðBð Bð Bð@ð @ð @ðFð Fð FðDð Dð DðDð Dð Dð Dð DrN   r0   c                  óÎ   — e Zd Z	 dFdGd„ZedHd„¦   «         ZdId„ZdId„ZdId„ZdJd„Z	dKd„Z
dLd„Z	 	 	 	 	 	 dMdNd0„ZdOd4„Z	 	 dPdQd7„ZdRd9„Zd:„ Zd;„ Zd<„ ZdSd?„ZdSd@„ZdTdC„ZdTdD„ZdE„ Zd S )Urc   r6   rF   r.   r‹   r   r=   Útupler?   úDict[str, Any]rl   rU   rI   rO   rY   c                ó^  — || _         || _        || _        || _        |                      |j        ¦  «        | _        d | _        || _        d| _	        t          d„ | j        j        D ¦   «         ¦  «        | _        t          | j        ¦  «        | _        || _        |                      ¦   «          d S )Nr6   c              3  ó,   K  — | ]}|j         d |ifV — ŒdS ©ÚexprN)ra   ©Ú.0Úcs     rL   ú	<genexpr>z*ApplyBatchImpl.__init__.<locals>.<genexpr>ë   s>   è è € ð ,
ð ,
Ø&'ˆQŒV�f˜a�[Ð!ð,
ð ,
ð ,
ð ,
ð ,
ð ,
rN   )rF   r‹   r=   r?   Ú_calc_temp_namera   Útemp_table_nameÚ	new_tablerI   Úadd_col_orderingr   r§   Úcolumn_transfersrC   Úexisting_orderingrl   Ú_grab_table_elements)rK   rF   r‹   r=   r?   rl   rI   s          rL   rM   zApplyBatchImpl.__init__Ö   s½   € ð ˆŒ	ØˆŒ
Ø$ˆŒØ(ˆÔØ#×3Ò3°E´JÑ?Ô?ˆÔØ*.ˆŒà"4ˆÔð ð 	Ôõ !,ð ,
ð ,
Ø+/¬:¬<ð,
ñ ,
ô ,
ñ !
ô !
ˆÔõ "& dÔ&;Ñ!<Ô!<ˆÔà"ˆŒØ×!Ò!Ñ#Ô#Ð#Ð#Ð#rN   Ú	tablenameúUnion[quoted_name, str]Ústrc                ó   — d|z  dd…         S )Nz_alembic_tmp_%sr   é2   r6   )Úclsr°   s     rL   r©   zApplyBatchImpl._calc_temp_nameó   s   € à! IÑ-¨q°¨tÔ4Ð4rN   c                óz  — | j         j        }t          ¦   «         | _        | j         j        D ]Z}t          ||¬¦  «        }dx|_        |_        t          |j	        t          ¦  «        r|j	        |j	        usJ ‚|| j        |j        <   Œ[i | _        g | _        i | _        i | _        i | _        | j         j        D ]t}t%          |¦  «        rŒ| j        rt          |t(          ¦  «        r|j        sŒ6t+          |j        ¦  «        r|| j        |j        <   ŒZ| j                             |¦  «         Œu| j        s1| j         j        D ]$}|j        D ]}|j        r||f| j        |j        <   ŒŒ%| j         j        D ]}|| j        |j        <   Œ| j         j        D ]-}| j                             || j         j        |         ¦  «         Œ.d S )Nr   F)r‹   r   r   Úcolumnsr§   r   ÚuniqueÚindexÚ
isinstanceÚtyper   ra   Únamed_constraintsÚunnamed_constraintsÚcol_named_constraintsÚindexesÚnew_indexesÚconstraintsr!   rl   r   r&   rE   Úkwargsr?   rB   )rK   r   r§   Úc_copyrz   Úcolr‚   Úks           rL   r¯   z#ApplyBatchImpl._grab_table_elements÷   s  € Ø”Ô"ˆÝ/:©}¬}ˆŒØ””ð 	*ð 	*ˆAÝ˜1 VÐ,Ñ,Ô,ˆFØ+0Ð0ˆFŒM˜FœLõ ˜!œ&Õ"3Ñ4Ô4ð 1Ø”{¨!¬&Ð0Ð0Ð0Ð0Ø#)ˆDŒL˜œÑ Ð Ø8:ˆÔØ#%ˆÔ Ø%'ˆÔ"Ø)+ˆŒØ-/ˆÔà”ZÔ+ð 	7ð 	7ˆEÝ˜eÑ$Ô$ð 7Øà”ð7å˜u¥oÑ6Ô6ð7ð œ
ð7ð Ý'¨¬
Ñ3Ô3ð 7Ø5:�Ô& u¤zÑ2Ð2àÔ(×/Ò/°Ñ6Ô6Ð6Ð6àŒ~ð 	NØ”z”|ð Nð N�Ø œ_ð Nð N�EØ”zð NØBEÀuÀ˜Ô2°5´:Ñ>øðNð ”:Ô%ð 	)ð 	)ˆCØ%(ˆDŒL˜œÑ"Ð"à”Ô"ð 	Bð 	BˆAØÔ×(Ò(¨¨D¬JÔ,=¸aÔ,@ÑAÔAÐAÐAð	Bð 	BrN   c                óz  ‡ — t          ¦   «         }t          ‰ j        ¦  «        }‰ j        rF‰ j        D ]=}t	          |¦  «        D ]+\  }}|dk    r |                     ||dz
           |f¦  «         Œ,Œ>n@t	          ‰ j        ¦  «        D ]+\  }}|dk    r |                     ||dz
           |f¦  «         Œ,|                     ‰ j        ¦  «         d„ |D ¦   «         }t          t          j
        ||d¬¦  «        ¦  «        }t          ˆ fd„|D ¦   «         ¦  «        ‰ _        t          ˆ fd„|D ¦   «         ¦  «        ‰ _        d S )Nr   é   c                ó6   — g | ]}|d          |d         k    ¯|‘ŒS )r   rÇ   r6   )r¦   Úps     rL   ú
<listcomp>zNApplyBatchImpl._adjust_self_columns_for_partial_reordering.<locals>.<listcomp>9  s%   € Ð7Ð7Ð7˜A¨!¨A¬$°!°A´$ª,¨,�a¨,¨,¨,rN   T)Údeterministic_orderc              3  ó6   •K  — | ]}|‰j         |         fV — Œd S rQ   )r·   ©r¦   rÅ   rK   s     €rL   r¨   zMApplyBatchImpl._adjust_self_columns_for_partial_reordering.<locals>.<genexpr>>  s.   øè è € Ð"IÐ"I¸A A t¤|°A¤Ð#7Ð"IÐ"IÐ"IÐ"IÐ"IÐ"IrN   c              3  ó6   •K  — | ]}|‰j         |         fV — Œd S rQ   )r­   rÍ   s     €rL   r¨   zMApplyBatchImpl._adjust_self_columns_for_partial_reordering.<locals>.<genexpr>?  sA   øè è € ð ,
ð ,
Ø./ˆQ�Ô% aÔ(Ð)ð,
ð ,
ð ,
ð ,
ð ,
ð ,
rN   )ÚsetrC   r·   rI   Ú	enumerateÚaddr®   Úupdater¬   r   Úsortr   r­   )rK   ÚpairsÚ
col_by_idxÚtuple_r¹   ÚelemÚ
pairs_listÚsorted_s   `       rL   Ú+_adjust_self_columns_for_partial_reorderingz:ApplyBatchImpl._adjust_self_columns_for_partial_reordering%  sƒ  ø€ Ý‘”ˆå˜$œ,Ñ'Ô'ˆ
àÔ"ð 	=ØÔ1ð =ð =�Ý#,¨VÑ#4Ô#4ð =ð =‘K�E˜4Ø˜q’y�yØŸ	š	 6¨%°!©)Ô#4°dÐ";Ñ<Ô<Ð<øð=ð=õ
  )¨Ô)?Ñ@Ô@ð =ð =‘��tØ˜1’9�9Ø—I’I˜z¨%°!©)Ô4°dÐ;Ñ<Ô<Ð<øà�Š�TÔ*Ñ+Ô+Ð+ð
 8Ð7 Ð7Ñ7Ô7ˆ
åÝÔ˜Z¨ÈÐNÑNÔNñ
ô 
ˆõ #Ð"IÐ"IÐ"IÐ"IÀÐ"IÑ"IÔ"IÑIÔIˆŒÝ +ð ,
ð ,
ð ,
ð ,
Ø3:ð,
ñ ,
ô ,
ñ !
ô !
ˆÔÐÐrN   c                ód  — | j         �
J d¦   «         ‚t          ¦   «         }| j        j        }| j        s| j        r|                      ¦   «          t          | j        |gt          | j
                             ¦   «         ¦  «        t          | j        ¦  «        z   ¢R d|i| j        ¤Žx| _         }t          | j                             ¦   «         ¦  «        | j        z   D ]Ö}d„ t!          |¦  «        D ¦   «         }|                     | j        ¦  «        sŒ6t'          |t(          ¦  «        r9t+          |¦  «        rt-          ||| j        ¬¦  «        }n$t-          ||¬¦  «        }nt-          |||¬¦  «        }t'          |t(          ¦  «        r|                      ||¦  «         |                     |¦  «         Œ×d S )NzCan only create new table oncer   c                ó   — h | ]	}|j         ’Œ
S r6   )Úkeyr¥   s     rL   ú	<setcomp>zAApplyBatchImpl._transfer_elements_to_new_table.<locals>.<setcomp>W  s   € ÐKÐKÐK q˜QœUÐKÐKÐKrN   )r   Útarget_tabler   )r«   r   r‹   r   rI   r¬   rÚ   r   rª   rC   r·   Úvaluesr=   r?   r¼   r½   r   Úissubsetr­   rº   r   r   r   Ú_setup_referentÚappend_constraint)rK   Úmr   r«   rz   Úconst_columnsÚ
const_copys          rL   Ú_transfer_elements_to_new_tablez.ApplyBatchImpl._transfer_elements_to_new_tableC  sò  € ØŒ~Ð%Ð%Ð'GÑ%Ô%Ð%å‰JŒJˆØ”Ô"ˆàÔ"ð 	? dÔ&;ð 	?Ø×<Ò<Ñ>Ô>Ð>å%*ØÔ Øð&
õ �4”<×&Ò&Ñ(Ô(Ñ)Ô)­D°´Ñ,AÔ,AÑAð&
ð &
ð &
ð ð	&
ð
 Ôð&
ð &
ð 	
ˆŒ˜õ �Ô'×.Ò.Ñ0Ô0Ñ1Ô1°DÔ4LÑLð	4ð 	4ˆEð LÐKÕ,CÀEÑ,JÔ,JÐKÑKÔKˆMà ×)Ò)¨$Ô*?Ñ@Ô@ð Øõ ˜%Õ!5Ñ6Ô6ð Ý*¨5Ñ1Ô1ð =õ "'Ø f¸4¼:ð"ñ "ô "�J�Jõ "' u°VÐ!<Ñ!<Ô!<�J�Jå"Ø &°yðñ ô �
õ ˜%Õ!5Ñ6Ô6ð /Ø×$Ò$ Q¨Ñ.Ô.Ð.Ø×'Ò'¨
Ñ3Ô3Ð3Ð3ð?	4ð 	4rN   úList[Index]c           	     óö  ‡ — ‰ j         €J ‚g }‰ j                             ¦   «         D ]_}|j        rŒ
t	          |j        gˆ fd„t          |¦  «        D ¦   «         ¢R |j        ‰ j         dœ|j        ¤Ž}| 	                    |¦  «         Œ`‰ j
                             ¦   «         D ]Y}| 	                    t	          |j        gˆ fd„|j                             ¦   «         D ¦   «         ¢R d|j        i|j        ¤Ž¦  «         ŒZ|S )Nc                ó:   •— g | ]}t          |‰j        ¦  «        ‘ŒS r6   )r   r«   )r¦   r¤   rK   s     €rL   rÊ   zCApplyBatchImpl._gather_indexes_from_both_tables.<locals>.<listcomp>‚  s5   ø€ ð ð ð àõ % T¨4¬>Ñ:Ô:ðð ð rN   )r¸   Ú_tablec                ó4   •— g | ]}‰j         j        |         ‘ŒS r6   )r«   r§   )r¦   rÄ   rK   s     €rL   rÊ   zCApplyBatchImpl._gather_indexes_from_both_tables.<locals>.<listcomp>�  s#   ø€ ÐLÐLÐL°�d”nÔ& sÔ+ÐLÐLÐLrN   r¸   )r«   r¿   rà   Ú_column_flagr   ra   r   r¸   rÂ   rE   rÀ   r·   Úkeys)rK   r‚   Úidx_existingÚidx_copyr¹   s   `    rL   Ú _gather_indexes_from_both_tablesz/ApplyBatchImpl._gather_indexes_from_both_tablesu  sj  ø€ ØŒ~Ð)Ð)Ð)Øˆà œL×/Ò/Ñ1Ô1ð 	!ð 	!ˆLð Ô(ð ØåØÔ!ð	ðð ð ð å <¸\Ñ JÔ Jðñ ô ð	ð 	à#Ô*ð
 ”~ð	ð 	ð Ô%ð	ð 	ˆHð �JŠJ�xÑ Ô Ð Ð àÔ%×,Ò,Ñ.Ô.ð 	ð 	ˆEØ�JŠJÝØ”Jðð MÐLÐLÐL°u´}×7IÒ7IÑ7KÔ7KÐLÑLÔLðð ð à œ<ðð ”lð	ð ñô ð ð ð ˆ
rN   Úmetadatar   Ú
constraintr   c                óX  ‡— |j         d                              ¦   «         }|                     d¦  «        }|d         }t          |¦  «        dk    r	|d         }nd }|| j        k    rÃt          j        ||¦  «        }dd„Š||j        v rs|j        |         }|j         D ]\}	 ‰|	¦  «                             d¦  «        d         }
|
|j        vr-| 	                    t          |
t          j        ¦  «        ¦  «         Œ]d S t          ||gd	„ ˆfd
„|j         D ¦   «         D ¦   «         ¢R d|iŽ d S d S )Nr   ú.éþÿÿÿé   r×   r   c                ó*   — |                       ¦   «         S rQ   )Ú_get_colspec)r×   s    rL   Úcolspecz/ApplyBatchImpl._setup_referent.<locals>.colspec¤  s   € Ø×(Ò(Ñ*Ô*Ð*rN   éÿÿÿÿc                óB   — g | ]}t          |t          j        ¦  «        ‘ŒS r6   )r   ÚsqltypesÚNULLTYPE)r¦   Úns     rL   rÊ   z2ApplyBatchImpl._setup_referent.<locals>.<listcomp>±  s5   € ð ð ð àõ ˜q¥(Ô"3Ñ4Ô4ðð ð rN   c                óX   •— g | ]&} ‰|¦  «                              d ¦  «        d         ‘Œ'S )rõ   rû   )Úsplit)r¦   r×   rú   s     €rL   rÊ   z2ApplyBatchImpl._setup_referent.<locals>.<listcomp>³  sD   ø€ ð "ð "ð "à $ð $˜G D™MœM×/Ò/°Ñ4Ô4°RÔ8ð"ð "ð "rN   r   )r×   r   )Úelementsrù   r  Úlenrª   Ú
sql_schemaÚ_get_table_keyÚtablesr§   Úappend_columnr   rý   rþ   r   )rK   rò   ró   ÚspecÚpartsÚtnameÚreferent_schemarÝ   Útr×   Úcolnamerú   s              @rL   râ   zApplyBatchImpl._setup_referent–  s˜  ø€ ð Ô" 1Ô%×2Ò2Ñ4Ô4ˆØ—
’
˜3‘”ˆØ�b”	ˆÝˆu‰:Œ:˜Š?ˆ?Ø# AœhˆOˆOà"ˆOà�DÔ(Ò(Ð(ÝÔ+¨E°?ÑCÔCˆCð+ð +ð +ð +ð �h”oÐ%Ð%Ø”O CÔ(�Ø&Ô/ð Lð L�DØ%˜g d™mœm×1Ò1°#Ñ6Ô6°rÔ:�GØ a¤cÐ)Ð)ØŸš­¨w½Ô8IÑ(JÔ(JÑKÔKÐKøðLð Lõ
 ØØððð ð"ð "ð "ð "à(2Ô(;ð"ñ "ô "ðñ ô ðð ð ð +ðð ð ð ð ð )Ð(rN   Úop_implc           
     óz  — |                       ¦   «          |                     | | j        ¦  «         | j        €J ‚|                     | j        ¦  «         	 |                     t          | j        ¦  «                             t          d„ | j	         
                    ¦   «         D ¦   «         ¦  «        t          d„ | j	                             ¦   «         D ¦   «         Ž ¦  «        ¦  «         |                     | j        ¦  «         |                     | j        | j        j        | j        j        ¬¦  «         | j        j        | j        _        	 |                      ¦   «         D ]}|                     |¦  «         Œ	 | j        | j        _        d S # | j        | j        _        w xY w#  |                     | j        ¦  «         ‚ xY w)Nc              3  ó(   K  — | ]\  }}d |v ¯	|V — ŒdS r£   r6   )r¦   rÅ   Útransfers      rL   r¨   z)ApplyBatchImpl._create.<locals>.<genexpr>Å  s=   è è € ð ð á'˜A˜xØ! XÐ-Ð-ð à-Ð-Ð-Ð-ðð rN   c                ó&   — g | ]}d |v ¯|d          ‘ŒS )r¤   r6   )r¦   r  s     rL   rÊ   z*ApplyBatchImpl._create.<locals>.<listcomp>Ë  s2   € ð ð ð à (Ø%¨Ð1Ð1ð % VÔ,à1Ð1Ð1rN   r   )rç   Úprep_table_for_batchr‹   r«   r‘   Ú_execr    Úfrom_selectrC   r­   Úitemsr$   rà   r“   r�   rª   ra   r   rñ   r„   )rK   r  r‚   s      rL   rd   zApplyBatchImpl._create»  sÛ  € Ø×,Ò,Ñ.Ô.Ð.à×$Ò$ T¨4¬:Ñ6Ô6Ð6ØŒ~Ð)Ð)Ð)Ø×Ò˜Tœ^Ñ,Ô,Ð,ð	;Ø�MŠMÝ˜tœ~Ñ.Ô.×:Ò:Ýð ð à+/Ô+@×+FÒ+FÑ+HÔ+Hðñ ô ñ ô õ
 ðð à,0Ô,A×,HÒ,HÑ,JÔ,Jðñ ô ðñô ñô ð ð  ×Ò˜tœzÑ*Ô*Ð*ð
 × Ò ØÔ$ d¤j¤o¸d¼jÔ>Oð !ñ ô ð ð #'¤*¤/ˆDŒNÔð;Ø×@Ò@ÑBÔBð .ð .�CØ×(Ò(¨Ñ-Ô-Ð-Ð-ð.ð '+Ô&:�”Ô#Ð#Ð#ø dÔ&:�”Ô#Ð:Ð:Ð:Ð:øð	Ø×Ò˜tœ~Ñ.Ô.Ð.Øøøøs   ÁB+F Å,F ÆFÆF:NFr9   Úcolumn_nameÚnullableúOptional[bool]Úserver_defaultú)Optional[Union[Function[Any], str, bool]]ra   úOptional[str]Útype_úOptional[TypeEngine]Úautoincrementú&Optional[Union[bool, Literal['auto']]]ÚcommentúUnion[str, Literal[False]]c	                óâ  — | j         |         }
| j        |         }|�†||k    r€||
_        ||d<   |	                     dd ¦  «        }|r\t	          |	d         | j        j        ¦  «        }t          |t          ¦  «        r'|j        r | j	         
                    |j        d ¦  «         |�it          j        |¦  «        }t          |
j        t          ¦  «        rdx|
j        _        |
j        _        | j                             |
||¦  «         ||
_        |�||
_        |dur1|€d |
_        n't'          j        |¦  «                             |
¦  «         |�t-          |¦  «        |
_        |dur	||
_        d S d S )Nra   Úexisting_typeF)r·   r­   ra   rD   r#   rF   rR   rº   r   r¼   Úpoprý   Úto_instancer»   Ú_create_eventsÚcreate_constraintÚcast_for_batch_migrater  r  r  ÚDefaultClauseÚ_set_parentrU   r  r!  )rK   r9   r  r  r  ra   r  r  r!  rh   ÚexistingÚexisting_transferr$  Úresolved_existing_types                 rL   rp   zApplyBatchImpl.alter_columnâ  s¾  € ð ”< Ô,ˆØ,0Ô,AÀ+Ô,NÐØÐ ¨Ò 3Ð 3ð !ˆHŒMØ(,Ð˜fÑ%àŸFšF ?°DÑ9Ô9ˆMØð Ý)=Ø�Ô'¨¬Ô):ñ*ô *Ð&õ Ð5Õ7HÑIÔIðà.Ô3ðð Ô*×.Ò.Ø.Ô3Øñô ð ð
 ÐÝÔ(¨Ñ/Ô/ˆEõ ˜(œ-Õ):Ñ;Ô;ð ð ð�”Ô,Ø”MÔ3ð ŒI×,Ò,ØÐ+¨Uñô ð ð "ˆHŒMð ÐØ (ˆHÔØ Ð&Ð&ØÐ%Ø*.�Ô'Ð'åÔ(Ø"ñô ç’+˜hÑ'Ô'Ð'ØÐ$Ý%)¨-Ñ%8Ô%8ˆHÔ"à˜%ÐÐØ&ˆHÔÐÐð  ÐrN   r  ru   rv   c                ó  — | j         }d„ t          |¦  «        D ¦   «         }| j        s‚|rG|sE||v r'||         dz   }|t          |¦  «        k     r||         }nt	          | j        ¦  «        |         }|r7|s5||v r||         dz
  }|dk    r||         }nd„ | j        D ¦   «         |         }|r| xj        ||ffz  c_        |r| xj        ||ffz  c_        | j        s!|s!|s!|r!| xj        |d         |ffz  c_        d S d S d S d S d S )Nc                ó   — i | ]\  }}||“Œ	S r6   r6   )r¦   Úira   s      rL   ú
<dictcomp>zEApplyBatchImpl._setup_dependencies_for_add_column.<locals>.<dictcomp>4  s   € ÐDÐDÐD¡7 1 d�t˜QÐDÐDÐDrN   rÇ   r   c                ó   — i | ]\  }}||“Œ	S r6   r6   )r¦   ÚaÚbs      rL   r2  zEApplyBatchImpl._setup_dependencies_for_add_column.<locals>.<dictcomp>L  s+   € ð (ð (ð (Ù%) Q¨˜A˜qð(ð (ð (rN   rû   )r®   rÐ   rI   r  r>   r¬   )rK   r  ru   rv   Ú
index_colsÚcol_indexesr‚   s          rL   Ú"_setup_dependencies_for_add_columnz1ApplyBatchImpl._setup_dependencies_for_add_column-  sÊ  € ð Ô+ˆ
ØDÐD­i¸
Ñ.CÔ.CÐDÑDÔDˆàÔ&ð 	)Øð Ø$ð 
Ø# {Ð2Ð2à)¨,Ô7¸!Ñ;˜Ø¥ Z¡¤Ò0Ð0Ø,6°s¬O˜Møõ )-¨TÔ-BÑ(CÔ(CØ(ô)˜ð ð )Ø#ð 
)Ø$¨Ð3Ð3à)¨-Ô8¸1Ñ<˜Ø !š8˜8Ø+5°c¬?˜Løð(ð (Ø-1Ô-Bð(ñ (ô (à'ô()˜ð ð 	AØÐ!Ô! w°Ð&>Ð%@Ñ@Ð!Ô!Øð 	@ØÐ!Ô! |°WÐ&=Ð%?Ñ?Ð!Ô!ð Ô'ð	Bà!ð	Bð !ð	Bð ð		Bð Ð!Ô! z°"¤~°wÐ&?Ð%AÑAÐ!Ô!Ð!Ð!ð	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	BrN   r—   úColumn[Any]c                ó¬   — |                       |j        ||¦  «         t          || j        j        ¬¦  «        | j        |j        <   i | j        |j        <   d S )Nr   )r8  ra   r   r‹   r   r·   r­   )rK   r9   r—   ru   rv   rh   s         rL   rw   zApplyBatchImpl.add_column]  s\   € ð 	×/Ò/ØŒK˜¨ñ	
ô 	
ð 	
õ
 %*¨&¸¼Ô9JÐ$KÑ$KÔ$KˆŒ�V”[Ñ!Ø-/ˆÔ˜fœkÑ*Ð*Ð*rN   ú%Union[ColumnClause[Any], Column[Any]]c                ó–  — |j         | j        j        j        v rt	          | j        j        j        |¦  «         | j        |j         = | j        |j         = | j                             |j         ¦  «         d|v rPt          |d         t          ¦  «        r7|d         j         r,| j
                             |d         j         d ¦  «         d S d S d S d S )Nr$  )ra   r‹   Úprimary_keyr·   r"   r­   r®   Úremoverº   r   r¼   r%  )rK   r9   r—   rh   s       rL   ry   zApplyBatchImpl.drop_columnm  sé   € ð Œ;˜$œ*Ô0Ô8Ð8Ð8Ý*Ø”
Ô&Ô.°ñô ð ð ŒL˜œÐ%ØÔ! &¤+Ð.ØÔ×%Ò% f¤kÑ2Ô2Ð2ð ˜rÐ!Ð!Ý˜2˜oÔ.Õ0AÑBÔBð "à�?Ô#Ô(ð "ð Ô"×&Ò&Ø�?Ô#Ô(¨$ñô ð ð ð ð	 "Ð!Ð!Ð!Ð!Ð!rN   c                ó   — dS )a^  the batch table creation function will issue create_column_comment
        on the real "impl" as part of the create table process.

        That is, the Column object will have the comment on it already,
        so when it is received by add_column() it will be a normal part of
        the CREATE TABLE and doesn't need an extra step here.

        Nr6   r–   s     rL   r•   z$ApplyBatchImpl.create_column_comment…  ó   € € € rN   c                ó   — dS )z‹the batch table creation function will issue create_table_comment
        on the real "impl" as part of the create table process.

        Nr6   rŠ   s     rL   r‰   z#ApplyBatchImpl.create_table_comment�  r@  rN   c                ó   — dS )z‰the batch table creation function will issue drop_table_comment
        on the real "impl" as part of the create table process.

        Nr6   rŠ   s     rL   r�   z!ApplyBatchImpl.drop_table_comment•  r@  rN   rz   r,   c                ól  — t          |j        ¦  «        st          d¦  «        ‚t          |t          j        ¦  «        r7| j        j        | j        v r$| j         	                    | j        j        ¦  «         t          |j        ¦  «        r|| j        |j        <   d S | j                             |¦  «         d S )NúConstraint must have a name)r%   ra   r:   rº   r  r   r‹   r=  r½   r>  r&   r¼   rE   r}   s     rL   r|   zApplyBatchImpl.add_constraint›  s¬   € Ý& u¤zÑ2Ô2ð 	<ÝÐ:Ñ;Ô;Ð;Ý�e�ZÔ<Ñ=Ô=ð 	HØŒzÔ%¨Ô)AÐAÐAØÔ(×/Ò/°´
Ô0FÑGÔGÐGå! %¤*Ñ-Ô-ð 	3Ø16ˆDÔ" 5¤:Ñ.Ð.Ð.àÔ$×+Ò+¨EÑ2Ô2Ð2Ð2Ð2rN   c                óä  — |j         st          d¦  «        ‚	 |j         | j        v r„| j                             |j         ¦  «        \  }}t	          | j        |j                  j        ¦  «        D ]<}|j         |j         k    r*| j        |j                  j                             |¦  «         Œ=nWt          |j         ¦  «        r | j	                             |j         ¦  «        }n#|| j
        v r| j
                             |¦  «         t          |t          ¦  «        r!|j        D ]}d| j        |j                  _        Œd S d S # t          $ r* t          |¦  «        rY d S t          d|j         z  ¦  «        ‚w xY w)NrD  FzNo such constraint: '%s')ra   r:   r¾   r%  rC   r·   rÁ   r>  r&   r¼   r½   rº   r   r=  ÚKeyErrorr!   )rK   rz   rÄ   Ú	col_consts       rL   r   zApplyBatchImpl.drop_constraint§  s˜  € ØŒzð 	<ÝÐ:Ñ;Ô;Ð;ð	?ØŒz˜TÔ7Ð7Ð7Ø!Ô7×;Ò;¸E¼JÑGÔG‘
��Uå!% d¤l°3´8Ô&<Ô&HÑ!IÔ!Ið Mð M�IØ ”~¨¬Ò3Ð3Øœ S¤XÔ.Ô:×AÒAÀ)ÑLÔLÐLøðMõ (¨¬
Ñ3Ô3ð 7ØÔ.×2Ò2°5´:Ñ>Ô>��Ø˜$Ô2Ð2Ð2ØÔ(×/Ò/°Ñ6Ô6Ð6õ ˜%Õ!5Ñ6Ô6ð ?Ø œ=ð ?ð ?�CØ9>�D”L ¤Ô*Ô6Ð6ð?ð ?ð?ð ?øõ ð 	Fð 	Fð 	FÝ˜eÑ$Ô$ð ð
 ��ÝÐ7¸%¼*ÑDÑEÔEÐEð	Føøøs   ˜C)D; Ä;E/ÅE/r‚   r   c                ó$   — || j         |j        <   d S rQ   )rÀ   ra   ©rK   r‚   s     rL   r„   zApplyBatchImpl.create_indexÃ  s   € Ø%(ˆÔ˜œÑ"Ð"Ð"rN   c                ól   — 	 | j         |j        = d S # t          $ r t          d|j        z  ¦  «        ‚w xY w)NzNo such index: '%s')r¿   ra   rF  r:   rI  s     rL   r‡   zApplyBatchImpl.drop_indexÆ  sJ   € ð	?Ø”˜SœXÐ&Ð&Ð&øÝð 	?ð 	?ð 	?ÝÐ2°S´XÑ=Ñ>Ô>Ð>ð	?øøøs   ‚ ‘"3c                ó    — t          d¦  «        ‚)NÚTODOr�   rr   s      rL   r�   zApplyBatchImpl.rename_tableÌ  s   € Ý! &Ñ)Ô)Ð)rN   )r6   )rF   r.   r‹   r   r=   rŸ   r?   r    rl   rU   rI   rŸ   rO   rY   )r°   r±   rO   r²   r˜   )rO   rè   )rò   r   ró   r   rO   rY   )r  r.   rO   rY   )NFNNNF)r9   r²   r  r²   r  r  r  r  ra   r  r  r  r  r   r!  r"  rO   rY   )r  r²   ru   r  rv   r  rO   rY   )NN)
r9   r²   r—   r9  ru   r  rv   r  rO   rY   )r9   r²   r—   r;  rO   rY   r™   )r‚   r   rO   rY   )rš   r›   rœ   rM   Úclassmethodr©   r¯   rÚ   rç   rñ   râ   rd   rp   r8  rw   ry   r•   r‰   r�   r|   r   r„   r‡   r�   r6   rN   rL   rc   rc   Õ   sà  € € € € € ð %'ð$ð $ð $ð $ð $ð: ð5ð 5ð 5ñ „[ð5ð,Bð ,Bð ,Bð ,Bð\
ð 
ð 
ð 
ð<04ð 04ð 04ð 04ðdð ð ð ðB#ð #ð #ð #ðJ%;ð %;ð %;ð %;ðV $(ØDIØ"Ø&*Ø@DØ.3ðI'ð I'ð I'ð I'ð I'ðV.Bð .Bð .Bð .Bðh (,Ø&*ð0ð 0ð 0ð 0ð 0ð ð ð ð ð0ð ð ðð ð ðð ð ð
3ð 
3ð 
3ð 
3ð?ð ?ð ?ð ?ð8)ð )ð )ð )ð?ð ?ð ?ð ?ð*ð *ð *ð *ð *rN   rc   N):Ú
__future__r   Útypingr   r   r   r   r   r	   r
   Ú
sqlalchemyr   r   r   r   r   r   r   r  r   r   rý   Úsqlalchemy.sql.schemar   Úsqlalchemy.utilr   r   Úutilr   Úutil.sqla_compatr   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   Úsqlalchemy.enginer(   Úsqlalchemy.sql.elementsr)   r*   Úsqlalchemy.sql.functionsr+   r,   Úsqlalchemy.sql.type_apir-   Úddl.implr.   r0   rc   r6   rN   rL   ú<module>rZ     sx  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø +Ð +Ð +Ð +Ð +Ð +Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à Ð Ð Ð Ð Ð Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø $Ð $Ð $Ð $Ð $Ð $Ø /Ð /Ð /Ð /Ð /Ð /Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø -Ð -Ð -Ð -Ð -Ð -Ø -Ð -Ð -Ð -Ð -Ð -Ø =Ð =Ð =Ð =Ð =Ð =Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø &Ð &Ð &Ð &Ð &Ð &Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5àð 
'ØÐÐÐÐÐà)Ð)Ð)Ð)Ð)Ð)Ø4Ð4Ð4Ð4Ð4Ð4Ø3Ð3Ð3Ð3Ð3Ð3Ø1Ð1Ð1Ð1Ð1Ð1Ø0Ð0Ð0Ð0Ð0Ð0Ø2Ð2Ð2Ð2Ð2Ð2à&Ð&Ð&Ð&Ð&Ð&ð[Dð [Dð [Dð [Dð [Dñ [Dô [Dð [Dð|x*ð x*ð x*ð x*ð x*ñ x*ô x*ð x*ð x*ð x*rN   