aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2014-12-04 20:24:50 +0000
committerdrh <drh@noemail.net>2014-12-04 20:24:50 +0000
commit1d324880370ae70e7c9af187f59c3f3c351b0ef4 (patch)
tree27e33ffdb22df830114f360821385c34bf3c6e6c /src
parent72673a24e2d38c1699d911cfca0203f5e545f78c (diff)
downloadsqlite-1d324880370ae70e7c9af187f59c3f3c351b0ef4.tar.gz
sqlite-1d324880370ae70e7c9af187f59c3f3c351b0ef4.zip
Performance enhancement for single-table queries with many OR-connected
WHERE clause terms and multiple indexes with the same left-most columns. FossilOrigin-Name: 1461d543ac8a3e4a54405067893146c74576bb4e
Diffstat (limited to 'src')
-rw-r--r--src/where.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/where.c b/src/where.c
index 277c8833e..bda2a801e 100644
--- a/src/where.c
+++ b/src/where.c
@@ -3591,10 +3591,9 @@ static Bitmask codeOneLoopStart(
Expr *pExpr = pWC->a[iTerm].pExpr;
if( &pWC->a[iTerm] == pTerm ) continue;
if( ExprHasProperty(pExpr, EP_FromJoin) ) continue;
- testcase( pWC->a[iTerm].wtFlags & TERM_ORINFO );
- testcase( pWC->a[iTerm].wtFlags & TERM_VIRTUAL );
- if( pWC->a[iTerm].wtFlags & (TERM_ORINFO|TERM_VIRTUAL) ) continue;
+ if( (pWC->a[iTerm].wtFlags & TERM_VIRTUAL)!=0 ) continue;
if( (pWC->a[iTerm].eOperator & WO_ALL)==0 ) continue;
+ testcase( pWC->a[iTerm].wtFlags & TERM_ORINFO );
pExpr = sqlite3ExprDup(db, pExpr, 0);
pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr);
}