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_2_0_0b1~182 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a3a3299b5b9728a432ba900754047844ecfb98d6;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git document create_engine.isolation_level for PG Change-Id: I06eaede9e021eb0790929168e9bedb0c8b58140a References: #8252 --- diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index ed4139ad17..65f37cfb5c 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -435,7 +435,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 96a0f8f21e..596ca34f2c 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -240,6 +240,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 394c643601..56bc02b236 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -147,7 +147,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. @@ -165,9 +165,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:: @@ -179,6 +177,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`` @@ -189,10 +192,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`