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

Side by Side Diff: third_party/sqlite/src/test/where7.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 # 2008 December 23 1 # 2008 December 23
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 #***********************************************************************
11 # This file implements regression tests for SQLite library. The 11 # This file implements regression tests for SQLite library. The
12 # focus of this file is testing the multi-index OR clause optimizer. 12 # focus of this file is testing the multi-index OR clause optimizer.
13 #
14 # $Id: where7.test,v 1.9 2009/06/07 23:45:11 drh Exp $
15 13
16 set testdir [file dirname $argv0] 14 set testdir [file dirname $argv0]
17 source $testdir/tester.tcl 15 source $testdir/tester.tcl
18 16
19 ifcapable !or_opt { 17 ifcapable !or_opt {
20 finish_test 18 finish_test
21 return 19 return
22 } 20 }
23 21
24 # Evaluate SQL. Return the result set followed by the 22 # Evaluate SQL. Return the result set followed by the
(...skipping 23273 matching lines...) Expand 10 before | Expand all | Expand 10 after
23298 OR (d>=22.0 AND d<23.0 AND d NOT NULL) 23296 OR (d>=22.0 AND d<23.0 AND d NOT NULL)
23299 OR a=91 23297 OR a=91
23300 } 23298 }
23301 } {2 22 23 28 54 80 91 scan 0 sort 0} 23299 } {2 22 23 28 54 80 91 scan 0 sort 0}
23302 23300
23303 # test case for the performance regression fixed by 23301 # test case for the performance regression fixed by
23304 # check-in 28ba6255282b on 2010-10-21 02:05:06 23302 # check-in 28ba6255282b on 2010-10-21 02:05:06
23305 # 23303 #
23306 # The test case that follows is code from an actual 23304 # The test case that follows is code from an actual
23307 # application with identifiers change and unused columns 23305 # application with identifiers change and unused columns
23308 # remove. 23306 # removed.
23309 # 23307 #
23310 do_execsql_test where7-3.1 { 23308 do_execsql_test where7-3.1 {
23311 CREATE TABLE t301 ( 23309 CREATE TABLE t301 (
23312 c8 INTEGER PRIMARY KEY, 23310 c8 INTEGER PRIMARY KEY,
23313 c6 INTEGER, 23311 c6 INTEGER,
23314 c4 INTEGER, 23312 c4 INTEGER,
23315 c7 INTEGER, 23313 c7 INTEGER,
23316 FOREIGN KEY (c4) REFERENCES series(c4) 23314 FOREIGN KEY (c4) REFERENCES series(c4)
23317 ); 23315 );
23318 CREATE INDEX t301_c6 on t301(c6); 23316 CREATE INDEX t301_c6 on t301(c6);
23319 CREATE INDEX t301_c4 on t301(c4); 23317 CREATE INDEX t301_c4 on t301(c4);
23320 CREATE INDEX t301_c7 on t301(c7); 23318 CREATE INDEX t301_c7 on t301(c7);
23321 23319
23322 CREATE TABLE t302 ( 23320 CREATE TABLE t302 (
23323 c1 INTEGER PRIMARY KEY, 23321 c1 INTEGER PRIMARY KEY,
23324 c8 INTEGER, 23322 c8 INTEGER,
23325 c5 INTEGER, 23323 c5 INTEGER,
23326 c3 INTEGER, 23324 c3 INTEGER,
23327 c2 INTEGER, 23325 c2 INTEGER,
23328 c4 INTEGER, 23326 c4 INTEGER,
23329 FOREIGN KEY (c8) REFERENCES t301(c8) 23327 FOREIGN KEY (c8) REFERENCES t301(c8)
23330 ); 23328 );
23331 CREATE INDEX t302_c3 on t302(c3); 23329 CREATE INDEX t302_c3 on t302(c3);
23332 CREATE INDEX t302_c8_c3 on t302(c8, c3); 23330 CREATE INDEX t302_c8_c3 on t302(c8, c3);
23333 CREATE INDEX t302_c5 on t302(c5); 23331 CREATE INDEX t302_c5 on t302(c5);
23334 23332
23335 EXPLAIN QUERY PLAN 23333 EXPLAIN QUERY PLAN
23336 SELECT t302.c1 23334 SELECT t302.c1
23337 FROM t302 JOIN t301 ON t302.c8 = t301.c8 23335 FROM t302 JOIN t301 ON t302.c8 = +t301.c8
23338 WHERE t302.c2 = 19571 23336 WHERE t302.c2 = 19571
23339 AND t302.c3 > 1287603136 23337 AND t302.c3 > 1287603136
23340 AND (t301.c4 = 1407449685622784 23338 AND (t301.c4 = 1407449685622784
23341 OR t301.c8 = 1407424651264000) 23339 OR t301.c8 = 1407424651264000)
23342 ORDER BY t302.c5 LIMIT 200; 23340 ORDER BY t302.c5 LIMIT 200;
23343 } { 23341 } {
23344 0 0 1 {SEARCH TABLE t301 USING COVERING INDEX t301_c4 (c4=?) (~10 rows)} 23342 0 0 1 {SEARCH TABLE t301 USING COVERING INDEX t301_c4 (c4=?)}
23345 0 0 1 {SEARCH TABLE t301 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)} 23343 0 0 1 {SEARCH TABLE t301 USING INTEGER PRIMARY KEY (rowid=?)}
23346 0 1 0 {SEARCH TABLE t302 USING INDEX t302_c8_c3 (c8=? AND c3>?) (~2 rows)} 23344 0 1 0 {SEARCH TABLE t302 USING INDEX t302_c8_c3 (c8=? AND c3>?)}
23347 0 0 0 {USE TEMP B-TREE FOR ORDER BY} 23345 0 0 0 {USE TEMP B-TREE FOR ORDER BY}
23348 } 23346 }
23349 23347
23350 finish_test 23348 finish_test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698