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

Side by Side Diff: third_party/sqlite/src/test/between.test

Issue 901033002: Import SQLite 3.8.7.4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Chromium changes to support SQLite 3.8.7.4. 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
1 # 2005 July 28 1 # 2005 July 28
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 30 matching lines...) Expand all
41 execsql { 41 execsql {
42 CREATE UNIQUE INDEX i1w ON t1(w); 42 CREATE UNIQUE INDEX i1w ON t1(w);
43 CREATE INDEX i1xy ON t1(x,y); 43 CREATE INDEX i1xy ON t1(x,y);
44 CREATE INDEX i1zyx ON t1(z,y,x); 44 CREATE INDEX i1zyx ON t1(z,y,x);
45 COMMIT; 45 COMMIT;
46 } 46 }
47 } {} 47 } {}
48 48
49 # This procedure executes the SQL. Then it appends to the result the 49 # This procedure executes the SQL. Then it appends to the result the
50 # "sort" or "nosort" keyword depending on whether or not any sorting 50 # "sort" or "nosort" keyword depending on whether or not any sorting
51 # is done. Then it appends the ::sqlite_query_plan variable. 51 # is done. Then it appends the names of the table and index used.
52 # 52 #
53 proc queryplan {sql} { 53 proc queryplan {sql} {
54 set ::sqlite_sort_count 0 54 set ::sqlite_sort_count 0
55 set data [execsql $sql] 55 set data [execsql $sql]
56 if {$::sqlite_sort_count} {set x sort} {set x nosort} 56 if {$::sqlite_sort_count} {set x sort} {set x nosort}
57 lappend data $x 57 lappend data $x
58 return [concat $data $::sqlite_query_plan] 58 set eqp [execsql "EXPLAIN QUERY PLAN $sql"]
59 # puts eqp=$eqp
60 foreach {a b c x} $eqp {
61 if {[regexp { TABLE (\w+ AS )?(\w+) USING.* INDEX (\w+)\y} \
62 $x all as tab idx]} {
63 lappend data $tab $idx
64 } elseif {[regexp { TABLE (\w+ AS )?(\w+)\y} $x all as tab]} {
65 lappend data $tab *
66 }
67 }
68 return $data
59 } 69 }
60 70
61 do_test between-1.1.1 { 71 do_test between-1.1.1 {
62 queryplan { 72 queryplan {
63 SELECT * FROM t1 WHERE w BETWEEN 5 AND 6 ORDER BY +w 73 SELECT * FROM t1 WHERE w BETWEEN 5 AND 6 ORDER BY +w
64 } 74 }
65 } {5 2 36 38 6 2 49 51 sort t1 i1w} 75 } {5 2 36 38 6 2 49 51 sort t1 i1w}
66 do_test between-1.1.2 { 76 do_test between-1.1.2 {
67 queryplan { 77 queryplan {
68 SELECT * FROM t1 WHERE +w BETWEEN 5 AND 6 ORDER BY +w 78 SELECT * FROM t1 WHERE +w BETWEEN 5 AND 6 ORDER BY +w
69 } 79 }
70 } {5 2 36 38 6 2 49 51 sort t1 {}} 80 } {5 2 36 38 6 2 49 51 sort t1 *}
71 do_test between-1.2.1 { 81 do_test between-1.2.1 {
72 queryplan { 82 queryplan {
73 SELECT * FROM t1 WHERE w BETWEEN 5 AND 65-y ORDER BY +w 83 SELECT * FROM t1 WHERE w BETWEEN 5 AND 65-y ORDER BY +w
74 } 84 }
75 } {5 2 36 38 6 2 49 51 sort t1 i1w} 85 } {5 2 36 38 6 2 49 51 sort t1 i1w}
76 do_test between-1.2.2 { 86 do_test between-1.2.2 {
77 queryplan { 87 queryplan {
78 SELECT * FROM t1 WHERE +w BETWEEN 5 AND 65-y ORDER BY +w 88 SELECT * FROM t1 WHERE +w BETWEEN 5 AND 65-y ORDER BY +w
79 } 89 }
80 } {5 2 36 38 6 2 49 51 sort t1 {}} 90 } {5 2 36 38 6 2 49 51 sort t1 *}
81 do_test between-1.3.1 { 91 do_test between-1.3.1 {
82 queryplan { 92 queryplan {
83 SELECT * FROM t1 WHERE w BETWEEN 41-y AND 6 ORDER BY +w 93 SELECT * FROM t1 WHERE w BETWEEN 41-y AND 6 ORDER BY +w
84 } 94 }
85 } {5 2 36 38 6 2 49 51 sort t1 i1w} 95 } {5 2 36 38 6 2 49 51 sort t1 i1w}
86 do_test between-1.3.2 { 96 do_test between-1.3.2 {
87 queryplan { 97 queryplan {
88 SELECT * FROM t1 WHERE +w BETWEEN 41-y AND 6 ORDER BY +w 98 SELECT * FROM t1 WHERE +w BETWEEN 41-y AND 6 ORDER BY +w
89 } 99 }
90 } {5 2 36 38 6 2 49 51 sort t1 {}} 100 } {5 2 36 38 6 2 49 51 sort t1 *}
91 do_test between-1.4 { 101 do_test between-1.4 {
92 queryplan { 102 queryplan {
93 SELECT * FROM t1 WHERE w BETWEEN 41-y AND 65-y ORDER BY +w 103 SELECT * FROM t1 WHERE w BETWEEN 41-y AND 65-y ORDER BY +w
94 } 104 }
95 } {5 2 36 38 6 2 49 51 sort t1 {}} 105 } {5 2 36 38 6 2 49 51 sort t1 *}
96 do_test between-1.5.1 { 106 do_test between-1.5.1 {
97 queryplan { 107 queryplan {
98 SELECT * FROM t1 WHERE 26 BETWEEN y AND z ORDER BY +w 108 SELECT * FROM t1 WHERE 26 BETWEEN y AND z ORDER BY +w
99 } 109 }
100 } {4 2 25 27 sort t1 i1zyx} 110 } {4 2 25 27 sort t1 i1zyx}
101 do_test between-1.5.2 { 111 do_test between-1.5.2 {
102 queryplan { 112 queryplan {
103 SELECT * FROM t1 WHERE 26 BETWEEN +y AND z ORDER BY +w 113 SELECT * FROM t1 WHERE 26 BETWEEN +y AND z ORDER BY +w
104 } 114 }
105 } {4 2 25 27 sort t1 i1zyx} 115 } {4 2 25 27 sort t1 i1zyx}
106 do_test between-1.5.3 { 116 do_test between-1.5.3 {
107 queryplan { 117 queryplan {
108 SELECT * FROM t1 WHERE 26 BETWEEN y AND +z ORDER BY +w 118 SELECT * FROM t1 WHERE 26 BETWEEN y AND +z ORDER BY +w
109 } 119 }
110 } {4 2 25 27 sort t1 {}} 120 } {4 2 25 27 sort t1 *}
111 121
112 122
113 finish_test 123 finish_test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698