diff options
author | drh <> | 2022-06-01 13:32:47 +0000 |
---|---|---|
committer | drh <> | 2022-06-01 13:32:47 +0000 |
commit | 0f4b534b60cdae964ac91540487d09e5cba15f60 (patch) | |
tree | cb4b8ee727fa81d0a6cce17d3fb9b9641b2d0c09 /src/wherecode.c | |
parent | 1324b2830e28a209d682a578c1d0b9c65820b9a4 (diff) | |
download | sqlite-0f4b534b60cdae964ac91540487d09e5cba15f60.tar.gz sqlite-0f4b534b60cdae964ac91540487d09e5cba15f60.zip |
Candidate fix for the problem with row-value WHERE clause constraints on
a RIGHT JOIN.
FossilOrigin-Name: fdd782a7bb217e2aceda97a588c0d7874ee19885abfcf0658472d6c3387da6ee
Diffstat (limited to 'src/wherecode.c')
-rw-r--r-- | src/wherecode.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/wherecode.c b/src/wherecode.c index 66099fb0b..04f1c374d 100644 --- a/src/wherecode.c +++ b/src/wherecode.c @@ -2862,7 +2862,11 @@ SQLITE_NOINLINE void sqlite3WhereRightJoinLoop( mAll |= pLoop->maskSelf; for(k=0; k<pWC->nTerm; k++){ WhereTerm *pTerm = &pWC->a[k]; - if( pTerm->wtFlags & TERM_VIRTUAL ) break; + if( (pTerm->wtFlags & (TERM_VIRTUAL|TERM_SLICE))!=0 + && pTerm->eOperator!=WO_ROWVAL + ){ + break; + } if( pTerm->prereqAll & ~mAll ) continue; if( ExprHasProperty(pTerm->pExpr, EP_OuterON|EP_InnerON) ) continue; pSubWhere = sqlite3ExprAnd(pParse, pSubWhere, |