diff options
author | drh <> | 2022-04-29 19:00:11 +0000 |
---|---|---|
committer | drh <> | 2022-04-29 19:00:11 +0000 |
commit | 3d5665366fd03752aa61ca365774239dff67512b (patch) | |
tree | ba3f39a8affd18fcb012eb9db003e1eab35f9579 /src/wherecode.c | |
parent | 8e8e9de87e93f258a001dc9c8fdcef843b46aec1 (diff) | |
download | sqlite-3d5665366fd03752aa61ca365774239dff67512b.tar.gz sqlite-3d5665366fd03752aa61ca365774239dff67512b.zip |
Enhance the codeEqualityTerm() routine inside the code generator so that it is
able to reuse an IN operator that has an invariant subquery on its right-hand
side while coding the non-matched loop of a RIGHT JOIN.
dbsqlfuzz 19f1102a70cf966ab249de56d944fc20dbebcfcf
FossilOrigin-Name: 56dd3065469e49320b13af039471b3f0b85e6f7368cfd97b1cdc0cf8fa8e1956
Diffstat (limited to 'src/wherecode.c')
-rw-r--r-- | src/wherecode.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/wherecode.c b/src/wherecode.c index 3ea6c5d8e..2cd61a35b 100644 --- a/src/wherecode.c +++ b/src/wherecode.c @@ -610,7 +610,7 @@ static int codeEqualityTerm( iTab = 0; if( !ExprUseXSelect(pX) || pX->x.pSelect->pEList->nExpr==1 ){ eType = sqlite3FindInIndex(pParse, pX, IN_INDEX_LOOP, 0, 0, &iTab); - }else{ + }else if( pTerm->pExpr->iTable==0 ){ sqlite3 *db = pParse->db; pX = removeUnindexableInClauseTerms(pParse, iEq, pLoop, pX); |