diff options
author | drh <drh@noemail.net> | 2014-12-04 20:24:50 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2014-12-04 20:24:50 +0000 |
commit | 1d324880370ae70e7c9af187f59c3f3c351b0ef4 (patch) | |
tree | 27e33ffdb22df830114f360821385c34bf3c6e6c /src | |
parent | 72673a24e2d38c1699d911cfca0203f5e545f78c (diff) | |
download | sqlite-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.c | 5 |
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); } |