Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | DROP TABLE now works for WITHOUT ROWID tables and the SQLITE_OMIT_AUTOVACUUM compile-time option. Fix for ticket [e651b1341861d6] |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
b8c1b5a584aeb6ab63cff875ca16135e |
User & Date: | drh 2017-10-10 13:37:22.404 |
Context
2017-10-11
| ||
12:20 | In the speed-check.sh test script, allow an additional test-name argument which becomes the comparison baseline, in place of "trunk". (check-in: 0245adffc6 user: drh tags: trunk) | |
11:12 | Create a branch for the 3.21.0 release. Development continues on trunk. (check-in: 0f160a8abb user: drh tags: branch-3.21) | |
2017-10-10
| ||
13:37 | DROP TABLE now works for WITHOUT ROWID tables and the SQLITE_OMIT_AUTOVACUUM compile-time option. Fix for ticket [e651b1341861d6] (check-in: b8c1b5a584 user: drh tags: trunk) | |
2017-10-08
| ||
02:22 | Fix harmless compiler warnings in FTS5 seen with MSVC. (check-in: 5594a121bf user: mistachkin tags: trunk) | |
Changes
Changes to src/build.c.
︙ | ︙ | |||
2362 2363 2364 2365 2366 2367 2368 | /* ** Write VDBE code to erase table pTab and all associated indices on disk. ** Code to update the sqlite_master tables and internal schema definitions ** in case a root-page belonging to another table is moved by the btree layer ** is also added (this can happen with an auto-vacuum database). */ static void destroyTable(Parse *pParse, Table *pTab){ | < < < < < < < < | 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 | /* ** Write VDBE code to erase table pTab and all associated indices on disk. ** Code to update the sqlite_master tables and internal schema definitions ** in case a root-page belonging to another table is moved by the btree layer ** is also added (this can happen with an auto-vacuum database). */ static void destroyTable(Parse *pParse, Table *pTab){ /* If the database may be auto-vacuum capable (if SQLITE_OMIT_AUTOVACUUM ** is not defined), then it is important to call OP_Destroy on the ** table and index root-pages in order, starting with the numerically ** largest root-page number. This guarantees that none of the root-pages ** to be destroyed is relocated by an earlier OP_Destroy. i.e. if the ** following were coded: ** |
︙ | ︙ | |||
2412 2413 2414 2415 2416 2417 2418 | }else{ int iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); assert( iDb>=0 && iDb<pParse->db->nDb ); destroyRootPage(pParse, iLargest, iDb); iDestroyed = iLargest; } } | < | 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 | }else{ int iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); assert( iDb>=0 && iDb<pParse->db->nDb ); destroyRootPage(pParse, iLargest, iDb); iDestroyed = iLargest; } } } /* ** Remove entries from the sqlite_statN tables (for N in (1,2,3)) ** after a DROP INDEX or DROP TABLE command. */ static void sqlite3ClearStatTables( |
︙ | ︙ |