3
g                 @   sl   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlmZ e j	 dd Z
e j	 dd	 Zd
d ZdS )    N)ProgrammingError)register_hstore)connections)NO_DB_ALIASc             C   sd   t |  j N}|jd g }g }x(|D ] }|j|d  |j|d  q&W t|t|fS Q R X dS )z$Return hstore and hstore array OIDs.zlSELECT t.oid, typarray FROM pg_type t JOIN pg_namespace ns ON typnamespace = ns.oid WHERE typname = 'hstore'r      N)r   cursorexecuteappendtuple)connection_aliasr   oids
array_oidsrow r   ]/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django/contrib/postgres/signals.pyget_hstore_oids   s    
r   c          
   C   s4   t |  j }|jd tdd |D S Q R X dS )zReturn citext array OIDs.z5SELECT typarray FROM pg_type WHERE typname = 'citext'c             s   s   | ]}|d  V  qdS )r   Nr   ).0r   r   r   r   	<genexpr>"   s    z"get_citext_oids.<locals>.<genexpr>N)r   r   r   r
   )r   r   r   r   r   get_citext_oids   s    
r   c             K   s   | j dks| jtkrd S y$t| j\}}t| jd||d W n tk
rP   Y nX y.t| j}tj	j
|dtj}tj	j|d  W n tk
r   Y nX d S )NZ
postgresqlT)ZgloballyoidZ	array_oidzcitext[])vendoraliasr   r   r   
connectionr   r   psycopg2
extensionsZnew_array_typeSTRINGZregister_type)r   kwargsr   r   Zcitext_oidsZ
array_typer   r   r   register_type_handlers%   s    	
r   )	functoolsr   r   Zpsycopg2.extrasr   Z	django.dbr   Zdjango.db.backends.base.baser   	lru_cacher   r   r   r   r   r   r   <module>   s   