Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(325)

Side by Side Diff: third_party/sqlite/sqlite-src-3080704/test/coveridxscan.test

Issue 883353008: [sql] Import reference version of SQLite 3.8.7.4. (Closed) Base URL: http://chromium.googlesource.com/chromium/src.git@master
Patch Set: Hold back encoding change which is messing up patch. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # 2012 September 17
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 # Tests for the optimization which attempts to use a covering index
13 # for a full-table scan (under the theory that the index will be smaller
14 # and require less I/O and hence will run faster.)
15 #
16
17 set testdir [file dirname $argv0]
18 source $testdir/tester.tcl
19
20 set testprefix coveridxscan
21
22 do_test 1.1 {
23 db eval {
24 CREATE TABLE t1(a,b,c);
25 INSERT INTO t1 VALUES(5,4,3), (4,8,2), (3,2,1);
26 CREATE INDEX t1ab ON t1(a,b);
27 CREATE INDEX t1b ON t1(b);
28 SELECT a FROM t1;
29 }
30 # covering index used for the scan, hence values are increasing
31 } {3 4 5}
32
33 do_test 1.2 {
34 db eval {
35 SELECT a, c FROM t1;
36 }
37 # There is no covering index, hence the values are in rowid order
38 } {5 3 4 2 3 1}
39
40 do_test 1.3 {
41 db eval {
42 SELECT b FROM t1;
43 }
44 # Choice of two indices: use the one with fewest columns
45 } {2 4 8}
46
47 do_test 2.1 {
48 optimization_control db cover-idx-scan 0
49 db eval {SELECT a FROM t1}
50 # With the optimization turned off, output in rowid order
51 } {5 4 3}
52 do_test 2.2 {
53 db eval {SELECT a, c FROM t1}
54 } {5 3 4 2 3 1}
55 do_test 2.3 {
56 db eval {SELECT b FROM t1}
57 } {4 8 2}
58
59 db close
60 sqlite3_shutdown
61 sqlite3_config_cis 0
62 sqlite3 db test.db
63
64 do_test 3.1 {
65 db eval {SELECT a FROM t1}
66 # With the optimization configured off, output in rowid order
67 } {5 4 3}
68 do_test 3.2 {
69 db eval {SELECT a, c FROM t1}
70 } {5 3 4 2 3 1}
71 do_test 3.3 {
72 db eval {SELECT b FROM t1}
73 } {4 8 2}
74
75 db close
76 sqlite3_shutdown
77 sqlite3_config_cis 1
78 sqlite3 db test.db
79
80 # The CIS optimization is enabled again. Covering indices are once again
81 # used for all table scans.
82 do_test 4.1 {
83 db eval {SELECT a FROM t1}
84 } {3 4 5}
85 do_test 4.2 {
86 db eval {SELECT a, c FROM t1}
87 } {5 3 4 2 3 1}
88 do_test 4.3 {
89 db eval {SELECT b FROM t1}
90 } {2 4 8}
91
92
93 finish_test
OLDNEW
« no previous file with comments | « third_party/sqlite/sqlite-src-3080704/test/count.test ('k') | third_party/sqlite/sqlite-src-3080704/test/crash.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698