§
    äóÉjNs  ã                  ó*  — 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-m/Z/ d d'lm0Z0 d d(l1m2Z2 dd)l3m4Z4 dd*l5m6Z6  G d+„ d,¦  «        Z7 G d-„ d.¦  «        Z8d/S )0é    )Úannotations)ÚAny)ÚTYPE_CHECKING)ÚCheckConstraint)ÚColumn)ÚForeignKeyConstraint)ÚIndex)ÚMetaData)ÚPrimaryKeyConstraint©Úschema)Úselect)ÚTable)Útypes)ÚSchemaEventTarget)ÚOrderedDict)Útopologicalé   )Úutil)Úexc)Ú_columns_for_constraint)Ú_conv_constraint_names)Ú_copy)Ú_copy_expression)Ú_ensure_scope_for_ddl)Ú_fk_is_self_referential)Ú_fk_target_tokens)Ú_get_table_key)Ú_idx_table_bound_expressions)Ú_is_type_bound)Ú_name_type_bound_constraints)Ú_remove_column_from_collection)Ú_resolve_for_variant)Úconstraint_name_defined)Úconstraint_name_string)ÚLiteral)ÚDialect)ÚColumnClause)Úquoted_name)Ú
Constraint)Ú
TypeEngine)Ú_ServerDefaultType)Ú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)Úselfr7   r8   r   r:   r;   r<   r>   r?   r@   rG   rH   s               ú{/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib/python3.11/site-packages/alembic/operations/batch.pyÚ__init__zBatchOperationsImpl.__init__7   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)r7   rE   Údialect©rJ   s    rK   rQ   zBatchOperationsImpl.dialect\   s   € àŒÔ#Ô+Ð+rM   r-   c                ó   — | j         j        S rP   )r7   rE   rR   s    rK   rE   zBatchOperationsImpl.impl`   s   € àŒÔ#Ð#rM   Úboolc                ót   — | j         dk    r| j        j                             | ¦  «        S | j         dk    rdS dS )Nr1   r2   TF)r:   r7   rE   Úrequires_recreate_in_batchrR   s    rK   Ú_should_recreatez$BatchOperationsImpl._should_recreated   s?   € ØŒ=˜FÒ"Ð"Ø”?Ô'×BÒBÀ4ÑHÔHÐHØŒ]˜hÒ&Ð&Ø�4à�5rM   ÚNonec           	     ó’  — |                       ¦   «         }t          | j        j        ¦  «        5  |s2| j        D ](\  }}}t          | j        j        |¦  «        } ||i |¤Ž Œ)�nLt          ¦   «         }| 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}| j        r7t-          |¦  «         |                     t          | j        ¬¦  «        ¦  «        }t1          | j        || j        | j        || j        ¬¦  «        }	| j        D ]\  }}}t          |	|¦  «        } ||i |¤Ž Œ|	                     | j        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NFzEThis 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)rG   )rH   )rW   r   rE   Ú
connectionrI   Úgetattrr7   r
   r;   Úmigration_contextÚas_sqlr   ÚCommandErrorrQ   Únamer8   r   r?   r   Úget_bindr@   rG   r   Úto_metadataÚApplyBatchImplr<   r>   rH   Ú_create)
rJ   Úshould_recreateÚopnameÚargÚkwÚfnÚm1Úexisting_tableÚ	reflectedÚ
batch_impls
             rK   ÚflushzBatchOperationsImpl.flushl   st  € Ø×/Ò/Ñ1Ô1ˆå" 4¤9Ô#7Ñ8Ô8ð >	.ð >	.Ø"ð =.Ø'+¤zð #ð #‘O�F˜C Ý  ¤Ô!5°vÑ>Ô>�BØ�B˜�N˜r�N�N�N�Nñ#õ ‘Z”Z�à”>Ð-Ø%)¤^�NØ %�I�Ià”Ô8Ô?ð Ý!Ô.ð
9à#œÔ@ÔHÔMð
9ð 
9ð 6:´_ð	
9ð 
9ð 
9ñô ð õ &+ØœØð&ð
 Ô*ð&ð &ð  $œ{Ø&*¤o×&>Ò&>Ñ&@Ô&@ð	&ð &ð Ô-ð&ð &�Nð !%�IàÔ-ð õ /¨~Ñ>Ô>Ð>Ø)7×)CÒ)CÝ$°tÔ7MÐNÑNÔNñ*ô *˜õ ,Ø”IØ"Ø”OØÔ%ØØ'+Ô'>ðñ ô �
ð (,¤zð #ð #‘O�F˜C Ý  ¨VÑ4Ô4�BØ�B˜�N˜r�N�N�N�Nà×"Ò" 4¤9Ñ-Ô-Ð-ð}>	.ð >	.ð >	.ñ >	.ô >	.ð >	.ð >	.ð >	.ð >	.ð >	.ð >	.ð >	.øøøð >	.ð >	.ð >	.ð >	.ð >	.ð >	.s   ®FF<Æ<G ÇG c                ó@   — | j                              d||f¦  «         d S )NÚalter_column©rI   rD   ©rJ   rg   rh   s      rK   rp   z BatchOperationsImpl.alter_column¯   ó%   € ØŒ
×Ò˜>¨3°Ð3Ñ4Ô4Ð4Ð4Ð4rM   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)rW   r   r_   rI   rD   rr   s      rK   rw   zBatchOperationsImpl.add_column²   sj   € à˜rÐ!Ð! ^°rÐ%9Ð%9Ø×'Ò'Ñ)Ô)ð &:åÔ"ð:ñô ð ð 	Œ
×Ò˜<¨¨bÐ1Ñ2Ô2Ð2Ð2Ð2rM   c                ó@   — | j                              d||f¦  «         d S )NÚdrop_columnrq   rr   s      rK   ry   zBatchOperationsImpl.drop_column¼   s%   € ØŒ
×Ò˜=¨#¨rÐ2Ñ3Ô3Ð3Ð3Ð3rM   Úconstr*   c                óB   — | j                              d|fi f¦  «         d S )NÚadd_constraintrq   ©rJ   rz   s     rK   r|   z"BatchOperationsImpl.add_constraint¿   s(   € ØŒ
×ÒÐ+¨e¨X°rÐ:Ñ;Ô;Ð;Ð;Ð;rM   c                óB   — | j                              d|fi f¦  «         d S )NÚdrop_constraintrq   r}   s     rK   r   z#BatchOperationsImpl.drop_constraintÂ   s(   € ØŒ
×ÒÐ,¨u¨h¸Ð;Ñ<Ô<Ð<Ð<Ð<rM   c                ó@   — | j                              d||f¦  «         d S )NÚrename_tablerq   rr   s      rK   r�   z BatchOperationsImpl.rename_tableÅ   rs   rM   Úidxr	   rh   r   c                óB   — | j                              d|f|f¦  «         d S )NÚcreate_indexrq   ©rJ   r‚   rh   s      rK   r„   z BatchOperationsImpl.create_indexÈ   s'   € ØŒ
×Ò˜>¨C¨6°2Ð6Ñ7Ô7Ð7Ð7Ð7rM   c                óB   — | j                              d|f|f¦  «         d S )NÚ
drop_indexrq   r…   s      rK   r‡   zBatchOperationsImpl.drop_indexË   s'   € ØŒ
×Ò˜<¨#¨°Ð4Ñ5Ô5Ð5Ð5Ð5rM   c                óB   — | j                              d|fi f¦  «         d S )NÚcreate_table_commentrq   ©rJ   Útables     rK   r‰   z(BatchOperationsImpl.create_table_commentÎ   s(   € ØŒ
×ÒÐ1°E°8¸RÐ@ÑAÔAÐAÐAÐArM   c                óB   — | j                              d|fi f¦  «         d S )NÚdrop_table_commentrq   rŠ   s     rK   r�   z&BatchOperationsImpl.drop_table_commentÑ   s(   € ØŒ
×ÒÐ/°%°¸2Ð>Ñ?Ô?Ð?Ð?Ð?rM   c                ó    — t          d¦  «        ‚)Nz Can't create table in batch mode©ÚNotImplementedErrorrŠ   s     rK   Úcreate_tablez BatchOperationsImpl.create_tableÔ   s   € Ý!Ð"DÑEÔEÐErM   c                ó    — t          d¦  «        ‚)NzCan't drop table in batch moder�   rŠ   s     rK   Ú
drop_tablezBatchOperationsImpl.drop_table×   s   € Ý!Ð"BÑCÔCÐCrM   c                óB   — | j                              d|fi f¦  «         d S )NÚcreate_column_commentrq   ©rJ   Úcolumns     rK   r•   z)BatchOperationsImpl.create_column_commentÚ   s(   € ØŒ
×ÒÐ2°V°I¸rÐBÑCÔCÐCÐCÐCrM   N)rN   r'   )rN   r-   )rN   rT   ©rN   rX   ©rz   r*   rN   rX   )r‚   r	   rh   r   rN   rX   )Ú__name__Ú
__module__Ú__qualname__rL   ÚpropertyrQ   rE   rW   rn   rp   rw   ry   r|   r   r�   r„   r‡   r‰   r�   r‘   r“   r•   r5   rM   rK   r/   r/   6   sˆ  € € € € € ð#ð #ð #ðJ ð,ð ,ð ,ñ „Xð,ð ð$ð $ð $ñ „Xð$ðð ð ð ðA.ð A.ð A.ð A.ðF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rM   r/   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   r5   rE   r-   r‹   r   r<   Útupler>   údict[str, Any]rl   rT   rH   rN   rX   c                ó^  — || _         || _        || _        || _        |                      |j        ¦  «        | _        d | _        || _        d| _	        t          d„ | j        j        D ¦   «         ¦  «        | _        t          | j        ¦  «        | _        || _        |                      ¦   «          d S )Nr5   c              3  ó,   K  — | ]}|j         d |ifV — ŒdS ©ÚexprN)r`   ©Ú.0Úcs     rK   ú	<genexpr>z*ApplyBatchImpl.__init__.<locals>.<genexpr>ô   s>   è è € ð ,
ð ,
Ø&'ˆQŒV�f˜a�[Ð!ð,
ð ,
ð ,
ð ,
ð ,
ð ,
rM   )rE   r‹   r<   r>   Ú_calc_temp_namer`   Útemp_table_nameÚ	new_tablerH   Úadd_col_orderingr   r§   Úcolumn_transfersrB   Úexisting_orderingrl   Ú_grab_table_elements)rJ   rE   r‹   r<   r>   rl   rH   s          rK   rL   zApplyBatchImpl.__init__ß   s½   € ð ˆŒ	ØˆŒ
Ø$ˆŒØ(ˆÔØ#×3Ò3°E´JÑ?Ô?ˆÔØ'+ˆŒà"4ˆÔð ð 	Ôõ !,ð ,
ð ,
Ø+/¬:¬<ð,
ñ ,
ô ,
ñ !
ô !
ˆÔõ "& dÔ&;Ñ!<Ô!<ˆÔà"ˆŒØ×!Ò!Ñ#Ô#Ð#Ð#Ð#rM   Ú	tablenameúquoted_name | strÚstrc                ó   — d|z  dd…         S )Nz_alembic_tmp_%sr   é2   r5   )Úclsr°   s     rK   r©   zApplyBatchImpl._calc_temp_nameü   s   € à! IÑ-¨q°¨tÔ4Ð4rM   c                óþ  — | 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 | _        t#          d„ | j        D ¦   «         ¦  «        }| j         j        D ]˜}t)          |¦  «        rŒ| j        rAt          |t,          ¦  «        r,|j        s%|s"t/          j        d| j         j        › d�¦  «         ŒZt3          |j        ¦  «        r|| j        |j        <   Œ~| j                             |¦  «         Œ™| 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   Fc              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rP   )Ú
isinstancer   )r¦   rg   s     rK   r¨   z6ApplyBatchImpl._grab_table_elements.<locals>.<genexpr>  s=   è è € ð .
ð .
Ø14�J�s�OÑ,Ô,ð.
ð .
ð .
ð .
ð .
ð .
rM   z-Unnamed CHECK constraint on reflected table 'z£' is being omitted from the table recreate; pass the constraint explicitly using batch_alter_table.table_args.  Naming CHECK constraints avoids this going forward.)r‹   r   r   Úcolumnsr§   r   ÚuniqueÚindexr¸   Útyper   r`   Únamed_constraintsÚunnamed_constraintsÚcol_named_constraintsÚindexesÚnew_indexesÚanyr<   Úconstraintsr    rl   r   r   Úwarnr%   rD   Úkwargsr>   rA   )	rJ   r   r§   Úc_copyÚcheck_constraints_in_table_argsrz   Úcolr‚   Úks	            rK   r¯   z#ApplyBatchImpl._grab_table_elements   st  € Ø”Ô"ˆÝ/:©}¬}ˆŒØ””ð 	*ð 	*ˆAÝ˜1 VÐ,Ñ,Ô,ˆFØ+0Ð0ˆFŒM˜FœLõ ˜!œ&Õ"3Ñ4Ô4ð 1Ø”{¨!¬&Ð0Ð0Ð0Ð0Ø#)ˆDŒL˜œÑ Ð Ø8:ˆÔØ#%ˆÔ Ø%'ˆÔ"Ø)+ˆŒØ-/ˆÔõ +.ð .
ð .
Ø8<¼ð.
ñ .
ô .
ñ +
ô +
Ð'ð ”ZÔ+ð 	7ð 	7ˆEÝ˜eÑ$Ô$ð 7Øà”ð7å˜u¥oÑ6Ô6ð7ð œ
ð7ð 7ð Ý”IðBØ œJœOðBð Bð Bñô ð øõ (¨¬
Ñ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rM   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Ë   r5   )r¦   Úps     rK   ú
<listcomp>zNApplyBatchImpl._adjust_self_columns_for_partial_reordering.<locals>.<listcomp>V  s%   € Ð7Ð7Ð7˜A¨!¨A¬$°!°A´$ª,¨,�a¨,¨,¨,rM   T)Údeterministic_orderc              3  ó6   •K  — | ]}|‰j         |         fV — Œd S rP   )r¹   ©r¦   rÉ   rJ   s     €rK   r¨   zMApplyBatchImpl._adjust_self_columns_for_partial_reordering.<locals>.<genexpr>[  s.   øè è € Ð"IÐ"I¸A A t¤|°A¤Ð#7Ð"IÐ"IÐ"IÐ"IÐ"IÐ"IrM   c              3  ó6   •K  — | ]}|‰j         |         fV — Œd S rP   )r­   rÑ   s     €rK   r¨   zMApplyBatchImpl._adjust_self_columns_for_partial_reordering.<locals>.<genexpr>\  sA   øè è € ð ,
ð ,
Ø./ˆQ�Ô% aÔ(Ð)ð,
ð ,
ð ,
ð ,
ð ,
ð ,
rM   )ÚsetrB   r¹   rH   Ú	enumerateÚaddr®   Úupdater¬   r   Úsortr   r­   )rJ   ÚpairsÚ
col_by_idxÚtuple_r»   ÚelemÚ
pairs_listÚsorted_s   `       rK   Ú+_adjust_self_columns_for_partial_reorderingz:ApplyBatchImpl._adjust_self_columns_for_partial_reorderingB  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:ð,
ñ ,
ô ,
ñ !
ô !
ˆÔÐÐrM   c                óŽ  — | 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        ¦  «         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 r5   )Úkeyr¥   s     rK   ú	<setcomp>zAApplyBatchImpl._transfer_elements_to_new_table.<locals>.<setcomp>z  s   € ÐKÐKÐK q˜QœUÐKÐKÐKrM   )r   Útarget_tabler   )r«   r
   r‹   r   rH   r¬   rÞ   r   rª   rB   r¹   Úvaluesr<   r>   r!   r½   r¾   r   Úissubsetr­   r¸   r   r   r   Ú_setup_referentÚappend_constraint)rJ   Úmr   r«   rz   Úconst_columnsÚ
const_copys          rK   Ú_transfer_elements_to_new_tablez.ApplyBatchImpl._transfer_elements_to_new_table`  s  € ØŒ~Ð%Ð%Ð'GÑ%Ô%Ð%å‰JŒJˆØ”Ô"ˆàÔ"ð 	? dÔ&;ð 	?Ø×<Ò<Ñ>Ô>Ð>å%*ØÔ Øð&
õ �4”<×&Ò&Ñ(Ô(Ñ)Ô)­D°´Ñ,AÔ,AÑAð&
ð &
ð &
ð ð	&
ð
 Ôð&
ð &
ð 	
ˆŒ˜õ 	% Y°´
Ñ;Ô;Ð;õ �Ô'×.Ò.Ñ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ð 	4rM   ú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 r5   )r   r«   )r¦   r¤   rJ   s     €rK   rÎ   zCApplyBatchImpl._gather_indexes_from_both_tables.<locals>.<listcomp>¥  s5   ø€ ð ð ð àõ % T¨4¬>Ñ:Ô:ðð ð rM   )rº   Ú_tablec                ó4   •— g | ]}‰j         j        |         ‘ŒS r5   )r«   r§   )r¦   rÈ   rJ   s     €rK   rÎ   zCApplyBatchImpl._gather_indexes_from_both_tables.<locals>.<listcomp>³  s#   ø€ ÐLÐLÐL°�d”nÔ& sÔ+ÐLÐLÐLrM   rº   )r«   rÀ   rä   Ú_column_flagr	   r`   r   rº   rÅ   rD   rÁ   r¹   Úkeys)rJ   r‚   Úidx_existingÚidx_copyr»   s   `    rK   Ú _gather_indexes_from_both_tablesz/ApplyBatchImpl._gather_indexes_from_both_tables˜  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ð	ð ñô ð ð ð ˆ
rM   Úmetadatar
   Ú
constraintr   c                óŽ  — t          |j        d         ¦  «        \  }}}|| j        k    r›t          ||¦  «        }d„ d„ |j        D ¦   «         D ¦   «         }||j        v rJ|j        |         }|D ]8}	|	|j        vr-|                     t          |	t          j	        ¦  «        ¦  «         Œ9d S t          ||gd„ |D ¦   «         ¢R d|iŽ d S d S )Nr   c                ó   — g | ]}|®|‘ŒS rP   r5   ©r¦   r`   s     rK   rÎ   z2ApplyBatchImpl._setup_referent.<locals>.<listcomp>À  s,   € ð ð ð àð Ð#ð ð
 $Ð#Ð#rM   c              3  ó>   K  — | ]}t          |¦  «        j        V — Œd S rP   )r   Úcolumn_name)r¦   rÛ   s     rK   r¨   z1ApplyBatchImpl._setup_referent.<locals>.<genexpr>Â  sA   è è € ð ð àõ & dÑ+Ô+Ô7ðð ð ð ð ð rM   c                óB   — g | ]}t          |t          j        ¦  «        ‘ŒS r5   )r   ÚsqltypesÚNULLTYPErú   s     rK   rÎ   z2ApplyBatchImpl._setup_referent.<locals>.<listcomp>Ò  s%   € ÐKÐKÐK¸$•f˜T¥8Ô#4Ñ5Ô5ÐKÐKÐKrM   r   )r   Úelementsrª   r   Útablesr§   Úappend_columnr   rþ   rÿ   r   )
rJ   rö   r÷   Úreferent_schemaÚtnameÚ_rá   ÚcolnamesÚtr`   s
             rK   ræ   zApplyBatchImpl._setup_referent¹  s3  € õ %6°jÔ6IÈ!Ô6LÑ$MÔ$MÑ!ˆ˜ à�DÔ(Ò(Ð(Ý  ¨Ñ8Ô8ˆCðð ðð à *Ô 3ðñ ô ðñ ô ˆHð �h”oÐ%Ð%Ø”O CÔ(�Ø$ð Ið I�DØ 1¤3��ØŸš­¨tµXÔ5FÑ(GÔ(GÑHÔHÐHøðIð Iõ ØØðð LÐKÀ(ÐKÑKÔKðð ð ð +ð	ð ð ð ð ð# )Ð(rM   Úop_implc           
     ó¨  — |                       ¦   «          |                     | | j        ¦  «         | j        €J ‚|                     | j        ¦  «         	 |                     | 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£   r5   )r¦   rÉ   Útransfers      rK   r¨   z)ApplyBatchImpl._create.<locals>.<genexpr>â  s=   è è € ð ð á'˜A˜xØ! XÐ-Ð-ð à-Ð-Ð-Ð-ðð rM   c                ó&   — g | ]}d |v ¯|d          ‘ŒS )r¤   r5   )r¦   r  s     rK   rÎ   z*ApplyBatchImpl._create.<locals>.<listcomp>è  s2   € ð ð ð à (Ø%¨Ð1Ð1ð % VÔ,à1Ð1Ð1rM   r   )rë   Úprep_table_for_batchr‹   r«   r‘   Ú_execÚinsertÚinlineÚfrom_selectrB   r­   Úitemsr   rä   r“   r�   rª   r`   r   rõ   r„   )rJ   r  r‚   s      rK   rd   zApplyBatchImpl._createÖ  sç  € Ø×,Ò,Ñ.Ô.Ð.à×$Ò$ T¨4¬:Ñ6Ô6Ð6ØŒ~Ð)Ð)Ð)Ø×Ò˜Tœ^Ñ,Ô,Ð,ð 	;Ø�MŠMØ”×%Ò%Ñ'Ô'ß’‘”ß’Ýð ð à+/Ô+@×+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   ÁCF4 Å,F ÆF1Æ4GNFr8   rü   Únullableúbool | NoneÚserver_defaultú*_ServerDefaultType | None | Literal[False]r`   ú
str | NoneÚtype_úTypeEngine | NoneÚautoincrementúbool | Literal['auto'] | NoneÚcommentú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 )Nr`   Úexisting_typeF)r¹   r­   r`   rC   r#   rE   rQ   r¸   r   r½   Úpoprþ   Úto_instancer¼   Ú_create_eventsÚcreate_constraintÚcast_for_batch_migrater  r  Ú
sql_schemaÚDefaultClauseÚ_set_parentrT   r  r  )rJ   r8   rü   r  r  r`   r  r  r  rh   ÚexistingÚexisting_transferr  Úresolved_existing_types                 rK   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ÔÐÐð  ÐrM   Úcolnameru   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 r5   r5   )r¦   Úir`   s      rK   ú
<dictcomp>zEApplyBatchImpl._setup_dependencies_for_add_column.<locals>.<dictcomp>Q  s   € ÐDÐDÐD¡7 1 d�t˜QÐDÐDÐDrM   rË   r   c                ó   — i | ]\  }}||“Œ	S r5   r5   )r¦   ÚaÚbs      rK   r/  zEApplyBatchImpl._setup_dependencies_for_add_column.<locals>.<dictcomp>i  s+   € ð (ð (ð (Ù%) Q¨˜A˜qð(ð (ð (rM   éÿÿÿÿ)r®   rÔ   rH   Úlenr=   r¬   )rJ   r+  ru   rv   Ú
index_colsÚcol_indexesr‚   s          rK   Ú"_setup_dependencies_for_add_columnz1ApplyBatchImpl._setup_dependencies_for_add_columnJ  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rM   r—   úColumn[Any]c                ó  — |                       |j        ||¦  «         t          || j        j        ¬¦  «        }t          |j        t          ¦  «        rdx|j        _        |j        _	        || j
        |j        <   i | j        |j        <   d S )Nr   F)r7  r`   r   r‹   r   r¸   r¼   r   r"  r#  r¹   r­   )rJ   r8   r—   ru   rv   rh   Úcol_copys          rK   rw   zApplyBatchImpl.add_columnz  s“   € ð 	×/Ò/ØŒK˜¨ñ	
ô 	
ð 	
õ
 ˜¨¬
Ô(9Ð:Ñ:Ô:ˆõ �h”mÕ%6Ñ7Ô7ð 	ð ðˆHŒMÔ(Ø”Ô/ð %-ˆŒ�V”[Ñ!Ø-/ˆÔ˜fœkÑ*Ð*Ð*rM   ú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  )r`   r‹   Úprimary_keyr¹   r"   r­   r®   Úremover¸   r   r½   r   )rJ   r8   r—   rh   s       rK   ry   zApplyBatchImpl.drop_column–  sé   € ð Œ;˜$œ*Ô0Ô8Ð8Ð8Ý*Ø”
Ô&Ô.°ñô ð ð ŒL˜œÐ%ØÔ! &¤+Ð.ØÔ×%Ò% f¤kÑ2Ô2Ð2ð ˜rÐ!Ð!Ý˜2˜oÔ.Õ0AÑBÔBð "à�?Ô#Ô(ð "ð Ô"×&Ò&Ø�?Ô#Ô(¨$ñô ð ð ð ð	 "Ð!Ð!Ð!Ð!Ð!rM   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.

        Nr5   r–   s     rK   r•   z$ApplyBatchImpl.create_column_comment®  ó   € € € rM   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.

        Nr5   rŠ   s     rK   r‰   z#ApplyBatchImpl.create_table_comment¸  r@  rM   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.

        Nr5   rŠ   s     rK   r�   z!ApplyBatchImpl.drop_table_comment¾  r@  rM   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$   r`   r9   r¸   r%  r   r‹   r=  r¾   r>  r%   r½   rD   r}   s     rK   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Ð2rM   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')r`   r9   r¿   r   rB   r¹   rÃ   r>  r%   r½   r¾   r¸   r   r=  ÚKeyErrorr    )rJ   rz   rÈ   Ú	col_consts       rK   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 rP   )rÁ   r`   ©rJ   r‚   s     rK   r„   zApplyBatchImpl.create_indexì  s   € Ø%(ˆÔ˜œÑ"Ð"Ð"rM   c                ól   — 	 | j         |j        = d S # t          $ r t          d|j        z  ¦  «        ‚w xY w)NzNo such index: '%s')rÀ   r`   rF  r9   rI  s     rK   r‡   zApplyBatchImpl.drop_indexï  sJ   € ð	?Ø”˜SœXÐ&Ð&Ð&øÝð 	?ð 	?ð 	?ÝÐ2°S´XÑ=Ñ>Ô>Ð>ð	?øøøs   ‚ ‘"3c                ó    — t          d¦  «        ‚)NÚTODOr�   rr   s      rK   r�   zApplyBatchImpl.rename_tableõ  s   € Ý! &Ñ)Ô)Ð)rM   )r5   )rE   r-   r‹   r   r<   rŸ   r>   r    rl   rT   rH   rŸ   rN   rX   )r°   r±   rN   r²   r˜   )rN   rì   )rö   r
   r÷   r   rN   rX   )r  r-   rN   rX   )NFNNNF)r8   r²   rü   r²   r  r  r  r  r`   r  r  r  r  r  r  r  rN   rX   )r+  r²   ru   r  rv   r  rN   rX   )NN)
r8   r²   r—   r8  ru   r  rv   r  rN   rX   )r8   r²   r—   r;  rN   rX   r™   )r‚   r	   rN   rX   )rš   r›   rœ   rL   Úclassmethodr©   r¯   rÞ   rë   rõ   ræ   rd   rp   r7  rw   ry   r•   r‰   r�   r|   r   r„   r‡   r�   r5   rM   rK   rc   rc   Þ   sã  € € € € € ð %'ð$ð $ð $ð $ð $ð: ð5ð 5ð 5ñ „[ð5ð@Bð @Bð @Bð @BðD
ð 
ð 
ð 
ð<64ð 64ð 64ð 64ðpð ð ð ðBð ð ð ð:';ð ';ð ';ð ';ðZ !%ØEJØØ#'Ø7;Ø(-ðI'ð I'ð I'ð I'ð I'ðV.Bð .Bð .Bð .Bðh %)Ø#'ð0ð 0ð 0ð 0ð 0ð8ð ð ð ð0ð ð ðð ð ðð ð ð
3ð 
3ð 
3ð 
3ð?ð ?ð ?ð ?ð8)ð )ð )ð )ð?ð ?ð ?ð ?ð*ð *ð *ð *ð *rM   rc   N)9Ú
__future__r   Útypingr   r   Ú
sqlalchemyr   r   r   r	   r
   r   r   r%  r   r   r   rþ   Úsqlalchemy.sql.schemar   Úsqlalchemy.utilr   r   Ú r   r   Úutil.sqla_compatr   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Úsqlalchemy.enginer'   Úsqlalchemy.sql.elementsr(   r)   r*   Úsqlalchemy.sql.type_apir+   Úddl.baser,   Úddl.implr-   r/   rc   r5   rM   rK   ú<module>rZ     sf  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø +Ð +Ð +Ð +Ð +Ð +Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø $Ð $Ð $Ð $Ð $Ð $Ø /Ð /Ð /Ð /Ð /Ð /Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø -Ð -Ð -Ð -Ð -Ð -Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø -Ð -Ð -Ð -Ð -Ð -Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø =Ð =Ð =Ð =Ð =Ð =Ø 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Ø0Ð0Ð0Ð0Ð0Ð0Ø2Ð2Ð2Ð2Ð2Ð2à-Ð-Ð-Ð-Ð-Ð-Ø&Ð&Ð&Ð&Ð&Ð&ðeDð eDð eDð eDð eDñ eDô eDð eDðPX*ð X*ð X*ð X*ð X*ñ X*ô X*ð X*ð X*ð X*rM   