diff options
author | Federico Caselli <cfederico87@gmail.com> | 2023-02-27 22:05:08 +0100 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2023-03-04 11:27:00 -0500 |
commit | 1879aaf3733c4938f75320395b8faa08fa4fec09 (patch) | |
tree | b0e687c5d54f2bf06d5e111cfa71b21ce72baf50 /lib/sqlalchemy/dialects/sqlite/pysqlite.py | |
parent | fcab6bcc5a5a414c9775120f15c7dbd52ccf4ae3 (diff) | |
download | sqlalchemy-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.py | 9 |
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( |