]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-40810: Fix CheckTraceCallbackContent for SQLite pre 3.7.15 (GH-20530)
authorErlend Egeberg Aasland <erlend.aasland@innova.no>
Mon, 4 Jan 2021 23:16:43 +0000 (00:16 +0100)
committerGitHub <noreply@github.com>
Mon, 4 Jan 2021 23:16:43 +0000 (15:16 -0800)
Ref. [SQLite 3.7.15 changelog](https://sqlite.org/changes.html#version_3_7_15):
_"Avoid invoking the sqlite3_trace() callback multiple times when a statement is automatically reprepared due to SQLITE_SCHEMA errors."_

Lib/sqlite3/test/hooks.py
Misc/NEWS.d/next/Tests/2020-05-30-10-56-38.bpo-40810.LPqDLQ.rst [new file with mode: 0644]

index 2e620ecdf864cb91a577e9724108dbfdffe0a226..6c1aaa2d601617cf69ead077d91dcc35348d9867 100644 (file)
@@ -260,6 +260,14 @@ class TraceCallbackTests(unittest.TestCase):
         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 (file)
index 0000000..1965ecd
--- /dev/null
@@ -0,0 +1 @@
+In :mod:`sqlite3`, fix `CheckTraceCallbackContent` for SQLite pre 3.7.15.