1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Show LEFT and RIGHT JOIN processing in the EXPLAIN QUERY PLAN output.

FossilOrigin-Name: d91faeffea5cf0585fb71e5311fdcc6b8be85c7e9c732050b4448e617c970101
This commit is contained in:
drh
2022-04-11 14:26:37 +00:00
parent 37259f4e6b
commit c583719b65
12 changed files with 45 additions and 40 deletions

View File

@ -283,7 +283,7 @@ do_eqp_test autoindex1-600a {
| `--CORRELATED SCALAR SUBQUERY xxxxxx
| `--SEARCH later USING COVERING INDEX sqlite_autoindex_flock_owner_1 (flock_no=? AND owner_change_date>? AND owner_change_date<?)
|--SCAN x USING INDEX sheep_reg_flock_index
`--SEARCH y USING AUTOMATIC COVERING INDEX (sheep_no=?)
`--SEARCH y USING AUTOMATIC COVERING INDEX (sheep_no=?) LEFT-JOIN
}

View File

@ -100,7 +100,7 @@ do_eqp_test 4.2 {
|--MATERIALIZE rr
| `--SCAN ft4 VIRTUAL TABLE INDEX 3:
|--SCAN t4
`--SEARCH rr USING AUTOMATIC COVERING INDEX (docid=?)
`--SEARCH rr USING AUTOMATIC COVERING INDEX (docid=?) LEFT-JOIN
}
finish_test

View File

@ -320,7 +320,7 @@ do_eqp_test index6-8.1 {
} {
QUERY PLAN
|--SCAN t8a
`--SEARCH t8b USING INDEX i8c (y=?)
`--SEARCH t8b USING INDEX i8c (y=?) LEFT-JOIN
}
do_execsql_test index6-8.2 {

View File

@ -114,7 +114,7 @@ do_eqp_test 3.1 {
} {
QUERY PLAN
|--SCAN t1
`--SEARCH t2 USING INTEGER PRIMARY KEY (rowid=?)
`--SEARCH t2 USING INTEGER PRIMARY KEY (rowid=?) LEFT-JOIN
}
do_eqp_test 3.2 {
@ -122,7 +122,7 @@ do_eqp_test 3.2 {
} {
QUERY PLAN
|--SCAN t1
`--SEARCH t2 USING INTEGER PRIMARY KEY (rowid=?)
`--SEARCH t2 USING INTEGER PRIMARY KEY (rowid=?) LEFT-JOIN
}
#-------------------------------------------------------------------------
@ -162,15 +162,15 @@ do_eqp_test 4.1.5 {
} {
QUERY PLAN
|--SCAN c1
|--SEARCH c2 USING INTEGER PRIMARY KEY (rowid=?)
`--SEARCH c3 USING INTEGER PRIMARY KEY (rowid=?)
|--SEARCH c2 USING INTEGER PRIMARY KEY (rowid=?) LEFT-JOIN
`--SEARCH c3 USING INTEGER PRIMARY KEY (rowid=?) LEFT-JOIN
}
do_eqp_test 4.1.6 {
SELECT v1, v3 FROM c1 LEFT JOIN c2 ON (c2.k=v1) LEFT JOIN c3 ON (c3.k=v1+1);
} {
QUERY PLAN
|--SCAN c1
`--SEARCH c3 USING INTEGER PRIMARY KEY (rowid=?)
`--SEARCH c3 USING INTEGER PRIMARY KEY (rowid=?) LEFT-JOIN
}
do_execsql_test 4.2.0 {
@ -209,15 +209,15 @@ do_eqp_test 4.2.5 {
} {
QUERY PLAN
|--SCAN c1
|--SEARCH c2 USING INDEX sqlite_autoindex_c2_1 (k=?)
`--SEARCH c3 USING INDEX sqlite_autoindex_c3_1 (k=?)
|--SEARCH c2 USING INDEX sqlite_autoindex_c2_1 (k=?) LEFT-JOIN
`--SEARCH c3 USING INDEX sqlite_autoindex_c3_1 (k=?) LEFT-JOIN
}
do_eqp_test 4.2.6 {
SELECT v1, v3 FROM c1 LEFT JOIN c2 ON (c2.k=v1) LEFT JOIN c3 ON (c3.k=v1+1);
} {
QUERY PLAN
|--SCAN c1
`--SEARCH c3 USING INDEX sqlite_autoindex_c3_1 (k=?)
`--SEARCH c3 USING INDEX sqlite_autoindex_c3_1 (k=?) LEFT-JOIN
}
# 2017-11-23 (Thanksgiving day)

View File

@ -280,9 +280,9 @@ do_eqp_test 7.2 {
|--SCAN t1
`--MULTI-INDEX OR
|--INDEX 1
| `--SEARCH t2 USING INDEX t2xy (x=? AND y=?)
| `--SEARCH t2 USING INDEX t2xy (x=? AND y=?) LEFT-JOIN
`--INDEX 2
`--SEARCH t2 USING INDEX t2xy (x=? AND y=?)
`--SEARCH t2 USING INDEX t2xy (x=? AND y=?) LEFT-JOIN
}
do_execsql_test 7.3 {
@ -303,7 +303,7 @@ do_eqp_test 7.4 {
} {
QUERY PLAN
|--SCAN t3
`--SEARCH t4 USING INDEX t4xz (x=?)
`--SEARCH t4 USING INDEX t4xz (x=?) LEFT-JOIN
}
do_eqp_test 7.4b {
SELECT * FROM t3 CROSS JOIN t4 ON (t4.x = t3.x) WHERE (+t4.y = ? OR t4.z = ?);

View File

@ -378,9 +378,9 @@ ifcapable explain {
|--SEARCH t1 USING INTEGER PRIMARY KEY (rowid=?)
`--MULTI-INDEX OR
|--INDEX 1
| `--SEARCH t2 USING INDEX t2d (d=?)
| `--SEARCH t2 USING INDEX t2d (d=?) LEFT-JOIN
`--INDEX 2
`--SEARCH t2 USING COVERING INDEX t2f (f=?)
`--SEARCH t2 USING COVERING INDEX t2f (f=?) LEFT-JOIN
}]
}