î
ªÍ X  ã               @   s*   d  d l  m Z Gd d „  d e ƒ Z d S)é    )ÚDatabaseSchemaEditorc                   s—   e  Z d  Z d Z d Z d Z d Z d Z ‡  f d d †  Z d d	 „  Z	 d
 ‡  f d d † Z
 ‡  f d d †  Z ‡  f d d †  Z ‡  f d d †  Z ‡  S)ÚPostGISSchemaEditorZGISTZGIST_GEOMETRY_OPS_NDzST_ConvexHull(%s)zMCREATE INDEX %(index)s ON %(table)s USING %(index_type)s (%(column)s %(ops)s)z;DELETE FROM geometry_columns WHERE f_table_name = %(table)sc                s&   t  t |  ƒ j | | Ž  g  |  _ d  S)N)Úsuperr   Ú__init__Úgeometry_sql)ÚselfÚargsÚkwargs)Ú	__class__© ú[/home/ubuntu/projects/ifolica/build/django/django/contrib/gis/db/backends/postgis/schema.pyr      s    zPostGISSchemaEditor.__init__c             C   s   |  j  j j | ƒ S)N)Ú
connectionÚopsÚgeo_quote_name)r   Únamer   r   r   r      s    z"PostGISSchemaEditor.geo_quote_nameFc                s;  d d l  m } t | | ƒ s; t t |  ƒ j | | | ƒ St t |  ƒ j | | | ƒ } | j r7|  j | j ƒ } | j	 d k r™ |  j
 | } d } n3 | j r« d } n! | j d k rÆ |  j } n d } |  j j |  j i |  j d | j j | j f ƒ d 6|  j | j j ƒ d 6| d	 6|  j d
 6| d 6ƒ n  | S)Nr   )ÚBaseSpatialFieldZRASTERÚ é   z%s_%s_idÚindexÚtableÚcolumnZ
index_typer   )Z#django.contrib.gis.db.models.fieldsr   Ú
isinstancer   r   Ú
column_sqlZspatial_indexZ
quote_namer   Z	geom_typeÚrast_index_wrapperZ	geographyZdimÚgeom_index_ops_ndr   ÚappendÚsql_add_spatial_indexÚ_metaÚdb_tableÚgeom_index_type)r   ÚmodelÚfieldÚinclude_defaultr   r   Zfield_columnZ	index_ops)r
   r   r   r      s,    						#
zPostGISSchemaEditor.column_sqlc                sD   t  t |  ƒ j | ƒ x |  j D] } |  j | ƒ q  Wg  |  _ d  S)N)r   r   Úcreate_modelr   Úexecute)r   r    Úsql)r
   r   r   r#   7   s    z PostGISSchemaEditor.create_modelc                sD   t  t |  ƒ j | ƒ |  j |  j i |  j | j j ƒ d 6ƒ d  S)Nr   )r   r   Údelete_modelr$   Úsql_clear_geometry_columnsr   r   r   )r   r    )r
   r   r   r&   >   s    z PostGISSchemaEditor.delete_modelc                sG   t  t |  ƒ j | | ƒ x |  j D] } |  j | ƒ q# Wg  |  _ d  S)N)r   r   Ú	add_fieldr   r$   )r   r    r!   r%   )r
   r   r   r(   D   s    zPostGISSchemaEditor.add_field)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r'   r   r   r   r#   r&   r(   r   r   )r
   r   r      s   $r   N)Z$django.db.backends.postgresql.schemar   r   r   r   r   r   Ú<module>   s   