From: Mike Bayer Date: Sun, 11 Aug 2024 19:41:36 +0000 (-0400) Subject: turn off pyodbc pooling X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=896dbdb5920ffb645a8948c254f73dd0fcb0d3c0;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git turn off pyodbc pooling new updates of unixodbc are turning this on in CI revealing that our isolation level tests assume no pooling takes place, so disable this, which is only at global module level for pyodbc Change-Id: I971dfddc90d248281e8ca8677a3a41af6de28b86 --- diff --git a/lib/sqlalchemy/dialects/mssql/provision.py b/lib/sqlalchemy/dialects/mssql/provision.py index 143d386c45..1c684b1dfe 100644 --- a/lib/sqlalchemy/dialects/mssql/provision.py +++ b/lib/sqlalchemy/dialects/mssql/provision.py @@ -22,10 +22,17 @@ from ...testing.provision import generate_driver_url from ...testing.provision import get_temp_table_name from ...testing.provision import log from ...testing.provision import normalize_sequence +from ...testing.provision import post_configure_engine from ...testing.provision import run_reap_dbs from ...testing.provision import temp_table_keyword_args +@post_configure_engine.for_db("mssql") +def post_configure_engine(url, engine, follower_ident): + if engine.driver == "pyodbc": + engine.dialect.dbapi.pooling = False + + @generate_driver_url.for_db("mssql") def generate_driver_url(url, driver, query_str): backend = url.get_backend_name() diff --git a/lib/sqlalchemy/testing/provision.py b/lib/sqlalchemy/testing/provision.py index 74cdb0c73d..b57ec1afb5 100644 --- a/lib/sqlalchemy/testing/provision.py +++ b/lib/sqlalchemy/testing/provision.py @@ -361,7 +361,7 @@ def update_db_opts(db_url, db_opts, options): def post_configure_engine(url, engine, follower_ident): """Perform extra steps after configuring an engine for testing. - (For the internal dialects, currently only used by sqlite, oracle) + (For the internal dialects, currently only used by sqlite, oracle, mssql) """