mirror of
https://github.com/sqlite/sqlite.git
synced 2026-01-06 08:01:16 +03:00
Further refinements to table order selection on join query planning.
FossilOrigin-Name: defaf0d99a807027f8883bf821b6482025f9f54e
This commit is contained in:
@@ -153,12 +153,12 @@ do_test select2-4.1 {
|
||||
do_test select2-4.2 {
|
||||
execsql {
|
||||
INSERT INTO bb VALUES(0);
|
||||
SELECT * FROM aa, bb WHERE b;
|
||||
SELECT * FROM aa CROSS JOIN bb WHERE b;
|
||||
}
|
||||
} {1 2 1 4 3 2 3 4}
|
||||
do_test select2-4.3 {
|
||||
execsql {
|
||||
SELECT * FROM aa, bb WHERE NOT b;
|
||||
SELECT * FROM aa CROSS JOIN bb WHERE NOT b;
|
||||
}
|
||||
} {1 0 3 0}
|
||||
do_test select2-4.4 {
|
||||
|
||||
@@ -77,7 +77,7 @@ do_test triggerA-1.5 {
|
||||
do_test triggerA-1.6 {
|
||||
db eval {
|
||||
CREATE VIEW v5 AS SELECT x, b FROM t1, t2 WHERE y=c;
|
||||
SELECT * FROM v5;
|
||||
SELECT * FROM v5 ORDER BY x DESC;
|
||||
}
|
||||
} {10 1003 9 904 8 805 7 705 6 603 5 504 4 404 3 305 2 203 1 103}
|
||||
|
||||
|
||||
@@ -199,13 +199,13 @@ do_test where3-2.5 {
|
||||
WHERE cpk=ax AND bpk=cx
|
||||
}
|
||||
} {tA {} tC * tB * tD *}
|
||||
do_test where3-2.5 {
|
||||
do_test where3-2.6 {
|
||||
queryplan {
|
||||
SELECT * FROM tA, tB, tC LEFT JOIN tD ON dpk=cx
|
||||
WHERE bpk=cx AND apk=bx
|
||||
}
|
||||
} {tC {} tB * tA * tD *}
|
||||
do_test where3-2.6 {
|
||||
do_test where3-2.7 {
|
||||
queryplan {
|
||||
SELECT * FROM tA, tB, tC LEFT JOIN tD ON dpk=cx
|
||||
WHERE cpk=bx AND apk=cx
|
||||
|
||||
@@ -90,12 +90,10 @@ do_test where7-1.9 {
|
||||
}
|
||||
} {2 4 5 scan 0 sort 0}
|
||||
do_test where7-1.10 {
|
||||
breakpoint
|
||||
count_steps {
|
||||
SELECT a FROM t1 WHERE (b=3 OR c>=10 OR c=4 OR b>10)
|
||||
}
|
||||
} {2 4 5 scan 0 sort 0}
|
||||
breakpoint
|
||||
do_test where7-1.11 {
|
||||
count_steps {
|
||||
SELECT a FROM t1 WHERE (d=5 AND b=3) OR c==100 ORDER BY a;
|
||||
@@ -106,13 +104,7 @@ do_test where7-1.12 {
|
||||
SELECT a FROM t1 WHERE (b BETWEEN 2 AND 4) OR c=100 ORDER BY a
|
||||
}
|
||||
} {1 2 3 5 scan 0 sort 1}
|
||||
do_test where7-1.13.1 {
|
||||
count_steps {
|
||||
SELECT a FROM t1 WHERE (b BETWEEN 0 AND 2) OR (c BETWEEN 9 AND 999)
|
||||
ORDER BY a DESC
|
||||
}
|
||||
} {5 4 1 scan 4 sort 0}
|
||||
do_test where7-1.13.2 {
|
||||
do_test where7-1.13 {
|
||||
count_steps {
|
||||
SELECT a FROM t1 WHERE (b BETWEEN 0 AND 2) OR (c BETWEEN 9 AND 999)
|
||||
ORDER BY +a DESC
|
||||
|
||||
@@ -286,8 +286,9 @@ do_test where8-3.15 {
|
||||
SELECT c FROM t1, t2 WHERE a BETWEEN 1 AND 2 OR a = (
|
||||
SELECT sum(e IS NULL) FROM t2 AS inner WHERE t2.d>inner.d
|
||||
)
|
||||
ORDER BY c
|
||||
}
|
||||
} {I II I II I II I II I II I II III I II III I II III I II III I II III 9 0}
|
||||
} {I I I I I I I I I I II II II II II II II II II II III III III III III 9 1}
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# The following tests - where8-4.* - verify that adding or removing
|
||||
|
||||
Reference in New Issue
Block a user