aboutsummaryrefslogtreecommitdiff
path: root/src/wherecode.c
diff options
context:
space:
mode:
authordrh <>2022-06-01 13:32:47 +0000
committerdrh <>2022-06-01 13:32:47 +0000
commit0f4b534b60cdae964ac91540487d09e5cba15f60 (patch)
treecb4b8ee727fa81d0a6cce17d3fb9b9641b2d0c09 /src/wherecode.c
parent1324b2830e28a209d682a578c1d0b9c65820b9a4 (diff)
downloadsqlite-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.c6
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,