3
gi                 @   s,   d dl mZ d dlmZ G dd deZdS )    )	Statement)DatabaseSchemaEditorc                   sV   e Zd ZdZdZdZdZdZdd Z fdd	Z	d
d fdd
Z
 fddZ  ZS )PostGISSchemaEditorZGISTZ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j|S )N)
connectionopsgeo_quote_name)selfname r
   k/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django/contrib/gis/db/backends/postgis/schema.pyr      s    z"PostGISSchemaEditor.geo_quote_namec                s   t |ddrdS t j||S )NZspatial_indexFT)getattrsuper_field_should_be_indexed)r   modelfield)	__class__r
   r   r      s    z,PostGISSchemaEditor._field_should_be_indexedN)fieldsc         
      s   |d ks$t |dks$t|d d r<t j|fd|i|S |d }| j|j}|jdkrf| j| }n |jdkr|j	 rd|| j
f }|jdd krd	|jj|jf }n|d }t| j| j|| j|jjd
| j |ddddS )N   r   Zgeodeticr   ZRASTER   z%s %sr	   z%s_%s_idz	 USING %s )r	   tableZusingcolumnsextra	conditioninclude)lenhasattrr   _create_index_sql
quote_namecolumnZ	geom_typerast_index_wrapperdimZ	geographygeom_index_ops_ndgetZ_metaZdb_tabler   Zsql_create_indexgeom_index_type)r   r   r   kwargsr   Zfield_columnZ
index_name)r   r
   r   r      s(    $
z%PostGISSchemaEditor._create_index_sqlc                s   t |d st |d r*t j||||S |jdkrF|jdkrF| j}n"|jdkrb|jdkrb| j}n| j}|| 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_2dZsql_alter_column_typer   r   )r   r   Z	old_fieldZ	new_fieldnew_typeZ	sql_alter)r   r
   r   r(   3   s    
z*PostGISSchemaEditor._alter_column_type_sql)__name__
__module____qualname__r$   r"   r    r)   r*   r   r   r   r(   __classcell__r
   r
   )r   r   r      s   r   N)Z!django.db.backends.ddl_referencesr   Z$django.db.backends.postgresql.schemar   r   r
   r
   r
   r   <module>   s   