ó
    úÞ j¶)  ã                  ó   • S SK Jr  S SKJr  S SKrS SKrS SKJr  S SKJ	r	  S SKJ
r
  S SKJr  S SKJr  S S	KJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  \(       a  S SKJr  S SKJr  S
SKJr  S
SKJr  S
SKJr  \R>                  " \ 5      r!      SS jr"SS jr#                SS jr$S S jr% S!                 S"S jjr&                S#S jr'                S#S jr(                S$S jr)S%S jr*g)&é    )Úannotations)ÚSequenceN)ÚNoneType)ÚAny)Úcast)ÚTYPE_CHECKING)Úschema)ÚDefaultClauseé   )Úutil)ÚDispatchPriority)ÚPriorityDispatchResult)Úsqla_compat)Úquoted_name)ÚColumn)ÚAutogenContext)ÚAlterColumnOp)ÚPluginc                ó&  • [        U [        R                  5      (       a[  [        U R                  [        5      (       a  U R                  n O/[	        U R                  R                  UR                  SS0S95      n [        U [        5      (       a  U $ g )NÚliteral_bindsT©ÚdialectÚcompile_kwargs)Ú
isinstanceÚ	sa_schemar
   ÚargÚstrÚcompiler   )Úmetadata_defaultÚautogen_contexts     Úf/var/www/html/gaurav/venv/lib/python3.13/site-packages/alembic/autogenerate/compare/server_defaults.pyÚ"_render_server_default_for_comparer"      s†   € ô Ð"¤I×$;Ñ$;×<Ñ<ÜÐ&×*Ñ*¬C×0Ñ0Ø/×3Ñ3Ñä"Ø ×$Ñ$×,Ñ,Ø+×3Ñ3Ø$3°TÐ#:ð -ð ó Ðô Ð"¤C×(Ñ(ØÐàó    c                óN   • [         R                  " SSU 5      R                  5       $ )zÃwe want to warn if a computed sql expression has changed.  however
we don't want false positives and the warning is not that critical.
so filter out most forms of variability from the SQL text.

z[ \(\)'\"`\[\]\t\r\n]Ú )ÚreÚsubÚlower)Úsqltexts    r!   Ú_normalize_computed_defaultr*   1   s!   € ô �6Š6Ð*¨B°Ó8×>Ñ>Ó@Ð@r#   c                ó.  • UR                   nUR                   nUc  Uc  [        R                  $ [        R                  " U5      (       a6  [        R                  " U5      (       d  [        X45        [        R                  $ [        R                  " U5      (       d  [        R                  $ [        [        [        R                  UR                   5      R                  R                  U R                  SS0S95      n	[        U	5      n	[        UR                   [        R                  5      (       aE  [        UR                   R                  R                  U R                  SS0S95      n
[        U
5      n
OSn
Xš:w  a  [        X45        [        R                  $ )Nr   Tr   r%   )Úserver_defaultr   ÚCONTINUEr   Ú_server_default_is_computedÚ_warn_computed_not_supportedÚSTOPr   r   r   ÚComputedr)   r   r   r*   r   )r    Úalter_column_opr	   ÚtnameÚcnameÚconn_colÚmetadata_colr   Úconn_col_defaultÚrendered_metadata_defaultÚrendered_conn_defaults              r!   Ú_compare_computed_defaultr:   ;   so  € ð $×2Ñ2ÐØ×.Ñ.ÐØÑÐ$4Ñ$<Ü%×.Ñ.Ð.ä×.Ò.Ø÷ñ ä×5Ò5Ð6F×GÑGÜ$ UÔ2Ü%×*Ñ*Ð*ä×2Ò2Ð3C×DÑDÜ%×.Ñ.Ð.ä #ÜŒY×Ñ ×!<Ñ!<Ó=×EÑE×MÑMØ#×+Ñ+Ø+¨TÐ2ð 	Nð 	
ó!Ðô !<Ø!ó!Ðô �(×)Ñ)¬9×+=Ñ+=×>Ñ>Ü #Ø×#Ñ#×+Ñ+×3Ñ3Ø'×/Ñ/Ø /°Ð6ð 4ð ó!
Ðô !<Ø!ó!
Ñð !#Ðà Ó9Ü$ UÔ2ä!×&Ñ&Ð&r#   c                óB   • [         R                  " SU < SU< S35        g )NzComputed default on Ú.z cannot be modified)r   Úwarn)r3   r4   s     r!   r/   r/   u   s   € Ü‡IƒIÃÃuÐMÕNr#   c                ó¼  • UR                   nUR                   n	U	c  Ub  [        R                  " X‰5      (       d  [        R                  $ [        UR                   [        R                  [        R                  [        45      (       d   e[        UR                   [        R                  [        R                  [        45      (       d   eU R                  R                  n
U
R                  UR                   UR                   5      u  p¼nU(       a>  X�l        U(       a1  [        R                  SUU[!        U5      5        [        R"                  $ [        R                  $ )NzIDetected server default on column '%s.%s': identity options attributes %s)r,   r   Ú_server_default_is_identityr   r-   r   r   ÚIdentityr   r   Úmigration_contextÚimplÚ_compare_identity_defaultÚmodify_server_defaultÚlogÚinfoÚsortedr0   )r    r2   r	   r3   r4   r5   r6   Úskipr   r7   rB   ÚdiffÚ_Úis_alters                 r!   rC   rC   y   s9  € ð  $×2Ñ2ÐØ×.Ñ.ÐàÑ ØÑ$Ü×6Ò6Ø÷
ñ 
ô &×.Ñ.Ð.äØ×#Ñ#Ü	×	Ñ	œY×/Ñ/´Ð:÷ñ ð ð ô Ø×ÑÜ	×	Ñ	œY×/Ñ/´Ð:÷ñ ð ð ð
 ×,Ñ,×1Ñ1€DØ×6Ñ6Ø×#Ñ# X×%<Ñ%<óÑ€DˆXö Ø0@Ô-ÞÜ�H‰Hð1àØÜ�t“ôô *×.Ñ.Ð.ä!×*Ñ*Ð*r#   c                óŒ  • UR                   nUR                   nUc  Uc  [        R                  $ X�l        U R                  n	U	R
                  SL a  [        R                  $ [        U	R
                  5      (       d  [        R                  $ [        Xp5      n
U(       a$  [        [        U5      R                  R                  OS nU	R                  U	UUUUR                   U
5      nU(       a8  Xql        [        R                  SU	R
                  UU5        [        R                  $ USL a  [        R                  $ [        R                  $ )NFzBUser defined function %s detected server default on column '%s.%s')r,   r   r-   Úexisting_server_defaultrA   Ú_user_compare_server_defaultr0   Úcallabler"   r   r   r   ÚtextrD   rE   rF   ©r    r2   r	   r3   r4   r5   r6   r   r7   rA   r8   r9   Úis_diffs                r!   rN   rN   ²   s4  € ð $×2Ñ2ÐØ×.Ñ.ÐØÑÐ$4Ñ$<Ü%×.Ñ.Ð.à.>Ô+à'×9Ñ9Ðà×5Ñ5¸Ò>Ü%×*Ñ*Ð*äÐ%×BÑB×CÑCÜ%×.Ñ.Ð.ä BØó!Ðö 1AŒŒSÐ"Ó#×'Ñ'×,Ò,Àdð ð  ×<Ñ<ØØØØØ×#Ñ#Ø!ó€Gö Ø0@Ô-Ü�‰ð/à×:Ñ:ØØô	
ô &×*Ñ*Ð*Ø	�EÒ	ô &×*Ñ*Ð*ä!×*Ñ*Ð*r#   c                óX  • UR                   nUR                   nUc  Uc  [        R                  $ X�l        [	        U[
        [        45      (       a  [	        U[
        [        45      (       d  [        R                  $ U R                  n	[        Xp5      n
U(       a$  [        [        U5      R                  R                  OSnU	R                  R                  UUU
U5      nU(       a8  Xql        [         R#                  SU	R                  UU5        [        R$                  $ [        R                  $ )zÆuse dialect.impl.compare_server_default.

This would in theory not be needed.  however we dont know if any
third party libraries haven't made their own alembic dialect and
implemented this method.

Nz9Dialect impl %s detected server default on column '%s.%s')r,   r   r-   rM   r   r
   r   rA   r"   r   r   r   rP   rB   Úcompare_server_defaultrD   rE   rF   r0   rQ   s                r!   Ú$_dialect_impl_compare_server_defaultrU   ì   s  € ð  $×2Ñ2ÐØ×.Ñ.ÐØÑÐ$4Ñ$<Ü%×.Ñ.Ð.ð
 /?Ô+äØœ=¬(Ð3÷ñ äÐ(¬=¼(Ð*C×DÑDÜ%×.Ñ.Ð.à'×9Ñ9Ðä BØó!Ðö 1AŒŒSÐ"Ó#×'Ñ'×,Ò,Àdð ð  ×$Ñ$×;Ñ;ØØØ!Øó	€Gö Ø0@Ô-Ü�‰ØGØ×"Ñ"ØØô		
ô &×*Ñ*Ð*Ü!×*Ñ*Ð*r#   c                ó*  • UR                   R                  UL a  SUR                  S'   [        R
                  $ UR                  SL a  SUR                  S'   [        R
                  $ UR                  SL a  SUR                  S'   [        R
                  $ )NTÚautoincrementF)ÚtableÚ_autoincrement_columnÚkwrW   r   r-   )r    r2   r	   r3   r4   r5   r6   s          r!   Ú_setup_autoincrementr[   &  s�   € ð ×Ñ×/Ñ/°<Ò?Ø.2ˆ×Ñ˜?Ñ+ô "×*Ñ*Ð*ð 
×	#Ñ	# tÒ	+Ø.2ˆ×Ñ˜?Ñ+ô "×*Ñ*Ð*ð 
×	#Ñ	# uÒ	,Ø.3ˆ×Ñ˜?Ñ+ä!×*Ñ*Ð*r#   c                ó  • U R                  [        SS[        R                  S9  U R                  [        SS5        U R                  [
        SS5        U R                  [        SS5        U R                  [        SS[        R                  S9  g )NÚcolumnr,   )Úpriority)	Úadd_autogenerate_comparatorrN   r   ÚFIRSTr:   rC   r[   rU   ÚLAST)Úplugins    r!   Úsetuprc   9  s™   € Ø
×&Ñ&Ü$ØØÜ!×'Ñ'ð	 'ñ ð ×&Ñ&Ü!ØØôð ×&Ñ&Ü!ØØôð ×&Ñ&ÜØØôð
 ×&Ñ&Ü,ØØÜ!×&Ñ&ð	 'ò r#   )r   r   r    r   Úreturnú
str | None)r)   r   rd   r   )r    r   r2   r   r	   re   r3   r   r4   r   r5   úColumn[Any]r6   rf   rd   r   )r3   r   r4   r   rd   ÚNone))ÚorderÚon_nullÚoracle_orderÚoracle_on_null)r    r   r2   r   r	   re   r3   úquoted_name | strr4   rl   r5   rf   r6   rf   rH   zSequence[str]rd   r   )r    r   r2   r   r	   re   r3   rl   r4   rl   r5   rf   r6   rf   rd   r   )r    r   r2   r   r	   re   r3   rl   r4   r   r5   rf   r6   rf   rd   r   )rb   r   rd   rg   )+Ú
__future__r   Úcollections.abcr   Úloggingr&   Útypesr   Útypingr   r   r   Ú
sqlalchemyr	   r   Úsqlalchemy.sql.schemar
   r%   r   r   r   r   Úsqlalchemy.sql.elementsr   r   Úautogenerate.apir   Úoperations.opsr   Úruntime.pluginsr   Ú	getLoggerÚ__name__rE   r"   r*   r:   r/   rC   rN   rU   r[   rc   © r#   r!   Ú<module>r{      s'  ðÝ "å $Û Û 	Ý Ý Ý Ý  å *Ý /å Ý $Ý *Ý æÝ3Ý,å2Ý/Ý)à×Ò˜Ó!€ðØðØ,:ðàôô&Að7'Ø#ð7'à"ð7'ð ð7'ð ð	7'ð
 ð7'ð ð7'ð ð7'ð ô7'ôtOðð6+Ø#ð6+à"ð6+ð ð6+ð ð	6+ð
 ð6+ð ð6+ð ð6+ð ð6+ð õ6+ðr7+Ø#ð7+à"ð7+ð ð7+ð ð	7+ð
 ð7+ð ð7+ð ð7+ð ô7+ðt7+Ø#ð7+à"ð7+ð ð7+ð ð	7+ð
 ð7+ð ð7+ð ð7+ð ô7+ðt+Ø#ð+à"ð+ð ð+ð ð	+ð
 ð+ð ð+ð ð+ð ô+õ&r#   