| Index: third_party/sqlite/src/test/selectB.test
|
| diff --git a/third_party/sqlite/src/test/selectB.test b/third_party/sqlite/src/test/selectB.test
|
| index 3fdf85c0f9fc92b47b02bb2215b55b22702db470..05ec9c6bdb0f5fc96b13444b612354f80086a3eb 100644
|
| --- a/third_party/sqlite/src/test/selectB.test
|
| +++ b/third_party/sqlite/src/test/selectB.test
|
| @@ -194,19 +194,28 @@ do_test selectB-3.0 {
|
| }
|
| } {}
|
|
|
| -for {set ii 3} {$ii <= 4} {incr ii} {
|
| +for {set ii 3} {$ii <= 6} {incr ii} {
|
|
|
| - if {$ii == 4} {
|
| - do_test selectB-4.0 {
|
| - execsql {
|
| - CREATE INDEX i1 ON t1(a);
|
| - CREATE INDEX i2 ON t1(b);
|
| - CREATE INDEX i3 ON t1(c);
|
| - CREATE INDEX i4 ON t2(d);
|
| - CREATE INDEX i5 ON t2(e);
|
| - CREATE INDEX i6 ON t2(f);
|
| - }
|
| - } {}
|
| + switch $ii {
|
| + 4 {
|
| + optimization_control db query-flattener off
|
| + }
|
| + 5 {
|
| + optimization_control db query-flattener on
|
| + do_test selectB-5.0 {
|
| + execsql {
|
| + CREATE INDEX i1 ON t1(a);
|
| + CREATE INDEX i2 ON t1(b);
|
| + CREATE INDEX i3 ON t1(c);
|
| + CREATE INDEX i4 ON t2(d);
|
| + CREATE INDEX i5 ON t2(e);
|
| + CREATE INDEX i6 ON t2(f);
|
| + }
|
| + } {}
|
| + }
|
| + 6 {
|
| + optimization_control db query-flattener off
|
| + }
|
| }
|
|
|
| do_test selectB-$ii.1 {
|
| @@ -355,7 +364,7 @@ for {set ii 3} {$ii <= 4} {incr ii} {
|
| SELECT DISTINCT (a/10) FROM t1 UNION ALL SELECT DISTINCT(d%2) FROM t2
|
| )
|
| }
|
| - } {0 1 0 1}
|
| + } {0 1 1 0}
|
|
|
| do_test selectB-$ii.20 {
|
| execsql {
|
| @@ -371,11 +380,47 @@ for {set ii 3} {$ii <= 4} {incr ii} {
|
| }
|
| } {2 4 6 3 6 9 8 10 12 12 15 18 14 16 18 21 24 27}
|
|
|
| - do_test selectB-$ii.21 {
|
| + do_test selectB-$ii.22 {
|
| execsql {
|
| SELECT * FROM (SELECT 345 UNION ALL SELECT d FROM t2) ORDER BY 1;
|
| }
|
| } {3 12 21 345}
|
| +
|
| + do_test selectB-$ii.23 {
|
| + execsql {
|
| + SELECT x, y FROM (
|
| + SELECT a AS x, b AS y FROM t1
|
| + UNION ALL
|
| + SELECT a*10 + 0.1, f*10 + 0.1 FROM t1 JOIN t2 ON (c=d)
|
| + UNION ALL
|
| + SELECT a*100, b*100 FROM t1
|
| + ) ORDER BY 1;
|
| + }
|
| + } {2 4 8 10 14 16 80.1 180.1 200 400 800 1000 1400 1600}
|
| +
|
| + do_test selectB-$ii.24 {
|
| + execsql {
|
| + SELECT x, y FROM (
|
| + SELECT a AS x, b AS y FROM t1
|
| + UNION ALL
|
| + SELECT a*10 + 0.1, f*10 + 0.1 FROM t1 LEFT JOIN t2 ON (c=d)
|
| + UNION ALL
|
| + SELECT a*100, b*100 FROM t1
|
| + ) ORDER BY 1;
|
| + }
|
| + } {2 4 8 10 14 16 20.1 {} 80.1 180.1 140.1 {} 200 400 800 1000 1400 1600}
|
| +
|
| + do_test selectB-$ii.25 {
|
| + execsql {
|
| + SELECT x+y FROM (
|
| + SELECT a AS x, b AS y FROM t1
|
| + UNION ALL
|
| + SELECT a*10 + 0.1, f*10 + 0.1 FROM t1 LEFT JOIN t2 ON (c=d)
|
| + UNION ALL
|
| + SELECT a*100, b*100 FROM t1
|
| + ) WHERE y+x NOT NULL ORDER BY 1;
|
| + }
|
| + } {6 18 30 260.2 600 1800 3000}
|
| }
|
|
|
| finish_test
|
|
|