aboutsummaryrefslogtreecommitdiff
path: root/src/wherecode.c
diff options
context:
space:
mode:
authordrh <>2022-04-29 19:00:11 +0000
committerdrh <>2022-04-29 19:00:11 +0000
commit3d5665366fd03752aa61ca365774239dff67512b (patch)
treeba3f39a8affd18fcb012eb9db003e1eab35f9579 /src/wherecode.c
parent8e8e9de87e93f258a001dc9c8fdcef843b46aec1 (diff)
downloadsqlite-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.c2
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);