ó
Ūâ0_c           @   s*   d  d l  m Z d e f d     YZ d S(   iĸĸĸĸ(   t   DatabaseSchemaEditort   PostGISSchemaEditorc           B   sP   e  Z d  Z d Z d Z d Z d Z d   Z d   Z d d
 d  Z
 d	   Z RS(   t   GISTt   GIST_GEOMETRY_OPS_NDs   ST_ConvexHull(%s)sL   ALTER COLUMN %(column)s TYPE %(type)s USING ST_Force3D(%(column)s)::%(type)ssL   ALTER COLUMN %(column)s TYPE %(type)s USING ST_Force2D(%(column)s)::%(type)sc         C   s   |  j  j j |  S(   N(   t
   connectiont   opst   geo_quote_name(   t   selft   name(    (    sO   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/postgis/schema.pyR      s    c         C   s/   t  | d t  r t St t |   j | |  S(   Nt   spatial_index(   t   getattrt   Falset   Truet   superR   t   _field_should_be_indexed(   R   t   modelt   field(    (    sO   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/postgis/schema.pyR      s    t    c         C   s  t  |  d k s& t | d d  rK t t |   j | | d | d | S| d } |  j | j  } | j d k r |  j | } n/ | j	 d k rĩ | j
 rĩ d | |  j f } n  |  j i |  j d	 | j j | j f  d
 6|  j | j j  d 6d |  j d 6| d 6d d 6S(   Ni   i    t   geodetict   suffixt   sqlt   RASTERi   s   %s %ss   %s_%s_idR   t   tables   USING %st   usingt   columnsR   t   extra(   t   lent   hasattrR   R   t   _create_index_sqlt
   quote_namet   columnt	   geom_typet   rast_index_wrappert   dimt	   geographyt   geom_index_ops_ndt   sql_create_indext   _metat   db_tablet   geom_index_type(   R   R   t   fieldsR   R   R   t   field_column(    (    sO   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/postgis/schema.pyR      s    &%
	#c         C   sĘ   t  | d  s  t  | d  r? t t |   j | | | |  S| j d k ri | j d k ri |  j } n3 | j d k r | j d k r |  j } n	 |  j } | i |  j | j	  d 6| d 6g  f g  f S(   s6   
        Special case when dimension changed.
        R!   i   i   R   t   type(
   R   R   R   t   _alter_column_type_sqlR!   t   sql_alter_column_to_3dt   sql_alter_column_to_2dt   sql_alter_column_typeR   R   (   R   R   t	   old_fieldt	   new_fieldt   new_typet	   sql_alter(    (    sO   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/postgis/schema.pyR+   +   s     	N(   t   __name__t
   __module__R'   R#   R    R,   R-   R   R   t   NoneR   R+   (    (    (    sO   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/postgis/schema.pyR      s   		N(   t$   django.db.backends.postgresql.schemaR    R   (    (    (    sO   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/postgis/schema.pyt   <module>   s   