o
    :Zœct
  ã                   @   s    d dl mZ G dd„ deƒZdS )é    )ÚDatabaseSchemaEditorc                       sP   e Zd ZdZdZdZdZdZdd„ Z‡ fdd	„Z	‡ fd
d„Z
‡ fdd„Z‡  ZS )ÚPostGISSchemaEditorÚGISTÚGIST_GEOMETRY_OPS_NDzST_ConvexHull(%s)zLALTER COLUMN %(column)s TYPE %(type)s USING ST_Force3D(%(column)s)::%(type)szLALTER COLUMN %(column)s TYPE %(type)s USING ST_Force2D(%(column)s)::%(type)sc                 C   s   | j j |¡S )N)Ú
connectionÚopsÚgeo_quote_name)ÚselfÚname© r   úc/var/www/chikooza/env/lib/python3.10/site-packages/django/contrib/gis/db/backends/postgis/schema.pyr      s   z"PostGISSchemaEditor.geo_quote_namec                    s   t |ddƒrdS tƒ  ||¡S )NÚspatial_indexFT)ÚgetattrÚsuperÚ_field_should_be_indexed)r	   ÚmodelÚfield©Ú	__class__r   r   r      s   z,PostGISSchemaEditor._field_should_be_indexedc                    s´   t |ƒdkst|d dƒstƒ j||fi |¤ŽS |d }|  |j¡}|jdkr-| j| }n|jdkr<|j	s<d|| j
f }| j|  d|jj|jf ¡|  |jj¡d| j |d	d	d
œ S )Né   r   ÚgeodeticÚRASTERé   z%s %sz%s_%s_idzUSING %sÚ )r
   ÚtableÚusingÚcolumnsÚextraÚ	condition)ÚlenÚhasattrr   Ú_create_index_sqlÚ
quote_nameÚcolumnÚ	geom_typeÚrast_index_wrapperÚdimÚ	geographyÚgeom_index_ops_ndÚsql_create_indexÚ_metaÚdb_tableÚgeom_index_type)r	   r   ÚfieldsÚkwargsr   Úfield_columnr   r   r   r!      s    
úz%PostGISSchemaEditor._create_index_sqlc                    s‚   t |dƒr
t |dƒstƒ  ||||¡S |jdkr!|jdkr!| j}n|jdkr/|jdkr/| j}n| j}||  |j¡|dœ g fg fS )z6
        Special case when dimension changed.
        r&   r   é   )r#   Útype)	r    r   Ú_alter_column_type_sqlr&   Úsql_alter_column_to_3dÚsql_alter_column_to_2dÚsql_alter_column_typer"   r#   )r	   r   Ú	old_fieldÚ	new_fieldÚnew_typeÚ	sql_alterr   r   r   r2   ,   s   
þûøz*PostGISSchemaEditor._alter_column_type_sql)Ú__name__Ú
__module__Ú__qualname__r,   r(   r%   r3   r4   r   r   r!   r2   Ú__classcell__r   r   r   r   r      s    r   N)Ú$django.db.backends.postgresql.schemar   r   r   r   r   r   Ú<module>   s    