
    j                     j    S SK r S SKJr  S SKJr  S SKJr  \ R                  " S5      r " S S\5      r	g)    N)GeometryField)OperationalError)DatabaseSchemaEditorzdjango.contrib.gisc                   h   ^  \ rS rSrSrU 4S jrU 4S jrU 4S jr SU 4S jjrS r	S r
S	 rS
rU =r$ )MySQLGISSchemaEditor
   z7CREATE SPATIAL INDEX %(index)s ON %(table)s(%(column)s)c                    > [        XR                  R                  R                  5      (       a  [        TU ]  [        U5      5      $ [        TU ]  U5      $ N)
isinstance
connectionopsAdaptersuperquote_valuestr)selfvalue	__class__s     c/var/www/html/KUNJ/venv/lib/python3.13/site-packages/django/contrib/gis/db/backends/mysql/schema.pyr    MySQLGISSchemaEditor.quote_value   sB    e__0088997&s5z22w"5))    c                   > [        U[        5      (       a  UR                  (       a  UR                  (       d  U R                  R                  5        nU R                  R                  R                  X1R                  R                  5      nS S S 5        U R                  X5      nW(       a  U/$ [        R                  SU S35        / $ [        TU ]9  X5      $ ! , (       d  f       NS= f)NzCannot create SPATIAL INDEX z-. Only MyISAM, Aria, and InnoDB support them.)r   r   spatial_indexnullr   cursorintrospectionsupports_spatial_index_metadb_table_create_spatial_index_sqlloggererrorr   _field_indexes_sql)r   modelfieldr   r   sqlr   s         r   r#   'MySQLGISSchemaEditor._field_indexes_sql   s    e]++0C0CEJJ'')VOO11HH 4 4 ' * 00>C%u23% 8$ % 	w)%77 *)s   :C
C(c                 $  > [        U[        5      (       aE  UR                  (       a4  UR                  (       d#  U R	                  X5      n U R                  U5        [        TU ])  X5        g ! [         a    [        R                  SU5         N2f = f)Nz`Couldn't remove spatial index: %s (may be expected if your storage engine doesn't support them).)r   r   r   r   _delete_spatial_index_sqlexecuter   r!   r"   r   remove_field)r   r$   r%   r&   r   s       r   r+   !MySQLGISSchemaEditor.remove_field%   st    e]++0C0CEJJ00>CS! 	U* $ Ds   A, , BBc	                   > [         TU ]  UUUUUUUUS9  [        U[        5      =(       a$    UR                  =(       a    UR
                  (       + n	[        U[        5      =(       a$    UR                  =(       a    UR
                  (       + n
U	(       d(  U
(       a!  U R                  U R                  X5      5        g U	(       a)  U
(       d!  U R                  U R                  X5      5        g g g )N)strict)	r   _alter_fieldr   r   r   r   r*   r    r)   )r   r$   	old_field	new_fieldold_typenew_typeold_db_paramsnew_db_paramsr.   old_field_spatial_indexnew_field_spatial_indexr   s              r   r/   !MySQLGISSchemaEditor._alter_field3   s     	 	 		
 y-0 #''#NN" 	  y-0 #''#NN" 	 
 '+BLL77IJ$-DLL77IJ .E$r   c                 R    UR                   R                  < SUR                  < S3$ )N__id)r   r   column)r   r$   r%   s      r   _create_spatial_index_name/MySQLGISSchemaEditor._create_spatial_index_nameX   s    "[[115<<@@r   c                     U R                  X5      nU R                  R                  R                  nU R                  U" U5      U" UR
                  R                  5      U" UR                  5      S.-  $ )N)indextabler<   )r=   r   r   
quote_namesql_add_spatial_indexr   r   r<   )r   r$   r%   
index_nameqns        r   r    .MySQLGISSchemaEditor._create_spatial_index_sql[   sd    44UB
__  ++))
^,,-&-
 
 	
r   c                 F    U R                  X5      nU R                  X5      $ r
   )r=   _delete_index_sql)r   r$   r%   rD   s       r   r)   .MySQLGISSchemaEditor._delete_spatial_index_sqld   s#    44UB
%%e88r    )F)__name__
__module____qualname____firstlineno__rC   r   r#   r+   r/   r=   r    r)   __static_attributes____classcell__)r   s   @r   r   r   
   s9    U*
8&+. #KJA
9 9r   r   )
loggingdjango.contrib.gis.db.modelsr   	django.dbr   django.db.backends.mysql.schemar   	getLoggerr!   r   rJ   r   r   <module>rV      s1     6 & @			/	0\9/ \9r   