| Index: third_party/sqlite/src/test/e_vacuum.test
|
| diff --git a/third_party/sqlite/src/test/e_vacuum.test b/third_party/sqlite/src/test/e_vacuum.test
|
| index 99b31aaca427dcd47d88ac040ace7a229733e52c..3fd34afd431555f7d1c4a416e533decd876909c5 100644
|
| --- a/third_party/sqlite/src/test/e_vacuum.test
|
| +++ b/third_party/sqlite/src/test/e_vacuum.test
|
| @@ -159,37 +159,39 @@ do_test e_vacuum-1.3.1.2 {
|
| execsql { PRAGMA page_size ; PRAGMA auto_vacuum }
|
| } {1024 1}
|
|
|
| -# EVIDENCE-OF: R-08570-19916 However, when not in write-ahead log mode,
|
| -# the page_size and/or auto_vacuum properties of an existing database
|
| -# may be changed by using the page_size and/or pragma auto_vacuum
|
| -# pragmas and then immediately VACUUMing the database.
|
| -#
|
| -do_test e_vacuum-1.3.2.1 {
|
| - execsql { PRAGMA journal_mode = delete }
|
| - execsql { PRAGMA page_size = 2048 }
|
| - execsql { PRAGMA auto_vacuum = NONE }
|
| - execsql VACUUM
|
| - execsql { PRAGMA page_size ; PRAGMA auto_vacuum }
|
| -} {2048 0}
|
| -
|
| -# EVIDENCE-OF: R-48521-51450 When in write-ahead log mode, only the
|
| -# auto_vacuum support property can be changed using VACUUM.
|
| -#
|
| -ifcapable wal {
|
| -do_test e_vacuum-1.3.3.1 {
|
| - execsql { PRAGMA journal_mode = wal }
|
| - execsql { PRAGMA page_size ; PRAGMA auto_vacuum }
|
| -} {2048 0}
|
| -do_test e_vacuum-1.3.3.2 {
|
| - execsql { PRAGMA page_size = 1024 }
|
| - execsql { PRAGMA auto_vacuum = FULL }
|
| - execsql VACUUM
|
| - execsql { PRAGMA page_size ; PRAGMA auto_vacuum }
|
| -} {2048 1}
|
| +if {![nonzero_reserved_bytes]} {
|
| + # EVIDENCE-OF: R-08570-19916 However, when not in write-ahead log mode,
|
| + # the page_size and/or auto_vacuum properties of an existing database
|
| + # may be changed by using the page_size and/or pragma auto_vacuum
|
| + # pragmas and then immediately VACUUMing the database.
|
| + #
|
| + do_test e_vacuum-1.3.2.1 {
|
| + execsql { PRAGMA journal_mode = delete }
|
| + execsql { PRAGMA page_size = 2048 }
|
| + execsql { PRAGMA auto_vacuum = NONE }
|
| + execsql VACUUM
|
| + execsql { PRAGMA page_size ; PRAGMA auto_vacuum }
|
| + } {2048 0}
|
| +
|
| + # EVIDENCE-OF: R-48521-51450 When in write-ahead log mode, only the
|
| + # auto_vacuum support property can be changed using VACUUM.
|
| + #
|
| + if {[wal_is_capable]} {
|
| + do_test e_vacuum-1.3.3.1 {
|
| + execsql { PRAGMA journal_mode = wal }
|
| + execsql { PRAGMA page_size ; PRAGMA auto_vacuum }
|
| + } {2048 0}
|
| + do_test e_vacuum-1.3.3.2 {
|
| + execsql { PRAGMA page_size = 1024 }
|
| + execsql { PRAGMA auto_vacuum = FULL }
|
| + execsql VACUUM
|
| + execsql { PRAGMA page_size ; PRAGMA auto_vacuum }
|
| + } {2048 1}
|
| + }
|
| }
|
| -
|
| -# EVIDENCE-OF: R-38001-03952 VACUUM only works on the main database. It
|
| -# is not possible to VACUUM an attached database file.
|
| +
|
| +# EVIDENCE-OF: R-55119-57913 By default, VACUUM only works only on the
|
| +# main database.
|
| forcedelete test.db2
|
| create_db { PRAGMA auto_vacuum = NONE }
|
| do_execsql_test e_vacuum-2.1.1 {
|
| @@ -200,14 +202,15 @@ do_execsql_test e_vacuum-2.1.1 {
|
| } {}
|
| set original_size [file size test.db2]
|
|
|
| -# Try everything we can think of to get the aux database vacuumed:
|
| +# Vacuuming the main database does not affect aux
|
| do_execsql_test e_vacuum-2.1.3 { VACUUM } {}
|
| -do_execsql_test e_vacuum-2.1.4 { VACUUM aux } {}
|
| -do_execsql_test e_vacuum-2.1.5 { VACUUM 'test.db2' } {}
|
| -
|
| -# Despite our efforts, space in the aux database has not been reclaimed:
|
| do_test e_vacuum-2.1.6 { expr {[file size test.db2]==$::original_size} } 1
|
|
|
| +# EVIDENCE-OF: R-36598-60500 Attached databases can be vacuumed by
|
| +# appending the appropriate schema-name to the VACUUM statement.
|
| +do_execsql_test e_vacuum-2.1.7 { VACUUM aux; } {}
|
| +do_test e_vacuum-2.1.8 { expr {[file size test.db2]<$::original_size} } 1
|
| +
|
| # EVIDENCE-OF: R-17495-17419 The VACUUM command may change the ROWIDs of
|
| # entries in any tables that do not have an explicit INTEGER PRIMARY
|
| # KEY.
|
| @@ -269,9 +272,9 @@ do_test e_vacuum-3.2.2.1 {
|
| } {1 {cannot VACUUM - SQL statements in progress}}
|
|
|
|
|
| -# EVIDENCE-OF: R-38735-12540 As of SQLite version 3.1, an alternative to
|
| -# using the VACUUM command to reclaim space after data has been deleted
|
| -# is auto-vacuum mode, enabled using the auto_vacuum pragma.
|
| +# EVIDENCE-OF: R-55138-13241 An alternative to using the VACUUM command
|
| +# to reclaim space after data has been deleted is auto-vacuum mode,
|
| +# enabled using the auto_vacuum pragma.
|
| #
|
| do_test e_vacuum-3.3.1 {
|
| create_db { PRAGMA auto_vacuum = FULL }
|
|
|