OLD | NEW |
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 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 } | 315 } |
316 } [list 6 2 49 51 99 6 10000 10006 100 6 10201 10207 sort t1 $::idx] | 316 } [list 6 2 49 51 99 6 10000 10006 100 6 10201 10207 sort t1 $::idx] |
317 | 317 |
318 do_test where2-6.3 { | 318 do_test where2-6.3 { |
319 queryplan { | 319 queryplan { |
320 SELECT * FROM t1 WHERE w=99 OR w=100 OR 6=+w ORDER BY +w | 320 SELECT * FROM t1 WHERE w=99 OR w=100 OR 6=+w ORDER BY +w |
321 } | 321 } |
322 } {6 2 49 51 99 6 10000 10006 100 6 10201 10207 sort t1 *} | 322 } {6 2 49 51 99 6 10000 10006 100 6 10201 10207 sort t1 *} |
323 do_test where2-6.4 { | 323 do_test where2-6.4 { |
324 queryplan { | 324 queryplan { |
325 SELECT * FROM t1 WHERE w=99 OR +w=100 OR 6=w ORDER BY +w | 325 SELECT *, '|' FROM t1 WHERE w=99 OR +w=100 OR 6=w ORDER BY +w |
326 } | 326 } |
327 } {6 2 49 51 99 6 10000 10006 100 6 10201 10207 sort t1 *} | 327 } {6 2 49 51 | 99 6 10000 10006 | 100 6 10201 10207 | sort t1 *} |
| 328 do_test where2-6.5 { |
| 329 queryplan { |
| 330 SELECT *, '|' FROM t1 WHERE w=99 OR y=10201 OR 6=w ORDER BY +w |
| 331 } |
| 332 } {6 2 49 51 | 99 6 10000 10006 | 100 6 10201 10207 | sort t1 *} |
328 | 333 |
329 set ::idx {} | 334 set ::idx {} |
330 ifcapable subquery {set ::idx i1zyx} | 335 ifcapable subquery {set ::idx i1zyx} |
331 do_test where2-6.5 { | 336 do_test where2-6.5 { |
332 queryplan { | 337 queryplan { |
333 SELECT b.* FROM t1 a, t1 b | 338 SELECT b.* FROM t1 a, t1 b |
334 WHERE a.w=1 AND (a.y=b.z OR b.z=10) | 339 WHERE a.w=1 AND (a.y=b.z OR b.z=10) |
335 ORDER BY +b.w | 340 ORDER BY +b.w |
336 } | 341 } |
337 } [list 1 0 4 4 2 1 9 10 sort a i1w b $::idx] | 342 } [list 1 0 4 4 2 1 9 10 sort a i1w b $::idx] |
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
754 # Verify that all necessary OP_OpenRead opcodes occur in the OR optimization. | 759 # Verify that all necessary OP_OpenRead opcodes occur in the OR optimization. |
755 # | 760 # |
756 do_execsql_test where2-13.1 { | 761 do_execsql_test where2-13.1 { |
757 CREATE TABLE t13(a,b); | 762 CREATE TABLE t13(a,b); |
758 CREATE INDEX t13a ON t13(a); | 763 CREATE INDEX t13a ON t13(a); |
759 INSERT INTO t13 VALUES(4,5); | 764 INSERT INTO t13 VALUES(4,5); |
760 SELECT * FROM t13 WHERE (1=2 AND a=3) OR a=4; | 765 SELECT * FROM t13 WHERE (1=2 AND a=3) OR a=4; |
761 } {4 5} | 766 } {4 5} |
762 | 767 |
763 finish_test | 768 finish_test |
OLD | NEW |