3 # The author disclaims copyright to this source code. In place of
4 # a legal notice, here is a blessing:
6 # May you do good and not evil.
7 # May you find forgiveness for yourself and forgive others.
8 # May you share freely, never taking more than you give.
10 #***********************************************************************
11 # This file implements regression tests for SQLite library.
12 # This file implements tests for the page_size PRAGMA.
14 # $Id: pagesize.test,v 1.10 2005/05/20 20:01:56 drh Exp $
17 set testdir [file dirname $argv0]
18 source $testdir/tester.tcl
20 # This test script depends entirely on "PRAGMA page_size". So if this
21 # pragma is not available, omit the whole file.
22 ifcapable !pager_pragmas {
27 do_test pagesize-1.1 {
28 execsql {PRAGMA page_size}
31 do_test pagesize-1.2 {
32 catch {execsql {EXPLAIN PRAGMA page_size}}
35 do_test pagesize-1.3 {
38 PRAGMA page_size=2048;
43 do_test pagesize-1.4 {
45 file delete -force test.db
52 do_test pagesize-1.5 {
58 do_test pagesize-1.6 {
60 PRAGMA page_size=8192;
64 do_test pagesize-1.7 {
66 PRAGMA page_size=65537;
70 do_test pagesize-1.8 {
72 PRAGMA page_size=1234;
77 foreach PGSZ {512 2048 4096 8192} {
78 do_test pagesize-2.$PGSZ.0 {
81 execsql "PRAGMA page_size=$PGSZ;"
82 execsql {PRAGMA page_size}
84 do_test pagesize-2.$PGSZ.1 {
86 file delete -force test.db
88 execsql "PRAGMA page_size=$PGSZ"
94 do_test pagesize-2.$PGSZ.2 {
101 do_test pagesize-2.$PGSZ.3 {
103 } [expr {$PGSZ*($AUTOVACUUM?3:2)}]
105 do_test pagesize-2.$PGSZ.4 {
109 integrity_check pagesize-2.$PGSZ.5
110 do_test pagesize-2.$PGSZ.6 {
113 execsql {PRAGMA page_size}
115 do_test pagesize-2.$PGSZ.7 {
117 INSERT INTO t1 VALUES(randstr(10,9000));
118 INSERT INTO t1 VALUES(randstr(10,9000));
119 INSERT INTO t1 VALUES(randstr(10,9000));
121 INSERT INTO t1 SELECT x||x FROM t1;
122 INSERT INTO t1 SELECT x||x FROM t1;
123 INSERT INTO t1 SELECT x||x FROM t1;
124 INSERT INTO t1 SELECT x||x FROM t1;
125 SELECT count(*) FROM t1;
128 do_test pagesize-2.$PGSZ.8 {
131 SELECT count(*) FROM t1;
134 integrity_check pagesize-2.$PGSZ.9
135 do_test pagesize-2.$PGSZ.10 {
138 execsql {PRAGMA page_size}
140 do_test pagesize-2.$PGSZ.11 {
142 INSERT INTO t1 SELECT x||x FROM t1;
143 INSERT INTO t1 SELECT x||x FROM t1;
144 INSERT INTO t1 SELECT x||x FROM t1;
145 INSERT INTO t1 SELECT x||x FROM t1;
146 INSERT INTO t1 SELECT x||x FROM t1;
147 INSERT INTO t1 SELECT x||x FROM t1;
148 SELECT count(*) FROM t1;
151 do_test pagesize-2.$PGSZ.12 {
154 DELETE FROM t1 WHERE rowid%5!=0;
155 SELECT count(*) FROM t1;
158 do_test pagesize-2.$PGSZ.13 {
161 SELECT count(*) FROM t1;
164 integrity_check pagesize-2.$PGSZ.14
165 do_test pagesize-2.$PGSZ.15 {
166 execsql {DELETE FROM t1 WHERE rowid%5!=0}
167 ifcapable {vacuum} {execsql VACUUM}
168 execsql {SELECT count(*) FROM t1}
170 do_test pagesize-2.$PGSZ.16 {
171 execsql {DROP TABLE t1}
172 ifcapable {vacuum} {execsql VACUUM}
174 integrity_check pagesize-2.$PGSZ.17