%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib/python3.7/site-packages/alembic/ddl/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib/python3.7/site-packages/alembic/ddl/__pycache__/postgresql.cpython-37.pyc

B

�M!V��@s�ddlZddlmZddlmZddlmZmZmZmZddl	m
Z
ddlmZm
Z
dd	lmZmZmZejr|dd
lmZnddlmZddlZe�e�ZGdd
�d
e
�Zeed�dd��ZdS)�N�)�compat)�util�)�compiles�alter_table�format_table_name�RenameTable)�DefaultImpl)�INTEGER�BIGINT)�text�Numeric�Column)�UnaryExpression)�_UnaryExpressionc@s4eZdZdZdZdd�Zdd�Zdd�Zd	d
�ZdS)�PostgresqlImpl�
postgresqlTcCs(x"|jD]}|jdk	r|�|�qWdS)N)Zconstraints�nameZdrop_constraint)�self�tableZ
constraint�r�/postgresql.py�prep_table_for_batchs
z#PostgresqlImpl.prep_table_for_batchcCs�|jr||jjkrdS|}d||fkr.||kS|jdk	rnt|jjtj�rnt�	d|�snt|j
t�snt�dd|�}|j
�d||f�S)NFz^'.+'$z	^u?'?|'?$�'zSELECT %s = %s)Zprimary_keyrZ_autoincrement_columnZserver_default�
isinstance�argrZstring_types�re�match�typer�subZ
connectionZscalar)rZinspector_columnZmetadata_columnZrendered_metadata_defaultZrendered_inspector_defaultZconn_col_defaultrrr�compare_server_defaults"

z%PostgresqlImpl.compare_server_defaultcCs�|�d�r�t|dttf�r�t�d|d�}|r�|jjtd�|�	d�d��
�}|r�|\}}||dkr�t�d||j
|f�|d=dS)	N�defaultrznextval\('(.+?)'::regclass\)a+select c.relname, a.attname from pg_class as c join pg_depend d on d.objid=c.oid and d.classid='pg_class'::regclass and d.refclassid='pg_class'::regclass join pg_class t on t.oid=d.refobjid join pg_attribute a on a.attrelid=t.oid and a.attnum=d.refobjsubid where c.relkind='S' and c.relname=:seqnamer)�seqnamerz^Detected sequence named '%s' as owned by integer column '%s(%s)', assuming SERIAL and omitting)�getrrrrrZbindZexecuter
�group�first�log�infor)rZ	inspectorrZcolumn_infoZ	seq_matchr(r#Zcolnamerrr�autogen_column_reflect<s 

z%PostgresqlImpl.autogen_column_reflectcs�tdd�|D���tdd�|D���t��fdd�t�����D��}x"|��D]\}\}}|�|�qPWxft|�D]Z}	|	j�kr�qttjr�|	j	}
n|	j
}
x4|
D],}t|tt
f�s�t�d|	j�|�|	�q�WqtWdS)Ncss|]}|j|fVqdS)N)r)�.0�crrr�	<genexpr>_szAPostgresqlImpl.correct_for_autogen_constraints.<locals>.<genexpr>css|]}|j|fVqdS)N)r)r*r+rrrr,asc3s"|]}|�|�|ffVqdS)Nr)r*r)�conn_indexes_by_name�conn_uniques_by_namerrr,fszQautogenerate skipping functional index %s; not supported by SQLAlchemy reflection)�dict�set�intersection�items�remove�listrr�sqla_08Zexpressions�columnsrrrr�warn�discard)rZconn_unique_constraintsZconn_indexesZmetadata_unique_constraintsZmetadata_indexesZdoubled_constraintsrZuqZix�idxZexprs�exprr)r-r.r�correct_for_autogen_constraintsZs,


z.PostgresqlImpl.correct_for_autogen_constraintsN)	�__name__�
__module__�__qualname__Z__dialect__Ztransactional_ddlrr!r)r;rrrrrsrrcKs"dt||j|j�t||jd�fS)Nz%s RENAME TO %s)rZ
table_nameZschemarZnew_table_name)ZelementZcompiler�kwrrr�visit_rename_table}sr@)rrr��baserrrr	�implr
Zsqlalchemy.dialects.postgresqlrrZ
sqlalchemyr
rrr5Zsqlalchemy.sql.expressionrrZloggingZ	getLoggerr<r'rr@rrrr�<module>s
i

Zerion Mini Shell 1.0