[Python-checkins] bpo-40810: Fix CheckTraceCallbackContent for SQLite pre 3.7.15 (GH-20530)

miss-islington webhook-mailer at python.org
Mon Jan 4 18:36:46 EST 2021


https://github.com/python/cpython/commit/0ccac5ff587d7637854e5d3e75f0f9a8f5528e59
commit: 0ccac5ff587d7637854e5d3e75f0f9a8f5528e59
branch: 3.8
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: miss-islington <31488909+miss-islington at users.noreply.github.com>
date: 2021-01-04T15:36:37-08:00
summary:

bpo-40810: Fix CheckTraceCallbackContent for SQLite pre 3.7.15 (GH-20530)


Ref. [SQLite 3.7.15 changelog](https://sqlite.org/changes.htmlGH-version_3_7_15):
_"Avoid invoking the sqlite3_trace() callback multiple times when a statement is automatically reprepared due to SQLITE_SCHEMA errors."_
(cherry picked from commit f7f0ed59bcc41ed20674d4b2aa443d3b79e725f4)

Co-authored-by: Erlend Egeberg Aasland <erlend.aasland at innova.no>

files:
A Misc/NEWS.d/next/Tests/2020-05-30-10-56-38.bpo-40810.LPqDLQ.rst
M Lib/sqlite3/test/hooks.py

diff --git a/Lib/sqlite3/test/hooks.py b/Lib/sqlite3/test/hooks.py
index d74e74bf27227..214205c1167a4 100644
--- a/Lib/sqlite3/test/hooks.py
+++ b/Lib/sqlite3/test/hooks.py
@@ -265,6 +265,14 @@ def trace(statement):
         cur.execute(queries[0])
         con2.execute("create table bar(x)")
         cur.execute(queries[1])
+
+        # Extract from SQLite 3.7.15 changelog:
+        # Avoid invoking the sqlite3_trace() callback multiple times when a
+        # statement is automatically reprepared due to SQLITE_SCHEMA errors.
+        #
+        # See bpo-40810
+        if sqlite.sqlite_version_info < (3, 7, 15):
+            queries.append(queries[-1])
         self.assertEqual(traced_statements, queries)
 
 
diff --git a/Misc/NEWS.d/next/Tests/2020-05-30-10-56-38.bpo-40810.LPqDLQ.rst b/Misc/NEWS.d/next/Tests/2020-05-30-10-56-38.bpo-40810.LPqDLQ.rst
new file mode 100644
index 0000000000000..1965ecd6ef511
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2020-05-30-10-56-38.bpo-40810.LPqDLQ.rst
@@ -0,0 +1 @@
+In :mod:`sqlite3`, fix `CheckTraceCallbackContent` for SQLite pre 3.7.15.



More information about the Python-checkins mailing list