]> 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 16:20:26 +0000 (11:20 -0500)
commit7528c2465b3e56ed094f155bff2a3ab8c89cc84f
treef6272e47d90df26e663b0f753b01e1d5f0157e5a
parentc736eef8b35841af89ec19469aa496585efd3865
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
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/suite/test_dialect.py
test/dialect/oracle/test_dialect.py