L itddlZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd lm Z dd lm Z dd lm Z dd lmZddlmZddlmZddlmZej$ddZe j$ddZej$ddZej$ddZe j$ddZ e j$ddZ ej$ddZej$dddddZddgZe j$ddZy)N)exc)inspect)text)warn_test_suite) create_db)#drop_all_schema_objects_post_tables)"drop_all_schema_objects_pre_tables)drop_db)log)post_configure_engine)prepare_for_drop_tables) set_default_schema_on_connection)temp_table_keyword_args)upsert postgresqlc|jj}|jdj5}|s|j dj }d} |j d|d| dddy#t j$rY}|dz }|dk\rd t|vr7tjd ||j|tjd Yd}~n d}~wxYw#1swYyxYw) N AUTOCOMMITisolation_levelzselect current_database()rzCREATE DATABASE z TEMPLATE rzaccessed by other userszFWaiting to create %s, URI %r, template DB %s is in use sleeping for .5g?)optionspostgresql_templatedbexecution_optionsbeginexec_driver_sqlscalarrOperationalErrorstrr infourltimesleep)cfgengident template_dbconnattempterrs n/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/provision.py _pg_create_dbr,s++33K  |  < B B D..+fh  $$8={K&9'' $1 a<,C8HHC# JJsO 's0%C/A>>C+AC% C/%C++C//C8c*|jjd5}|j5|jt dt ||j d|zddddddy#1swYxYw#1swYyxYw)Nrrzselect pg_terminate_backend(pid) from pg_stat_activity where usename=current_user and pid != pg_backend_pid() and datname=:dname)dnamezDROP DATABASE %s)connectrrexecuterdictr)r$r%r&r(s r+ _pg_drop_dbr2>s  ( ( ( F =$ ZZ\ = LL) 5!    !3e!; < = = = = = = =s"B :A=,B =B B  Bc ddgiS)Nprefixes TEMPORARY)r$r%s r+#_postgresql_temp_table_keyword_argsr7Ms  &&c|j}d|_|j}|jd|z|j||_y)NTzSET SESSION search_path='%s') autocommitcursorr0close)r$dbapi_connection schema_nameexisting_autocommitr;s r+,_postgresql_set_default_schema_on_connectionr@RsK+55"&  $ $ &F NN1K?@ LLN"5r8c|jjd5}|jdjD]}|jd|z dddy#1swYyxYw)Nrrz!select gid from pg_prepared_xactszROLLBACK PREPARED '%s')r/rrscalars)r$r%r(xids r+r r ^sp  ( ( ( FA$'' / ') AC  !9C!? @ AAAAs 9A$$A-c  ddlm}t|}|j5}|j dD]9}|j |j |j|d|d; dddy#1swYyxYw)Nr)r*nameschema)rFrG)sqlalchemy.dialectsrrr get_enumsr0 DropEnumTypeENUM)r$r%r inspectorr(enums r+r r gsz. I '', D LL''OOfd8nOM  s AA::Bc|jd}|j}|r%tddjd|Dzyy)z;Ensure there are no locks on the current username/database.zselect pid, state, wait_event_type, query from pg_stat_activity where usename=current_user and datname=current_database() and state='idle in transaction' and pid != pg_backend_pid()zHPostgreSQL may not be able to DROP tables due to idle in transaction: %sz; c3:K|]}|jdyw)queryN)_mapping).0rows r+ z*prepare_for_drop_tables..s?3g.?sN)rallrjoin)config connectionresultrowss r+rrusS ' ' &F ::>  ,C D Kr8)citext )hstorermc|j5}tD]L\}}|jj|k\s |j t d||j N dddy#1swYyxYw)NzCREATE EXTENSION IF NOT EXISTS )r/ _extensionsdialectserver_version_infor0rcommit)r!enginefollower_identr( extension min_versions r+_create_citext_extensionrysp  T&1  "I{||//;> :9+FG  s&A1/A11A:)r"rrrtestingrtesting.provisionrr r r r r rrrrfor_dbr,r2r7r@rkrqryr6r8r+r~sv &*DC($68A8', D  = =  -'.')!((6676+#**<8A9A,$++L9 :   - . (|)-u. l+,r8