summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/sqlite/pysqlite.py
diff options
context:
space:
mode:
authorFederico Caselli <cfederico87@gmail.com>2023-02-27 22:05:08 +0100
committerMike Bayer <mike_mp@zzzcomputing.com>2023-03-04 11:27:00 -0500
commit1879aaf3733c4938f75320395b8faa08fa4fec09 (patch)
treeb0e687c5d54f2bf06d5e111cfa71b21ce72baf50 /lib/sqlalchemy/dialects/sqlite/pysqlite.py
parentfcab6bcc5a5a414c9775120f15c7dbd52ccf4ae3 (diff)
downloadsqlalchemy-1879aaf3733c4938f75320395b8faa08fa4fec09.tar.gz
Restore connectivity with ancient sqlite
Fixed bug that prevented SQLAlchemy to connect when using a very old sqlite version (before 3.9) on python 3.8+. Fixes: #9379 Change-Id: I10ca347398221c952e1a572dc6ef80e491d1f5cf
Diffstat (limited to 'lib/sqlalchemy/dialects/sqlite/pysqlite.py')
-rw-r--r--lib/sqlalchemy/dialects/sqlite/pysqlite.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/sqlalchemy/dialects/sqlite/pysqlite.py b/lib/sqlalchemy/dialects/sqlite/pysqlite.py
index 294eddaff..a40e3d256 100644
--- a/lib/sqlalchemy/dialects/sqlite/pysqlite.py
+++ b/lib/sqlalchemy/dialects/sqlite/pysqlite.py
@@ -544,7 +544,14 @@ class SQLiteDialect_pysqlite(SQLiteDialect):
return None
return re.search(a, b) is not None
- create_func_kw = {"deterministic": True} if util.py38 else {}
+ if util.py38 and self._get_server_version_info(None) >= (3, 9):
+ # sqlite must be greater than 3.8.3 for deterministic=True
+ # https://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_function
+ # the check is more conservative since there were still issues
+ # with following 3.8 sqlite versions
+ create_func_kw = {"deterministic": True}
+ else:
+ create_func_kw = {}
def set_regexp(dbapi_connection):
dbapi_connection.create_function(