
    gC                    4   S SK J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  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&  S	SKJ'r'   " S S \5      r( " S! S"\(5      r) " S# S$\5      r* " S% S&\5      r+ " S' S(\+5      r,\" \S)S*5      \" \S)S*5      \" \S)S*5      \" \S)S*5      S+ 5       5       5       5       r-\" \*S)S*5            S1S, j5       r.\" \,S)S*5            S2S- j5       r/\" \+S)S*5            S3S. j5       r0              S4S/ jr1\" \	RD                  S)S*5            S5S0 j5       r2g)6    )annotationsN)Any)Optional)TYPE_CHECKING)Unionschema)types   )alter_table)AlterColumn)ColumnDefault)
ColumnName)ColumnNullable)
ColumnType)format_column_name)format_server_default)DefaultImpl   )util)sqla_compat)_is_mariadb)_is_type_bound)compiles)Literal)MySQLDDLCompiler)DropConstraint)
Constraint)
TypeEngine)_ServerDefaultc                     ^  \ rS rSrSrSr\R                  SS1SS14-   rSS	/r            S                               SU 4S
 jjjr	    SU 4S jjr
      SS jrS rS rS rSrU =r$ )	MySQLImpl)   mysqlFBOOLTINYINTJSONLONGTEXTzcharacter set ([\w\-_]+)zcollate ([\w\-_]+)c                ^  > [         R                  " XI5      (       d  [         R                  " XI5      (       a  [        TU ]  " UU4UUUUU
UU	S.UD6  Uc  U R                  Ub  UOUU5      (       aH  U R                  [        UUUUb  UOUUb  UOU
b  U
OSUb  UOUUSLa  UOU	Ub  UOUUSLa  UOUS9	5        g Uc  Uc  Uc  USLaH  U R                  [        UUUUb  UOUUb  UOU
b  U
OSUb  UOUUSLa  UOU	Ub  UOUUSLa  UOUS9	5        g USLa  U R                  [        XXGS95        g g )N)nullabletype_r	   existing_typeexisting_nullableserver_defaultexisting_server_defaultTF)r	   newnamer*   r+   defaultautoincrementcommentr   )
r   _server_default_is_identity_server_default_is_computedsuperalter_column$_is_mysql_allowed_functional_default_execMySQLChangeColumnMySQLModifyColumnMySQLAlterDefault)self
table_namecolumn_namer*   r.   namer+   r	   r,   r/   r-   r2   existing_autoincrementr3   existing_commentkw	__class__s                   Y/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/alembic/ddl/mysql.pyr7   MySQLImpl.alter_column3   s   $ 22
 
44
 

 G  "+"3-(?  tHH&EM> 
  
 JJ!!$($4D+ $/ !  1< .!% $)#4%- *6 '4 )4 &3 $+%#7=M5@   (e#JJ!!$($4D+ $/ !  1< .!% $)#4%- *6 '4 )4 &3 $+%#7=M5> 5(JJ!^ )    c                   > [        U[        R                  5      (       a  [        U5      (       a  g [        TU ]  U5        g N)
isinstancer	   CheckConstraintr   r6   drop_constraint)r=   constrD   s     rE   rL   MySQLImpl.drop_constraint   s2     eV33449N9N&rG   c                f    US L=(       a'    UR                   [        R                  L =(       a    US L$ rI   )_type_affinitysqltypesDateTime)r=   r+   r.   s      rE   r8   .MySQLImpl._is_mysql_allowed_functional_default   s7      +$$(9(99+d*	
rG   c                   UR                   R                  [        R                  L a0  UR                  (       a  UR
                  (       d  U(       d  US:X  a  gU(       aH  UR                   R                  [        R                  L a!  Ub  [        R                  " SSU5      OS nXC:g  $ U(       aH  UR                   R                  [        R                  L a!  [        R                  " SSU5      nUSU S3:g  $ U(       a  U(       a  [        R                  " SUR                  5       5      n[        R                  " SUR                  5       5      nU(       aO  U(       d  gUR                  S5      UR                  S5      :w  a  gUR                  S	5      nUR                  S	5      n[        R                  " S
SUR                  5       5      [        R                  " S
SUR                  5       5      :g  $ XC:g  $ )Nz'0'Fz^'|'$ 'z(.*) (on update.*?)(?:\(\))?$Tr   r   z(.*?)(?:\(\))?$z\1)typerP   rQ   Integerprimary_keyr2   resubStringmatchlowergroup)r=   inspector_columnmetadata_columnrendered_metadata_defaultrendered_inspector_defaultmetadata_defaultonupdate_insonupdate_mets           rE   compare_server_default MySQLImpl.compare_server_default   s      //83C3CC ,,$22-*e3& %%448H8HH .9 x%?@ '
 .JJ%$$33xF!vvh4MN-15E4Fa1HHH',E 880*002L 880)//1L
 #!''*l.@.@.CC-9-?-?-B*,8,>,>q,A)66"E+E+K+K+M"E+D+J+J+L  .JJrG   c                `   [        5       n[        U5       H  nUR                  (       a  M  UR                   H  nUR                  UR                  :X  a/  UR                  U5        UR                  UR                  5          Mn  UR                   HK  nUR                  UR                  :X  d  M  UR                  U5        UR                  UR                  5          O   UR                  U;   d  M    M     M     [        U5       H&  nUR                  U;   d  M  UR                  U5        M(     g rI   )setlistuniquecolumnsr@   removeaddforeign_keys)	r=   conn_unique_constraintsconn_indexesmetadata_unique_constraintsmetadata_indexesremovedidxcolfks	            rE   correct_for_autogen_constraints)MySQLImpl.correct_for_autogen_constraints   s     %%Czz
 {{88sxx' '',KK)**Bww#((*$++C0CHH-	 +
 88w& # &. ()Cxx7" '', *rG   c                "   U Vs0 s H  nU R                  U5      R                  U_M!     nnU Vs0 s H  nU R                  U5      R                  U_M!     nn[        U5      R	                  U5       H  nXV   nXF   nUR
                  b2  UR
                  R                  5       S:X  a  UR
                  c  SUl        UR                  c  MY  UR                  R                  5       S:X  d  My  UR                  b  M  SUl        M     g s  snf s  snf )NrestrictRESTRICT) _create_reflected_constraint_sigunnamed_no_options_create_metadata_constraint_sigrj   intersectionondeleter^   onupdate)	r=   conn_fksmetadata_fksrx   conn_fk_by_sigmetadata_fk_by_sigsigmdfkcnfks	            rE   correct_for_autogen_foreignkeys)MySQLImpl.correct_for_autogen_foreignkeys"  s    
 11"5HH"L 	 
 #
" 004GGK" 	 

 ~&334FGC%*D!&D
 )MM'')Z7MM) *)MM'')Z7MM) *# H

s
   &D&D )NFNNNNNNNNFN) r>   strr?   r   r*   Optional[bool]r.   %Union[_ServerDefault, Literal[False]]r@   Optional[str]r+   Optional[TypeEngine]r	   r   r,   r   r/   zOptional[_ServerDefault]r-   r   r2   r   rA   r   r3   $Optional[Union[str, Literal[False]]]rB   r   rC   r   returnNone)rM   r   r   r   )r+   r   r.   r   r   bool)__name__
__module____qualname____firstlineno____dialect__transactional_ddlr   type_synonymstype_arg_extractr7   rL   r8   rg   ry   r   __static_attributes____classcell__rD   s   @rE   r"   r"   )   sr   K--		1 M 45JK $(@E"&* $.2<@,0(,158=*.qq q !	q
 >q q $q q ,q ":q *q &q !/q 6q (q  !q" 
#q qf'' 
'	
#	
 >	
 
		
AKF#-J+ +rG   r"   c                      \ rS rSrSrSrg)MariaDBImpli@  mariadbr   N)r   r   r   r   r   r   r   rG   rE   r   r   @  s    KrG   r   c                  D   ^  \ rS rSr S         SU 4S jjjrSrU =r$ )r<   iD  c                @   > [         [        U ]  XS9  X l        X0l        g )Nr   )r6   r   __init__r?   r1   )r=   r@   r?   r1   r	   rD   s        rE   r   MySQLAlterDefault.__init__E  s"     	k4)$)>&rG   )r?   r1   rI   )
r@   r   r?   r   r1   r    r	   r   r   r   r   r   r   r   r   r   r   r   s   @rE   r<   r<   D  sB     !%		 	  		
 	 
	 	rG   r<   c                  d   ^  \ rS rSr       S                   SU 4S jjjrSrU =r$ )r:   iQ  c
                   > [         [        U ]  XS9  X l        X`l        X@l        Xpl        Xl        Xl        Uc  [        R                  " S5      e[        R                  " U5      U l        g )Nr   zDAll MySQL CHANGE/MODIFY COLUMN operations require the existing type.)r6   r   r   r?   r*   r0   r1   r2   r3   r   CommandErrorrQ   to_instancer+   )r=   r@   r?   r	   r0   r+   r*   r1   r2   r3   rD   s             rE   r   MySQLChangeColumn.__init__R  sh     	k4)$)>& *=##- 
 ))%0
rG   )r2   r?   r3   r1   r0   r*   r+   )NNNNFNF)r@   r   r?   r   r	   r   r0   r   r+   r   r*   r   r1   /Optional[Union[_ServerDefault, Literal[False]]]r2   r   r3   r   r   r   r   r   s   @rE   r:   r:   Q  s    
 !%!%&*#'CH(,8=11 1 	1
 1 $1 !1 A1 &1 61 
1 1rG   r:   c                      \ rS rSrSrg)r;   in  r   N)r   r   r   r   r   r   rG   rE   r;   r;   n  s    rG   r;   r$   r   c                    [        S5      e)Nz9Individual alter column constructs not supported by MySQL)NotImplementedErrorelementcompilerrC   s      rE    _mysql_doesnt_support_individualr   r  s    
 C rG   c           	         [        XR                  U R                  5      < S[        XR                  5      < SU R
                  b  S[        XR
                  5      -  < 3$ S< 3$ )Nz ALTER COLUMN  zSET DEFAULT %szDROP DEFAULT)r   r>   r	   r   r?   r1   r   r   s      rE   _mysql_alter_defaultr   |  si    
 	H00'..A8%8%89 * 4XOO  	    	 rG   c                    [        XR                  U R                  5      < S[        XR                  5      < S[        UU R                  U R                  U R                  U R                  U R                  S9< 3$ )Nz MODIFY r   r*   r.   r+   r2   r3   )r   r>   r	   r   r?   _mysql_colspecr*   r1   r+   r2   r3   r   s      rE   _mysql_modify_columnr     sb    
 	H00'..A8%8%89%%"??--!//OO	
 rG   c                (   [        XR                  U R                  5      < S[        XR                  5      < S[        XR
                  5      < S[        UU R                  U R                  U R                  U R                  U R                  S9< 3$ )Nz CHANGE r   r   )r   r>   r	   r   r?   r0   r   r*   r1   r+   r2   r3   r   s      rE   _mysql_change_columnr     sn    
 	H00'..A8%8%898__5%%"??--!//OO	
	 rG   c                2   U R                   R                  R                  U5      < SU(       a  SOS< 3nU(       a  US-  nUSLa  Ub  US[        X5      -  -  nU(       a5  USU R                  R                  U[        R                  " 5       5      -  -  nU$ )Nr   NULLzNOT NULLz AUTO_INCREMENTFz DEFAULT %sz COMMENT %s)dialecttype_compilerprocessr   sql_compilerrender_literal_valuerQ   r\   )r   r*   r.   r+   r2   r3   specs          rE   r   r     s     	&&..u5
*D !!U"~'A 5h OOO 5 5 J JX__&!
 
 	
 KrG   c                j   U R                   n[        U[        R                  [        R                  [        R
                  45      (       a  U(       a   eUR                  U 5      $ [        U[        R                  5      (       a  [        UR                  5      (       aF  SUR                  R                  UR                  5      < SUR                  R                  U5      < 3$ SUR                  R                  UR                  5      < SUR                  R                  U5      < 3$ [        S5      e)zRRedefine SQLAlchemy's drop constraint to
raise errors for invalid constraint type.zALTER TABLE z DROP CONSTRAINT z DROP CHECK zFNo generic 'DROP CONSTRAINT' in MySQL - please specify constraint type)r   rJ   r	   ForeignKeyConstraintPrimaryKeyConstraintUniqueConstraintvisit_drop_constraintrK   r   r   preparerformat_tabletableformat_constraintr   )r   r   rC   
constraints       rE   _mysql_drop_constraintr     s    J''''##	
  v--g66	J 6 6	7	7 x''((!!..z/?/?@!!33J?  ) !!..z/?/?@!!33J? 
 "-
 	
rG   )r   r<   r   r   r   r   )r   r;   r   r   r   r   )r   r:   r   r   r   r   )r   r   r*   r   r.   r   r+   r   r2   r   r3   r   r   r   )r   r   r   r   r   r   )3
__future__r   rZ   typingr   r   r   r   
sqlalchemyr	   r
   rQ   baser   r   r   r   r   r   r   r   implr   rU   r   r   util.sqla_compatr   r   r   r   sqlalchemy.dialects.mysql.baser   sqlalchemy.sql.ddlr   sqlalchemy.sql.schemar   sqlalchemy.sql.type_apir   r    r"   r   r<   r:   r;   r   r   r   r   r   r   r   rG   rE   <module>r      s   # 	       (        $ '    * - '?102$T+ T+n) 
 
1 1:	) 	 
.'9-	*gy)	-),	*gy) * - * . 

Wi0*: 1 

Wi0*: 1" 

Wi0*: 1$ D 	
 " 2 	0 
&

)4#
#
'7#
#
 5#
rG   