
    vd                         d dl Z d dlmZ e j        dk    rd dlmZ nd dlmZ e j        dk     rd dlmZ nd dl	mZ  G d de          Z
dS )	    N)models      )BaseDatabaseCreationr      )truncate_namec                   X     e Zd ZdZ fdZd Zej        dk     rd Znd Zd Z	d Z
 xZS )	DatabaseCreationz3Maps Django Field object with MySQL data types
    c                 `   t          t          |                               |           t          j        dk     rri dddddddd	d
d	dddddddd	dd	dddddddddddddddd d	d!d"d#d$| _        | j        j        d%k    r!| j                            d&d'd(           d S d S d S ))Nr   	AutoFieldzinteger AUTO_INCREMENTBinaryFieldlongblobBooleanFieldbool	CharFieldzvarchar(%(max_length)s)CommaSeparatedIntegerField	DateFielddateDateTimeFielddatetimeDecimalFieldz+numeric(%(max_digits)s, %(decimal_places)s)	FileFieldFilePathField
FloatFieldzdouble precisionIntegerFieldintegerBigIntegerFieldbigintIPAddressFieldzchar(15)GenericIPAddressFieldzchar(39)NullBooleanFieldOneToOneFieldzinteger UNSIGNEDzsmallint UNSIGNEDsmallintlongtexttime)PositiveIntegerFieldPositiveSmallIntegerField	SlugFieldSmallIntegerField	TextField	TimeField)         zdatetime(6)ztime(6))r   r-   )	superr   __init__djangoVERSION
data_types
connectionmysql_versionupdate)selfr6   	__class__s     [/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/mysql/connector/django/creation.pyr2   zDatabaseCreation.__init__   s   %%..z:::>F""5z  6	
 -.G V    M 6  !: 0 	 "8 !*  (!" #F#$  %& );-@6%/'#1  DO8 ,	99&&%2!*( (     = #": :9    c                 6   g }t           j        dk     r| j        j        d         r8|                    d                    | j        j        d                              | j        j        d         r8|                    d                    | j        j        d                              n^| j        j        d         }|d         r|                    d|d         z             |d	         r|                    d
|d	         z             d                    |          S )Nr   TEST_CHARSETzCHARACTER SET {0}TEST_COLLATIONzCOLLATE {0}TESTCHARSETzCHARACTER SET %s	COLLATIONz
COLLATE %s )r3   r4   r6   settings_dictappendformatjoin)r9   suffixtest_settingss      r;   sql_table_creation_suffixz*DatabaseCreation.sql_table_creation_suffix8   s*   >F"",^< D188O1.AC C D D D,-=> Fm22O12BCE E F F F !O9&AMY' M0=3KKLLL[) Il];-GGHHHxxr<   )r   r/   c                 
    g dfS z-All inline references are pending under MySQLT )r9   fieldknown_modelsstyles       r;   %sql_for_inline_foreign_key_referencesz6DatabaseCreation.sql_for_inline_foreign_key_referencesL        t8Or<   c                 
    g dfS rL   rM   )r9   modelrN   rO   rP   s        r;   rQ   z6DatabaseCreation.sql_for_inline_foreign_key_referencesQ   rR   r<   c           	         |j         }| j        j        j        }d}|                    |                     ||                                                    |                    t          j	        |          
                    | j                            |                    d                    |                    |                     ||                                                    |                    t          j	        |j        j                  
                    | j                            |                    d                    g}|                                |                                |j        |j        j        f|                                |                                |j        j        j         j        |j        j        j         j        j        fg}||fS )Nz    {column} {type} {options},)r6   zNOT NULL)columntypeoptions)_metar6   ops
quote_namerF   	SQL_FIELDm2m_column_nameSQL_COLTYPEr   
ForeignKeydb_typeSQL_KEYWORDm2m_reverse_namereltom2m_db_tabledb_tablepkrV   )	r9   rT   rN   rP   optsqn	columndeftable_outputdeferreds	            r;   &sql_for_inline_many_to_many_referencesz7DatabaseCreation.sql_for_inline_many_to_many_referencesV   s   {_ +4	rr%*?*?*A*A'B'BCC&&v'8'?'?'G'G# (H (0 (0 1 1))*55	    rr%*@*@*B*B'C'CDD&&v'8'F'F'N'N# (O (0 (0 1 1))*55	   
  !!5#8#8#:#:DM !!5#9#9#;#;	"+UY\-?-B-IK
 X%%r<   c           
         t          |          dk    r8|d         j        r+| j        j                            |d         j                  }n8|j        j        r*| j        j                            |j        j                  }nd}|rd|z   }g }| j        j        j        }|D ]8}|                    |                     ||j	                                       9d
                    |j        j        |                     d |D                                 }|                    d          dz   |                     |t          || j        j                                                                      z   dz   |                    d          z   dz   |                     ||j        j                            z   d	z   gS )
Nr   r    rC   z{0}_{1}c                     g | ]	}|j         
S rM   )name).0fs     r;   
<listcomp>zCDatabaseCreation.sql_destroy_indexes_for_fields.<locals>.<listcomp>   s    3K3K3KqAF3K3K3Kr<   z
DROP INDEXON;)lendb_tablespacer6   rZ   tablespace_sqlrY   r[   rE   r\   rV   rF   rf   _digestra   	SQL_TABLEr
   max_name_length)	r9   rT   fieldsrP   ry   field_namesri   rs   
index_names	            r;   sql_destroy_indexes_for_fieldsz/DatabaseCreation.sql_destroy_indexes_for_fieldsr   s   v;;!q	 7!_0??q	') )NN[& 	 !_0??)+ +NN  N 	2 >1N_ + 	> 	>Aurr!(||<<====%%ek&:&*ll3K3KF3K3K3K&L&LN N
 l++c1OOBB}Z#3355 7  7 8 8 9 99;>? d##$ '** OOBBu{34455	6 9<	<
 	
r<   )__name__
__module____qualname____doc__r2   rJ   r3   r4   rQ   rm   r   __classcell__)r:   s   @r;   r   r      s         $ $ $ $ $L     & ~	 	 	 	
	 	 	
& & &8
 
 
 
 
 
 
r<   r   )r3   	django.dbr   r4    django.db.backends.base.creationr   django.db.backends.creationdjango.db.backends.utilr
   django.db.backends.utilsr   rM   r<   r;   <module>r      s          	>VEEEEEEE@@@@@@	>F5555555666666~
 ~
 ~
 ~
 ~
+ ~
 ~
 ~
 ~
 ~
r<   