
    h                     2    S SK Jr  S SKJr   " S S\5      rg)    )DatabaseError)DatabaseSchemaEditorc                      ^  \ rS rSrSrSrSrSrSrSr	Sr
/ S	QrU 4S
 jrS rSU 4S jjrS rU 4S jrU 4S jrU 4S jrU 4S jrU 4S jrSrU =r$ )SpatialiteSchemaEditor   z[SELECT AddGeometryColumn(%(table)s, %(column)s, %(srid)s, %(geom_type)s, %(dim)s, %(null)s)z0SELECT CreateSpatialIndex(%(table)s, %(column)s)z#DROP TABLE idx_%(table)s_%(column)szUSELECT RecoverGeometryColumn(%(table)s, %(column)s, %(srid)s, %(geom_type)s, %(dim)s)z3SELECT DiscardGeometryColumn(%(table)s, %(column)s)z9DELETE FROM %(geom_table)s WHERE f_table_name = %(table)szYUPDATE %(geom_table)s SET f_table_name = %(new_table)s WHERE f_table_name = %(old_table)s)geometry_columnsgeometry_columns_authgeometry_columns_timegeometry_columns_statisticsc                 4   > [         TU ]  " U0 UD6  / U l        g N)super__init__geometry_sql)selfargskwargs	__class__s      b/var/www/html/env/lib/python3.13/site-packages/django/contrib/gis/db/backends/spatialite/schema.pyr   SpatialiteSchemaEditor.__init__    s    $)&)    c                 L    U R                   R                  R                  U5      $ r   )
connectionopsgeo_quote_name)r   names     r   r   %SpatialiteSchemaEditor.geo_quote_name$   s    ""11$77r   c                   > SSK Jn  [        X$5      (       d  [        TU ]  XU5      $ U R
                  R                  U R                  U R                  UR                  R                  5      U R                  UR                  5      UR                  U R                  UR                  5      UR                  [        UR                   (       + 5      S.-  5        UR"                  (       ag  U R
                  R                  U R$                  U R'                  UR                  R                  5      U R'                  UR                  5      S.-  5        g)Nr   GeometryField)tablecolumnsrid	geom_typedimnullr!   r"   )NN)django.contrib.gis.db.modelsr    
isinstancer   
column_sqlr   appendsql_add_geometry_columnr   _metadb_tabler"   r#   r$   r%   intr&   spatial_indexsql_add_spatial_index
quote_name)r   modelfieldinclude_defaultr    r   s        r   r*   !SpatialiteSchemaEditor.column_sql'   s   >%//7%eODD 	  ((,,U[[-A-AB--ell;

!00Ayy

N+
	
 $$**!__U[[-A-AB"ooell; r   c                 <   U R                  U R                  U R                  UR                  R                  5      U R                  UR
                  5      S.-  5        U R                  U R                  UR                  R                  UR
                  S.-  5        g )Nr'   )executesql_remove_geometry_metadatar2   r-   r.   r"   sql_drop_spatial_index)r   r3   r4   s      r   remove_geometry_metadata/SpatialiteSchemaEditor.remove_geometry_metadataD   s|    --)=)=>//%,,7	
 	''--,,	
r   c                 z   > [         TU ]  U5        U R                   H  nU R                  U5        M     / U l        g r   )r   create_modelr   r8   )r   r3   sqlr   s      r   r>   #SpatialiteSchemaEditor.create_modelT   s4    U#$$CLL %r   c                   > SSK Jn  UR                  R                   H&  n[	        XC5      (       d  M  U R                  X5        M(     U R                   HH  n U R                  U R                  UU R                  UR                  R                  5      S.-  5        MJ     [        TU ]4  " U40 UD6  g ! [         a     Mk  f = f)Nr   r   )
geom_tabler!   )r(   r    r-   local_fieldsr)   r;   geometry_tablesr8   sql_discard_geometry_columnsr2   r.   r   r   delete_model)r   r3   r   r    r4   rB   r   s         r   rF   #SpatialiteSchemaEditor.delete_model[   s    > [[--E%//--e; . ..J	55&0!%1E1E!F / 	U-f- ! s   AB22
C ?C c                    > SSK Jn  [        X#5      (       a=  U R                  X5        U R                   H  nU R                  U5        M     / U l        g [        TU ]  X5        g )Nr   r   )r(   r    r)   r*   r   r8   r   	add_field)r   r3   r4   r    r?   r   s        r   rI    SpatialiteSchemaEditor.add_fieldp   sN    >e++OOE)((S! ) "DGe+r   c                 p   > SSK Jn  [        X#5      (       a  U R                  XS9  g [        TU ]  X5        g )Nr   r   )delete_field)r(   r    r)   _remake_tabler   remove_field)r   r3   r4   r    r   s       r   rN   #SpatialiteSchemaEditor.remove_field|   s1    > e++u9G .r   c                   > SSK Jn  X#:X  dG  U R                  R                  R                  (       a#  UR                  5       UR                  5       :X  a  g UR                  R                   H^  n[        XT5      (       d  M  U R                  U R                  U R                  U5      U R                  UR                  5      S.-  5        M`     [        TU ]9  XU5        U R                   HD  n U R                  U R                   UU R                  U5      U R                  U5      S.-  5        MF     UR                  R                   GH  n[        XT5      (       ay  U R                  U R$                  U R'                  U5      U R'                  UR                  5      UR(                  U R'                  UR*                  5      UR,                  S.-  5        [/        USS5      (       d  M  U R                  U R0                  U R                  SU< S	UR                  < 35      U R                  SU< S	UR                  < 35      S
.-  5        GM     g ! ["         a     GMv  f = f)Nr   r   r'   )rB   	old_table	new_table)r!   r"   r#   r$   r%   r0   Fidx__)rQ   rR   )r(   r    r   featuresignores_table_name_caselowerr-   rC   r)   r8   r9   r2   r"   r   alter_db_tablerD   sql_update_geometry_columnsr   sql_recover_geometry_metadatar   r#   r$   r%   getattrsql_rename_table)r   r3   old_db_tablenew_db_tabler    r4   rB   r   s          r   rX   %SpatialiteSchemaEditor.alter_db_table   s   >'OO$$<<""$(:(:(<<[[--E%//55!%!>"&//%,,"? . 	uLA..J
44&0%)__\%B%)__\%B / [[--E%//66!%!4!4\!B"&"5"5ell"C %

%)%8%8%I$yy	 uou55))%)__+7F& &*__+7F&	
 . ! s   -A I
I I )r   )F)__name__
__module____qualname____firstlineno__r,   r1   r:   rZ   r9   rE   rY   rD   r   r   r*   r;   r>   rF   rI   rN   rX   __static_attributes____classcell__)r   s   @r   r   r      sz    	,  OB	" " $Y C !	-  
O8:
 .*
,/9 9r   r   N)	django.dbr   !django.db.backends.sqlite3.schemar   r    r   r   <module>ri      s    # B}1 }r   