summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_sqlite3/test_dump.py
diff options
context:
space:
mode:
authorErlend E. Aasland <erlend@python.org>2023-08-28 22:25:35 (GMT)
committerGitHub <noreply@github.com>2023-08-28 22:25:35 (GMT)
commitb451e9020df6414e8c51e4e0acd41f855b8742cd (patch)
treebba772e78c769ffa9e599e7bc86f62b707165bfd /Lib/test/test_sqlite3/test_dump.py
parent5531d03d99c980d29915923e6c93028b4af083b1 (diff)
downloadcpython-b451e9020df6414e8c51e4e0acd41f855b8742cd.zip
cpython-b451e9020df6414e8c51e4e0acd41f855b8742cd.tar.gz
cpython-b451e9020df6414e8c51e4e0acd41f855b8742cd.tar.bz2
[3.12] gh-64662: Fix virtual table support in sqlite3.Connection.iterdump (#108340) (#108563)
* [3.12] gh-64662: Add virtual table support to sqlite3.Connection.iterdump (#108340) (cherry picked from commit d0160c7c22c8dff0a61c49b5304244df6e36465e) Co-authored-by: Aviv Palivoda <palaviv@gmail.com> * The _quote_value helper is not part of 3.12; spell out the replacement * With quotes * Ok, let's use explicit quoting --------- Co-authored-by: Aviv Palivoda <palaviv@gmail.com>
Diffstat (limited to 'Lib/test/test_sqlite3/test_dump.py')
-rw-r--r--Lib/test/test_sqlite3/test_dump.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/Lib/test/test_sqlite3/test_dump.py b/Lib/test/test_sqlite3/test_dump.py
index d0c24b9..c3ed3ae 100644
--- a/Lib/test/test_sqlite3/test_dump.py
+++ b/Lib/test/test_sqlite3/test_dump.py
@@ -117,6 +117,26 @@ class DumpTests(unittest.TestCase):
got = list(self.cx.iterdump())
self.assertEqual(expected, got)
+ def test_dump_virtual_tables(self):
+ # gh-64662
+ expected = [
+ "BEGIN TRANSACTION;",
+ "PRAGMA writable_schema=ON;",
+ ("INSERT INTO sqlite_master(type,name,tbl_name,rootpage,sql)"
+ "VALUES('table','test','test',0,'CREATE VIRTUAL TABLE test USING fts4(example)');"),
+ "CREATE TABLE 'test_content'(docid INTEGER PRIMARY KEY, 'c0example');",
+ "CREATE TABLE 'test_docsize'(docid INTEGER PRIMARY KEY, size BLOB);",
+ ("CREATE TABLE 'test_segdir'(level INTEGER,idx INTEGER,start_block INTEGER,"
+ "leaves_end_block INTEGER,end_block INTEGER,root BLOB,PRIMARY KEY(level, idx));"),
+ "CREATE TABLE 'test_segments'(blockid INTEGER PRIMARY KEY, block BLOB);",
+ "CREATE TABLE 'test_stat'(id INTEGER PRIMARY KEY, value BLOB);",
+ "PRAGMA writable_schema=OFF;",
+ "COMMIT;"
+ ]
+ self.cu.execute("CREATE VIRTUAL TABLE test USING fts4(example)")
+ actual = list(self.cx.iterdump())
+ self.assertEqual(expected, actual)
+
if __name__ == "__main__":
unittest.main()