Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Simplifications to the range-scan logic in support of structural testing. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
bbbee81075d923be7ca11e6e635c069a |
User & Date: | drh 2009-08-20 20:05:55.000 |
Context
2009-08-20
| ||
23:05 | Remove a redundant OOM test from the sqlite_stat2 analysis loader. (check-in: d30ceeb8b3 user: drh tags: trunk) | |
20:05 | Simplifications to the range-scan logic in support of structural testing. (check-in: bbbee81075 user: drh tags: trunk) | |
18:14 | Continuing refinements of the range-scan optimizations in where.c. The range scores are changed from an integer 1..9 to 0..100. (check-in: f0c24b5fb8 user: drh tags: trunk) | |
Changes
Changes to src/mem5.c.
︙ | ︙ | |||
491 492 493 494 495 496 497 | memsys5Link(iOffset, ii); iOffset += nAlloc; } assert((iOffset+nAlloc)>mem5.nBlock); } /* If a mutex is required for normal operation, allocate one */ | | | 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 | memsys5Link(iOffset, ii); iOffset += nAlloc; } assert((iOffset+nAlloc)>mem5.nBlock); } /* If a mutex is required for normal operation, allocate one */ if( sqlite3GlobalConfig.bMemstat==0 ){ mem5.mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MEM); } return SQLITE_OK; } /* |
︙ | ︙ |
Changes to src/where.c.
︙ | ︙ | |||
1908 1909 1910 1911 1912 1913 1914 | #ifdef SQLITE_ENABLE_STAT2 static int whereRangeRegion( Parse *pParse, /* Database connection */ Index *pIdx, /* Index to consider domain of */ sqlite3_value *pVal, /* Value to consider */ int *piRegion /* OUT: Region of domain in which value lies */ ){ | | | 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 | #ifdef SQLITE_ENABLE_STAT2 static int whereRangeRegion( Parse *pParse, /* Database connection */ Index *pIdx, /* Index to consider domain of */ sqlite3_value *pVal, /* Value to consider */ int *piRegion /* OUT: Region of domain in which value lies */ ){ if( ALWAYS(pVal) ){ IndexSample *aSample = pIdx->aSample; int i = 0; int eType = sqlite3_value_type(pVal); if( eType==SQLITE_INTEGER || eType==SQLITE_FLOAT ){ double r = sqlite3_value_double(pVal); for(i=0; i<SQLITE_INDEX_SAMPLES; i++){ |
︙ | ︙ |