Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
assignee=Noneclosed_at=<Date2020-09-07.21:29:10.517>created_at=<Date2020-05-23.16:40:54.878>labels= ['library', '3.10']
title='Explicitly drop support for SQLite version < 3.7.3'updated_at=<Date2020-09-07.21:29:13.993>user='https://github.com/erlend-aasland'
Currently, we use sqlite3_create_function_v2() without wrapping it in any #ifdefs, so in practise the sqlite3 module will not build against sqlite3 pre 3.7.3. Despite this, we still wrap parts of the code in #ifdefs for versions 3.6.x and older.
Łukasz, pinging you, since you are the release manager of 3.9.
Without PR 20909, 3.9 will be released without explicitly requiring SQLite 3.7.3 (setup.py looks for SQLite >= 3.7.2), compiling python 3.9 against SQLite 3.7.2 will fail at build time because of commit b9a0376, and it will also be possible to compile with SQLite 3.7.3 but run with pre SQLite 3.7.3 libraries, which could end up with a core dump.
With PR 20909, we explicitly state, in the docs, that SQLite 3.7.3 is required, and we explicitly check the SQLite version at configure time (setup.py), compile time (#ifdef => #error), and run time (if sqlite3_libversion_number() < ...) to prevent CPython from being configured, build, or run against unsupported SQLite versions.
I might be overestimating the severity of this issue, but I thought you would be interested this, as the release manager of 3.9 :)