OLD | NEW |
1 # 2001 September 15 | 1 # 2001 September 15 |
2 # | 2 # |
3 # The author disclaims copyright to this source code. In place of | 3 # The author disclaims copyright to this source code. In place of |
4 # a legal notice, here is a blessing: | 4 # a legal notice, here is a blessing: |
5 # | 5 # |
6 # May you do good and not evil. | 6 # May you do good and not evil. |
7 # May you find forgiveness for yourself and forgive others. | 7 # May you find forgiveness for yourself and forgive others. |
8 # May you share freely, never taking more than you give. | 8 # May you share freely, never taking more than you give. |
9 # | 9 # |
10 #*********************************************************************** | 10 #*********************************************************************** |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 CREATE INDEX i1 ON t1(b,c); | 47 CREATE INDEX i1 ON t1(b,c); |
48 CREATE UNIQUE INDEX i2 ON t1(c,a); | 48 CREATE UNIQUE INDEX i2 ON t1(c,a); |
49 CREATE TABLE t2 AS SELECT * FROM t1; | 49 CREATE TABLE t2 AS SELECT * FROM t1; |
50 COMMIT; | 50 COMMIT; |
51 DROP TABLE t2; | 51 DROP TABLE t2; |
52 } | 52 } |
53 set ::size1 [file size test.db] | 53 set ::size1 [file size test.db] |
54 set ::cksum [cksum] | 54 set ::cksum [cksum] |
55 expr {$::cksum!=""} | 55 expr {$::cksum!=""} |
56 } {1} | 56 } {1} |
| 57 |
| 58 # Create bogus application-defined functions for functions used |
| 59 # internally by VACUUM, to ensure that VACUUM falls back |
| 60 # to the built-in functions. |
| 61 # |
| 62 proc failing_app_func {args} {error "bad function"} |
| 63 do_test vacuum-1.1b { |
| 64 db func substr failing_app_func |
| 65 db func like failing_app_func |
| 66 db func quote failing_app_func |
| 67 catchsql {SELECT substr(name,1,3) FROM sqlite_master} |
| 68 } {1 {bad function}} |
| 69 |
57 do_test vacuum-1.2 { | 70 do_test vacuum-1.2 { |
58 execsql { | 71 execsql { |
59 VACUUM; | 72 VACUUM; |
60 } | 73 } |
61 cksum | 74 cksum |
62 } $cksum | 75 } $cksum |
63 ifcapable vacuum { | 76 ifcapable vacuum { |
64 do_test vacuum-1.3 { | 77 do_test vacuum-1.3 { |
65 expr {[file size test.db]<$::size1} | 78 expr {[file size test.db]<$::size1} |
66 } {1} | 79 } {1} |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 # [file delete] command covers us in case the library was compiled | 293 # [file delete] command covers us in case the library was compiled |
281 # without in-memory database support. | 294 # without in-memory database support. |
282 # | 295 # |
283 file delete -force :memory: | 296 file delete -force :memory: |
284 do_test vacuum-7.0 { | 297 do_test vacuum-7.0 { |
285 sqlite3 db2 :memory: | 298 sqlite3 db2 :memory: |
286 execsql { | 299 execsql { |
287 CREATE TABLE t1(t); | 300 CREATE TABLE t1(t); |
288 VACUUM; | 301 VACUUM; |
289 } db2 | 302 } db2 |
| 303 } {} |
| 304 do_test vacuum-7.1 { |
290 execsql { | 305 execsql { |
291 CREATE TABLE t2(t); | 306 CREATE TABLE t2(t); |
292 CREATE TABLE t3(t); | 307 CREATE TABLE t3(t); |
293 DROP TABLE t2; | 308 DROP TABLE t2; |
| 309 PRAGMA freelist_count; |
| 310 } |
| 311 } {1} |
| 312 do_test vacuum-7.2 { |
| 313 execsql { |
294 VACUUM; | 314 VACUUM; |
295 pragma integrity_check; | 315 pragma integrity_check; |
296 } db2 | 316 } db2 |
297 } {ok} | 317 } {ok} |
| 318 do_test vacuum-7.3 { |
| 319 execsql { PRAGMA freelist_count; } db2 |
| 320 } {0} |
| 321 ifcapable autovacuum { |
| 322 do_test vacuum-7.4 { |
| 323 execsql { PRAGMA auto_vacuum } db2 |
| 324 } {0} |
| 325 do_test vacuum-7.5 { |
| 326 execsql { PRAGMA auto_vacuum = 1} db2 |
| 327 execsql { PRAGMA auto_vacuum } db2 |
| 328 } {0} |
| 329 do_test vacuum-7.6 { |
| 330 execsql { PRAGMA auto_vacuum = 1} db2 |
| 331 execsql { VACUUM } db2 |
| 332 execsql { PRAGMA auto_vacuum } db2 |
| 333 } {1} |
| 334 } |
298 db2 close | 335 db2 close |
299 | 336 |
300 # Ticket #873. VACUUM a database that has ' in its name. | 337 # Ticket #873. VACUUM a database that has ' in its name. |
301 # | 338 # |
302 do_test vacuum-8.1 { | 339 do_test vacuum-8.1 { |
303 file delete -force a'z.db | 340 file delete -force a'z.db |
304 file delete -force a'z.db-journal | 341 file delete -force a'z.db-journal |
305 sqlite3 db2 a'z.db | 342 sqlite3 db2 a'z.db |
306 execsql { | 343 execsql { |
307 CREATE TABLE t1(t); | 344 CREATE TABLE t1(t); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 execsql { | 379 execsql { |
343 VACUUM; | 380 VACUUM; |
344 } | 381 } |
345 cksum | 382 cksum |
346 } $::cksum | 383 } $::cksum |
347 } | 384 } |
348 | 385 |
349 file delete -force {a'z.db} | 386 file delete -force {a'z.db} |
350 | 387 |
351 finish_test | 388 finish_test |
OLD | NEW |