diff options
author | Erlend E. Aasland <erlend@python.org> | 2023-08-28 22:25:35 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-28 22:25:35 (GMT) |
commit | b451e9020df6414e8c51e4e0acd41f855b8742cd (patch) | |
tree | bba772e78c769ffa9e599e7bc86f62b707165bfd /Lib/test/test_sqlite3/test_dump.py | |
parent | 5531d03d99c980d29915923e6c93028b4af083b1 (diff) | |
download | cpython-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.py | 20 |
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() |