aboutsummaryrefslogtreecommitdiff
path: root/ext/misc/fileio.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/misc/fileio.c')
-rw-r--r--ext/misc/fileio.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/ext/misc/fileio.c b/ext/misc/fileio.c
index e3e22ea4b..12d20084f 100644
--- a/ext/misc/fileio.c
+++ b/ext/misc/fileio.c
@@ -835,15 +835,14 @@ static int fsdirBestIndex(
(void)tab;
pConstraint = pIdxInfo->aConstraint;
for(i=0; i<pIdxInfo->nConstraint; i++, pConstraint++){
- if( pConstraint->usable==0 ) continue;
if( pConstraint->op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue;
- if( pConstraint->iColumn==4 ) idx4 = i;
+ if( pConstraint->iColumn==4 && pConstraint->usable ) idx4 = i;
if( pConstraint->iColumn==5 ) idx5 = i;
}
- if( idx4<0 ){
+ if( idx4<0 || (idx5>=0 && pIdxInfo->aConstraint[idx5].usable==0) ){
pIdxInfo->idxNum = 0;
- pIdxInfo->estimatedCost = (double)(((sqlite3_int64)1) << 50);
+ pIdxInfo->estimatedCost = (double)(((sqlite3_int64)1) << 60);
}else{
pIdxInfo->aConstraintUsage[idx4].omit = 1;
pIdxInfo->aConstraintUsage[idx4].argvIndex = 1;