OLD | NEW |
| (Empty) |
1 # 2013-05-23 | |
2 # | |
3 # The author disclaims copyright to this source code. In place of | |
4 # a legal notice, here is a blessing: | |
5 # | |
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. | |
9 # | |
10 #*********************************************************************** | |
11 # | |
12 | |
13 set testdir [file dirname $argv0] | |
14 source $testdir/tester.tcl | |
15 ifcapable !mmap||!vtab { | |
16 finish_test | |
17 return | |
18 } | |
19 source $testdir/lock_common.tcl | |
20 set testprefix mmap3 | |
21 | |
22 do_test mmap3-1.0 { | |
23 load_static_extension db wholenumber | |
24 db eval { | |
25 PRAGMA mmap_size=100000; | |
26 CREATE TABLE t1(x, y); | |
27 CREATE VIRTUAL TABLE nums USING wholenumber; | |
28 INSERT INTO t1 SELECT value, randomblob(value) FROM nums | |
29 WHERE value BETWEEN 1 and 1000; | |
30 SELECT sum(x), sum(length(y)) from t1; | |
31 PRAGMA mmap_size; | |
32 } | |
33 } {100000 500500 500500 100000} | |
34 do_test mmap3-1.2 { | |
35 db eval { | |
36 PRAGMA mmap_size=50000; | |
37 CREATE TABLE t2(a,b); | |
38 SELECT name FROM sqlite_master WHERE type='table' ORDER BY 1; | |
39 PRAGMA quick_check; | |
40 PRAGMA mmap_size; | |
41 } | |
42 } {50000 nums t1 t2 ok 50000} | |
43 do_test mmap3-1.3 { | |
44 db eval { | |
45 PRAGMA mmap_size=250000; | |
46 DROP TABLE t2; | |
47 SELECT name FROM sqlite_master WHERE type='table' ORDER BY 1; | |
48 PRAGMA quick_check; | |
49 PRAGMA mmap_size; | |
50 } | |
51 } {250000 nums t1 ok 250000} | |
52 do_test mmap3-1.4 { | |
53 db eval {SELECT x FROM t1 WHERE +x BETWEEN 10 AND 15} { | |
54 db eval {PRAGMA mmap_size=150000} | |
55 } | |
56 db eval { | |
57 PRAGMA quick_check; | |
58 PRAGMA mmap_size; | |
59 } | |
60 } {ok 250000} | |
61 do_test mmap3-1.5 { | |
62 db eval {SELECT x FROM t1 WHERE +x BETWEEN 10 AND 15} { | |
63 db eval {PRAGMA mmap_size=0} | |
64 } | |
65 db eval { | |
66 PRAGMA quick_check; | |
67 PRAGMA mmap_size; | |
68 } | |
69 } {ok 250000} | |
70 do_test mmap3-1.6 { | |
71 db eval {SELECT x FROM t1 WHERE +x BETWEEN 10 AND 15} { | |
72 set x [db one {PRAGMA mmap_size}] | |
73 } | |
74 set x [concat $x [db eval { | |
75 PRAGMA quick_check; | |
76 PRAGMA mmap_size; | |
77 }]] | |
78 } {250000 ok 250000} | |
79 do_test mmap3-1.7 { | |
80 db eval { | |
81 PRAGMA mmap_size(0); | |
82 CREATE TABLE t3(a,b,c); | |
83 SELECT name FROM sqlite_master WHERE type='table' ORDER BY 1; | |
84 PRAGMA quick_check; | |
85 PRAGMA mmap_size; | |
86 } | |
87 } {0 nums t1 t3 ok 0} | |
88 do_test mmap3-1.8 { | |
89 db eval {SELECT x FROM t1 WHERE +x BETWEEN 10 AND 15} { | |
90 db eval {PRAGMA mmap_size=75000} | |
91 } | |
92 db eval { | |
93 PRAGMA quick_check; | |
94 PRAGMA mmap_size; | |
95 } | |
96 } {ok 75000} | |
97 | |
98 finish_test | |
OLD | NEW |