summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/sqlite
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2021-11-18 18:55:33 +0000
committerGerrit Code Review <gerrit@ci3.zzzcomputing.com>2021-11-18 18:55:33 +0000
commit624d4f5cc957df34c46a22c24a2dc713d8ffdcd7 (patch)
treefd13dc8370e58e82a576416f75456298b69ec241 /lib/sqlalchemy/dialects/sqlite
parent9141b6c15eac4827f0df2e3f87f331c821d13b5a (diff)
parentaf1b91626f63e00e11d07ad378d23198abc7f91f (diff)
downloadsqlalchemy-624d4f5cc957df34c46a22c24a2dc713d8ffdcd7.tar.gz
Merge "fully support isolation_level parameter in base dialect" into main
Diffstat (limited to 'lib/sqlalchemy/dialects/sqlite')
-rw-r--r--lib/sqlalchemy/dialects/sqlite/base.py33
-rw-r--r--lib/sqlalchemy/dialects/sqlite/pysqlite.py9
2 files changed, 5 insertions, 37 deletions
diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py
index dc8425859..6c22c8ef3 100644
--- a/lib/sqlalchemy/dialects/sqlite/base.py
+++ b/lib/sqlalchemy/dialects/sqlite/base.py
@@ -1815,7 +1815,6 @@ class SQLiteDialect(default.DefaultDialect):
preparer = SQLiteIdentifierPreparer
ischema_names = ischema_names
colspecs = colspecs
- isolation_level = None
construct_arguments = [
(
@@ -1856,7 +1855,6 @@ class SQLiteDialect(default.DefaultDialect):
)
def __init__(
self,
- isolation_level=None,
native_datetime=False,
json_serializer=None,
json_deserializer=None,
@@ -1865,7 +1863,6 @@ class SQLiteDialect(default.DefaultDialect):
**kwargs
):
default.DefaultDialect.__init__(self, **kwargs)
- self.isolation_level = isolation_level
if _json_serializer:
json_serializer = _json_serializer
@@ -1918,22 +1915,12 @@ class SQLiteDialect(default.DefaultDialect):
{"READ UNCOMMITTED": 1, "SERIALIZABLE": 0}
)
+ def get_isolation_level_values(self, dbapi_conn):
+ return list(self._isolation_lookup)
+
def set_isolation_level(self, connection, level):
- try:
- isolation_level = self._isolation_lookup[level.replace("_", " ")]
- except KeyError as err:
- util.raise_(
- exc.ArgumentError(
- "Invalid value '%s' for isolation_level. "
- "Valid isolation levels for %s are %s"
- % (
- level,
- self.name,
- ", ".join(self._isolation_lookup),
- )
- ),
- replace_context=err,
- )
+ isolation_level = self._isolation_lookup[level]
+
cursor = connection.cursor()
cursor.execute("PRAGMA read_uncommitted = %d" % isolation_level)
cursor.close()
@@ -1960,16 +1947,6 @@ class SQLiteDialect(default.DefaultDialect):
else:
assert False, "Unknown isolation level %s" % value
- def on_connect(self):
- if self.isolation_level is not None:
-
- def connect(conn):
- self.set_isolation_level(conn, self.isolation_level)
-
- return connect
- else:
- return None
-
@reflection.cache
def get_schema_names(self, connection, **kw):
s = "PRAGMA database_list"
diff --git a/lib/sqlalchemy/dialects/sqlite/pysqlite.py b/lib/sqlalchemy/dialects/sqlite/pysqlite.py
index 10912e0d5..45a35be65 100644
--- a/lib/sqlalchemy/dialects/sqlite/pysqlite.py
+++ b/lib/sqlalchemy/dialects/sqlite/pysqlite.py
@@ -504,8 +504,6 @@ class SQLiteDialect_pysqlite(SQLiteDialect):
)
def on_connect(self):
- connect = super(SQLiteDialect_pysqlite, self).on_connect()
-
def regexp(a, b):
if b is None:
return None
@@ -524,13 +522,6 @@ class SQLiteDialect_pysqlite(SQLiteDialect):
fns = [set_regexp]
- if self.isolation_level is not None:
-
- def iso_level(conn):
- self.set_isolation_level(conn, self.isolation_level)
-
- fns.append(iso_level)
-
def connect(conn):
for fn in fns:
fn(conn)