Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Make sure the auto_vacuum=INCREMENTAL setting is preserved across a VACUUM. Ticket #3663. (CVS 6304) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
ded04f12f41504e4a3ecd5164f0d4cbb |
User & Date: | drh 2009-02-18 20:31:18.000 |
Context
2009-02-19
| ||
14:39 | Changes to reduce the heap space consumed by triggers, views and tables in the in-memory representation of the schema. Also to reduce the space used by prepared statements slightly. (CVS 6305) (check-in: d9f6ffbc5e user: danielk1977 tags: trunk) | |
2009-02-18
| ||
20:31 | Make sure the auto_vacuum=INCREMENTAL setting is preserved across a VACUUM. Ticket #3663. (CVS 6304) (check-in: ded04f12f4 user: drh tags: trunk) | |
18:37 | Move the text of C-API requirements out of the sqlite.h.in source file and into separate files in the "docsrc" CM system. Comment changes only - no changes to code. (CVS 6303) (check-in: 419eb48b6b user: drh tags: trunk) | |
Changes
Changes to src/btree.c.
1 2 3 4 5 6 7 8 9 10 11 | /* ** 2004 April 6 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /* ** 2004 April 6 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** $Id: btree.c,v 1.566 2009/02/18 20:31:18 drh Exp $ ** ** This file implements a external (disk-based) database using BTrees. ** See the header comment on "btreeInt.h" for additional information. ** Including a description of file format and an overview of operation. */ #include "btreeInt.h" |
︙ | ︙ | |||
1770 1771 1772 1773 1774 1775 1776 | */ int sqlite3BtreeSetAutoVacuum(Btree *p, int autoVacuum){ #ifdef SQLITE_OMIT_AUTOVACUUM return SQLITE_READONLY; #else BtShared *pBt = p->pBt; int rc = SQLITE_OK; | | | | > | 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 | */ int sqlite3BtreeSetAutoVacuum(Btree *p, int autoVacuum){ #ifdef SQLITE_OMIT_AUTOVACUUM return SQLITE_READONLY; #else BtShared *pBt = p->pBt; int rc = SQLITE_OK; u8 av = (u8)autoVacuum; sqlite3BtreeEnter(p); if( pBt->pageSizeFixed && (av ?1:0)!=pBt->autoVacuum ){ rc = SQLITE_READONLY; }else{ pBt->autoVacuum = av ?1:0; pBt->incrVacuum = av==2 ?1:0; } sqlite3BtreeLeave(p); return rc; #endif } /* |
︙ | ︙ |
Changes to test/incrvacuum.test.
︙ | ︙ | |||
10 11 12 13 14 15 16 | #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is testing the incremental vacuum feature. # # Note: There are also some tests for incremental vacuum and IO # errors in incrvacuum_ioerr.test. # | | | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is testing the incremental vacuum feature. # # Note: There are also some tests for incremental vacuum and IO # errors in incrvacuum_ioerr.test. # # $Id: incrvacuum.test,v 1.23 2009/02/18 20:31:18 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # If this build of the library does not support auto-vacuum, omit this # whole file. ifcapable {!autovacuum || !pragma} { |
︙ | ︙ | |||
669 670 671 672 673 674 675 | execsql { BEGIN EXCLUSIVE; } db2 catchsql { PRAGMA auto_vacuum = 2; } } {1 {database is locked}} do_test incrvacuum-12.3 { execsql { ROLLBACK; } db2 execsql { PRAGMA auto_vacuum } | > > | > > > | | 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 | execsql { BEGIN EXCLUSIVE; } db2 catchsql { PRAGMA auto_vacuum = 2; } } {1 {database is locked}} do_test incrvacuum-12.3 { execsql { ROLLBACK; } db2 execsql { PRAGMA auto_vacuum } } {2} ;# Still 2 because PRAGMA auto_vacuum setting held in case of vacuum do_test incrvacuum-12.4 { db close sqlite3 db test.db execsql { PRAGMA auto_vacuum } } {1} ;# Revert to 1 because the database file did not change do_test incrvacuum-12.5 { execsql { SELECT * FROM sqlite_master } execsql { PRAGMA auto_vacuum } } {1} #---------------------------------------------------------------------- # Special case #2: What if one process prepares a "PRAGMA auto_vacuum = XXX" # statement when the database is empty, but doesn't execute it until |
︙ | ︙ |
Changes to test/vacuum2.test.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 2005 February 15 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is testing the VACUUM statement. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 2005 February 15 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is testing the VACUUM statement. # # $Id: vacuum2.test,v 1.10 2009/02/18 20:31:18 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # If the VACUUM statement is disabled in the current build, skip all # the tests in this file. # |
︙ | ︙ | |||
151 152 153 154 155 156 157 158 159 160 161 162 163 164 | } {1} do_test vacuum2-4.3 { execsql { pragma integrity_check } } {ok} do_test vacuum2-4.4 { execsql { pragma auto_vacuum; } } {1} } finish_test | > > > > > > > > > > > > > > > > > > > > > | 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | } {1} do_test vacuum2-4.3 { execsql { pragma integrity_check } } {ok} do_test vacuum2-4.4 { db close sqlite3 db test.db execsql { pragma auto_vacuum; } } {1} do_test vacuum2-4.5 { # Ticket #3663 execsql { pragma auto_vacuum=2; vacuum; pragma auto_vacuum; } } {2} do_test vacuum2-4.6 { execsql { pragma integrity_check } } {ok} do_test vacuum2-4.7 { db close sqlite3 db test.db execsql { pragma auto_vacuum; } } {2} } finish_test |