aboutsummaryrefslogtreecommitdiff
path: root/src/where.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2014-03-04 04:12:56 +0000
committerdrh <drh@noemail.net>2014-03-04 04:12:56 +0000
commitd34ab07507de47f6ec6c5f8e39a68f01aff4dce8 (patch)
treefd609b74427efc26463c2f27d624cc695bb6d01a /src/where.c
parent6295524e3ddfbcb77bd7a4eed20702c5443464d3 (diff)
parentf926d1ea47939fe1c60d04bcf269b4ad6c1f50a1 (diff)
downloadsqlite-d34ab07507de47f6ec6c5f8e39a68f01aff4dce8.tar.gz
sqlite-d34ab07507de47f6ec6c5f8e39a68f01aff4dce8.zip
Refactor the sqlite3VdbeRecordCompare() routine used to compare btree records.
Create fast-track special case routines to handle the common cases more quickly. This gives a significant performance boost. FossilOrigin-Name: 3325ad5bdc2f81f63b556d6f4d0589d89b142b2b
Diffstat (limited to 'src/where.c')
-rw-r--r--src/where.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/where.c b/src/where.c
index f13d2b504..c29c94ae0 100644
--- a/src/where.c
+++ b/src/where.c
@@ -1913,7 +1913,7 @@ static void whereKeyStats(
assert( pRec->nField>0 && iCol<pIdx->nSampleCol );
do{
iTest = (iMin+i)/2;
- res = sqlite3VdbeRecordCompare(aSample[iTest].n, aSample[iTest].p, pRec);
+ res = sqlite3VdbeRecordCompare(aSample[iTest].n, aSample[iTest].p, pRec, 0);
if( res<0 ){
iMin = iTest+1;
}else{
@@ -1928,16 +1928,16 @@ static void whereKeyStats(
if( res==0 ){
/* If (res==0) is true, then sample $i must be equal to pRec */
assert( i<pIdx->nSample );
- assert( 0==sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)
+ assert( 0==sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec, 0)
|| pParse->db->mallocFailed );
}else{
/* Otherwise, pRec must be smaller than sample $i and larger than
** sample ($i-1). */
assert( i==pIdx->nSample
- || sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)>0
+ || sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec, 0)>0
|| pParse->db->mallocFailed );
assert( i==0
- || sqlite3VdbeRecordCompare(aSample[i-1].n, aSample[i-1].p, pRec)<0
+ || sqlite3VdbeRecordCompare(aSample[i-1].n, aSample[i-1].p, pRec, 0)<0
|| pParse->db->mallocFailed );
}
#endif /* ifdef SQLITE_DEBUG */