]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Optimize the skipping of the payload size field when doing a binary search
authordrh <drh@noemail.net>
Mon, 25 Nov 2013 16:52:59 +0000 (16:52 +0000)
committerdrh <drh@noemail.net>
Mon, 25 Nov 2013 16:52:59 +0000 (16:52 +0000)
for a rowid.

FossilOrigin-Name: 55e5bfa231dd52a7cf9ec982967da4963867b9e5

manifest
manifest.uuid
src/btree.c

index c59e49eba0f55de1be8616e4b1fcd9bf5f25e700..c632c86ab18652174d00b08bcaba4e1f429a9a2e 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Arrange\sfor\ssqlite3BtreeMovetoUnpacked()\sto\salways\sleave\sthe\scursor\scell\nparse\scache\sinvalidated.\s\sThis\sfixes\sissues\swith\sprevious\scheck-ins\son\sthis\nbranch\sand\salso\sruns\sfaster.
-D 2013-11-25T16:23:52.282
+C Optimize\sthe\sskipping\sof\sthe\spayload\ssize\sfield\swhen\sdoing\sa\sbinary\ssearch\nfor\sa\srowid.
+D 2013-11-25T16:52:59.279
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in e1a9b4258bbde53f5636f4e238c65b7e11459e2b
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -166,7 +166,7 @@ F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
 F src/backup.c 1809a7caa2504233bdddd12f5018422421789537
 F src/bitvec.c 19a4ba637bd85f8f63fc8c9bae5ade9fb05ec1cb
 F src/btmutex.c 976f45a12e37293e32cae0281b15a21d48a8aaa7
-F src/btree.c 0ce10b29df09e9277448157fafb2a254468f9782
+F src/btree.c fc03d3fd338fa66f27160155068a7be3d96c7f8d
 F src/btree.h a61ddebc78c66795a2b93181321a116746302cc9
 F src/btreeInt.h f038e818bfadf75afbd09819ed93c26a333d39e0
 F src/build.c 07054d45319953e54a89d726e589a423e9c1c590
@@ -1142,7 +1142,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
-P f80497be446f84d2000e454e32d717887a7d0cee
-R 2fbc978380b3acf1d85deca4d19cdeda
+P a74675607fe041e37a58a3ec287131de0e5090c3
+R d1af21a766586cae5be9dafc0442ac2b
 U drh
-Z f2ec119e1c1685944c58208d97a35f8b
+Z a809a2735916d723ee7af54e8adbc7b8
index 64946ffe1a18be586fdb0ffff52857336a233a0e..6f9576364b1af4c8389875f02ff5c5bd0e0196de 100644 (file)
@@ -1 +1 @@
-a74675607fe041e37a58a3ec287131de0e5090c3
\ No newline at end of file
+55e5bfa231dd52a7cf9ec982967da4963867b9e5
\ No newline at end of file
index 414933f9dfaabaed05d004874917d2536c1f03ff..6d8934d60892e618b9af20b5b9e908b3bd178375 100644 (file)
@@ -4664,14 +4664,12 @@ int sqlite3BtreeMovetoUnpacked(
     upr = pPage->nCell-1;
     idx = biasRight ? upr : upr/2;
     pCur->aiIdx[pCur->iPage] = (u16)idx;
-//    pCur->info.nSize = 0;
     if( pPage->intKey ){
       for(;;){
         i64 nCellKey;
         pCell = findCell(pPage, idx) + pPage->childPtrSize;
         if( pPage->hasData ){
-          u32 dummy;
-          pCell += getVarint32(pCell, dummy);
+          while( 0x80 <= *(pCell++) && pCell<pPage->aDataEnd ){}
         }
         getVarint(pCell, (u64*)&nCellKey);
         if( nCellKey<intKey ){