aboutsummaryrefslogtreecommitdiff
path: root/src/whereexpr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/whereexpr.c')
-rw-r--r--src/whereexpr.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/whereexpr.c b/src/whereexpr.c
index 88eb5b70a..631a7e0dc 100644
--- a/src/whereexpr.c
+++ b/src/whereexpr.c
@@ -872,6 +872,12 @@ static void exprAnalyze(
pTerm->leftCursor = pLeft->iTable;
pTerm->u.leftColumn = pLeft->iColumn;
pTerm->eOperator = operatorMask(op) & opMask;
+ }else if( prereqLeft!=0 && (prereqLeft&(prereqLeft-1))==0 ){
+ int i;
+ for(i=0; (prereqLeft>>i)<1; i++){}
+ pTerm->leftCursor = pMaskSet->ix[i];
+ pTerm->u.leftColumn = -2;
+ pTerm->eOperator = operatorMask(op) & opMask;
}
if( op==TK_IS ) pTerm->wtFlags |= TERM_IS;
if( pRight && pRight->op==TK_COLUMN ){