1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-16 23:02:26 +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

@@ -6191,8 +6191,9 @@ void sqlite3WhereEnd(WhereInfo *pWInfo){
sFrom.nAlloc = 1;
memcpy(&sFrom.a[0], pTabItem, sizeof(SrcItem));
sFrom.a[0].fg.jointype = 0;
ExplainQueryPlan((pParse, 1, "RIGHT-JOIN %s", pTab->zName));
pSubWInfo = sqlite3WhereBegin(pParse, &sFrom, pSubWhere, 0, 0, 0,
WHERE_OR_SUBCLAUSE, 0);
WHERE_RIGHT_JOIN, 0);
if( pSubWInfo ){
int iCur = pLevel->iTabCur;
int r = ++pParse->nMem;
@@ -6219,6 +6220,7 @@ void sqlite3WhereEnd(WhereInfo *pWInfo){
sqlite3WhereEnd(pSubWInfo);
}
sqlite3ExprDelete(pParse->db, pSubWhere);
ExplainQueryPlanPop(pParse);
continue;
}