aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/analyze.c1
-rw-r--r--src/sqliteInt.h3
-rw-r--r--src/where.c2
3 files changed, 4 insertions, 2 deletions
diff --git a/src/analyze.c b/src/analyze.c
index 7d36f0131..67bba1a28 100644
--- a/src/analyze.c
+++ b/src/analyze.c
@@ -1599,6 +1599,7 @@ static void initAvgEq(Index *pIdx){
nRow = pIdx->aiRowEst[0];
nDist100 = ((i64)100 * pIdx->aiRowEst[0]) / pIdx->aiRowEst[iCol+1];
}
+ pIdx->nRowEst0 = nRow;
/* Set nSum to the number of distinct (iCol+1) field prefixes that
** occur in the stat4 table for this index. Set sumEq to the sum of
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index cba89b03e..5409f7086 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -1801,7 +1801,8 @@ struct Index {
int nSampleCol; /* Size of IndexSample.anEq[] and so on */
tRowcnt *aAvgEq; /* Average nEq values for keys not in aSample */
IndexSample *aSample; /* Samples of the left-most key */
- tRowcnt *aiRowEst; /* Non-logarithmic stat1 data for this table */
+ tRowcnt *aiRowEst; /* Non-logarithmic stat1 data for this index */
+ tRowcnt nRowEst0; /* Non-logarithmic number of rows in the index */
#endif
};
diff --git a/src/where.c b/src/where.c
index 7f51d00c8..f708d7fad 100644
--- a/src/where.c
+++ b/src/where.c
@@ -2198,7 +2198,7 @@ static int whereRangeScanEst(
/* Determine iLower and iUpper using ($P) only. */
if( nEq==0 ){
iLower = 0;
- iUpper = sqlite3LogEstToInt(p->aiRowLogEst[0]);
+ iUpper = p->nRowEst0;
}else{
/* Note: this call could be optimized away - since the same values must
** have been requested when testing key $P in whereEqualScanEst(). */