In January 2021 (mid 3.10 development), Sergey Fodoseev and I raised the compile time (and runtime) SQLite version requirements for the sqlite3 standard library extension module to SQLite 3.7.15 (2012-12-12) or newer (commit cf0b239). That enabled us to clean up the code by getting rid of a lot of preprocessor conditionals and other version specific workarounds.
For Python 3.13 (to be released October 2024), I'll raise the version requirements to either SQLite 3.8.11.1 (2015-07-29), 3.14.2 (2016-09-12), or 3.15.2 (2016-11-28). Preferably the latter.
AFAICS on DistroWatch, we should be fine with any of those SQLite versions, for all major distros1.
Major clean-ups:
For SQlite 3.8.11.1, I can remove a lot of conditional code related to CTEs and deterministic functions.
For SQLite 3.14.2 I no longer need to implement two different variants of the trace callback.
For SQLite 3.15.2, I can remove special handling for legacy deterministic user function behaviour.
Activity
pythongh-105875: Require SQLite 3.15.2 or newer
corona10 commented on Jun 17, 2023
cc @ned-deily
Will it be okay to macOS too?
(From my local environment it looks okay)
erlend-aasland commented on Jun 17, 2023
We bundle SQLite for macOS installers, so it is not a problem.
corona10 commented on Jun 17, 2023
Thanks!
gh-105875: Require SQLite 3.15.2 or newer (#105876)
Document Python build requirements
pythongh-105875: amend sqlite3 docstring wrt. SQLite requirement
gh-105875: amend sqlite3 docstring wrt. SQLite requirement (#129599)
pythongh-105875: amend sqlite3 docstring wrt. SQLite requirement (pyt…
[3.13] gh-105875: amend sqlite3 docstring wrt. SQLite requirement (GH…
pythongh-105875: amend sqlite3 docstring wrt. SQLite requirement (pyt…