HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
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)�constraints�nameZdrop_constraint)�self�tableZ
constraint�r�G/opt/alt/python37/lib/python3.7/site-packages/alembic/ddl/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�argr�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�defaultr!znextval\('(.+?)'::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rr �bind�executer
�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/rrrr0asc3s"|]}|�|�|ffVqdS)Nr)r.r)�conn_indexes_by_name�conn_uniques_by_namerrr0fszQautogenerate 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�idx�exprs�exprr)r1r2r�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)�element�compiler�kwrrr�visit_rename_table}srG)rrr��baserrrr	�implr
Zsqlalchemy.dialects.postgresqlrrZ
sqlalchemyr
rrr9Zsqlalchemy.sql.expressionrr�logging�	getLoggerrAr+rrGrrrr�<module>s
i