From: Mike Bayer Date: Wed, 13 Jul 2022 15:02:37 +0000 (-0400) Subject: document create_engine.isolation_level for PG X-Git-Tag: rel_1_4_40~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f42c3aeabf299183c576f5c01b6376685ea80f1;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git document create_engine.isolation_level for PG Change-Id: I06eaede9e021eb0790929168e9bedb0c8b58140a References: #8252 (cherry picked from commit a3a3299b5b9728a432ba900754047844ecfb98d6) --- diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index 735cc3cff8..3c22b9b7c9 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -433,7 +433,10 @@ Valid values for ``isolation_level`` include: * ``SERIALIZABLE`` * ``SNAPSHOT`` - specific to SQL Server -.. versionadded:: 1.2 added AUTOCOMMIT isolation level setting +There are also more options for isolation level configurations, such as +"sub-engine" objects linked to a main :class:`.Engine` which each apply +different isolation level settings. See the discussion at +:ref:`dbapi_autocommit` for background. .. seealso:: diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index 26af6eb799..95e9cd1b37 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -238,6 +238,11 @@ MySQLdb, MySQL-Client, MySQL-Connector Python, and PyMySQL. Using it, the database connection will return true for the value of ``SELECT @@autocommit;``. +There are also more options for isolation level configurations, such as +"sub-engine" objects linked to a main :class:`.Engine` which each apply +different isolation level settings. See the discussion at +:ref:`dbapi_autocommit` for background. + .. seealso:: :ref:`dbapi_autocommit` diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index dbaced5db5..23d4a49fee 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -148,7 +148,7 @@ Transaction Isolation Level --------------------------- Most SQLAlchemy dialects support setting of transaction isolation level -using the :paramref:`_sa.create_engine.execution_options` parameter +using the :paramref:`_sa.create_engine.isolation_level` parameter at the :func:`_sa.create_engine` level, and at the :class:`_engine.Connection` level via the :paramref:`.Connection.execution_options.isolation_level` parameter. @@ -166,9 +166,7 @@ To set isolation level using :func:`_sa.create_engine`:: engine = create_engine( "postgresql+pg8000://scott:tiger@localhost/test", - execution_options={ - "isolation_level": "REPEATABLE READ" - } + isolation_level = "REPEATABLE READ" ) To set using per-connection execution options:: @@ -180,6 +178,11 @@ To set using per-connection execution options:: with conn.begin(): # ... work with transaction +There are also more options for isolation level configurations, such as +"sub-engine" objects linked to a main :class:`.Engine` which each apply +different isolation level settings. See the discussion at +:ref:`dbapi_autocommit` for background. + Valid values for ``isolation_level`` on most PostgreSQL dialects include: * ``READ COMMITTED`` @@ -190,10 +193,10 @@ Valid values for ``isolation_level`` on most PostgreSQL dialects include: .. seealso:: - :ref:`postgresql_readonly_deferrable` - :ref:`dbapi_autocommit` + :ref:`postgresql_readonly_deferrable` + :ref:`psycopg2_isolation_level` :ref:`pg8000_isolation_level`