]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
Implement Oracle SERIALIZABLE + real read of isolation level
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 9 Dec 2020 03:07:48 +0000 (22:07 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 9 Dec 2020 17:10:13 +0000 (12:10 -0500)
commit60d7a9bd25e7dd642a220e4936f9adb66a22253f
tree2455b82256ac5cec459ad455da2bf564d9ee5119
parent9e0a8dbdb22bf545ae9eee433d88336821fcd8df
Implement Oracle SERIALIZABLE + real read of isolation level

There's some significant awkwardness in that we can't
read the level unless a transaction is started, which normally
does not occur unless DML is emitted.  The implementation
uses the local_transaction_id function to start a transaction.
It is not known what the performance impact of this might
have, however by default the function is called only once
on first connect and later only if the get_isolation_level()
method is used.

Fixes: #5755
Change-Id: I0453a6b0a49420826707f660931002ba2338fbf0
(cherry picked from commit 7528c2465b3e56ed094f155bff2a3ab8c89cc84f)
doc/build/changelog/unreleased_13/5755.rst [new file with mode: 0644]
lib/sqlalchemy/dialects/oracle/base.py
lib/sqlalchemy/dialects/oracle/cx_oracle.py
lib/sqlalchemy/testing/engines.py
lib/sqlalchemy/testing/suite/test_dialect.py
test/dialect/oracle/test_dialect.py