]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Small performance increase and size reduction in the OP_Column opcode.
authordrh <drh@noemail.net>
Fri, 25 Nov 2016 17:03:03 +0000 (17:03 +0000)
committerdrh <drh@noemail.net>
Fri, 25 Nov 2016 17:03:03 +0000 (17:03 +0000)
FossilOrigin-Name: a9498407e646305e7b60115d63e85c642bbd1c3f

manifest
manifest.uuid
src/vdbe.c

index 42d8f60af9b54f7875b94ff090d12e3cf911af87..9e99dd58e1766747be0c2cd6859c6db5394195f5 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Performance\senhancement\sto\ssqlite3_snprintf().
-D 2016-11-25T15:47:53.375
+C Small\sperformance\sincrease\sand\ssize\sreduction\sin\sthe\sOP_Column\sopcode.
+D 2016-11-25T17:03:03.293
 F Makefile.in 6b572807415d3f0a379cebc9461416d8df4a12c8
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc bb4d970894abbbe0e88d00aac29bd52af8bc95f4
@@ -454,7 +454,7 @@ F src/update.c 68714ed42a506d782a3d75ff8f09640706d6a3b2
 F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c
 F src/util.c 3e2da6101888d073e79ecc6af5e0a2f70fa1e498
 F src/vacuum.c 33c174b28886b2faf26e503b5a49a1c01a9b1c16
-F src/vdbe.c e76ee960a2e6d099838173599ae2d0999dc3aa63
+F src/vdbe.c 54a1d3e143a87ebcd355c956999b667dcfb64824
 F src/vdbe.h c044be7050ac6bf596eecc6ab159f5dbc020a3b7
 F src/vdbeInt.h 29b25318a0286c4b2599c0fbef6acf524398489a
 F src/vdbeapi.c 97129bec6b1553da50d8e73f523c278bda66d9f6
@@ -1534,7 +1534,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P b6acf5d4ef016326a079463e70e71c2fc95a352d
-R 66214ce5c9237cac8843327752704c96
+P c53dca7fadd81ea340fef776373cbb122c9ccd46
+R 5cc42cc506bbe372234cb9f20b970e00
 U drh
-Z 00ed6ef21d5c142098e92d37ff95081c
+Z dac9238c0e962ec79642eb1c1f1654f2
index a717baef40103d8f4535c715c1d8e789808774b9..3a997e9a3cc7ba32f05279c398944a8b33d3262e 100644 (file)
@@ -1 +1 @@
-c53dca7fadd81ea340fef776373cbb122c9ccd46
\ No newline at end of file
+a9498407e646305e7b60115d63e85c642bbd1c3f
\ No newline at end of file
index 9cf62f33bf5ac3714957106ee6e609f661868d67..9f57b474803ea43f9727bac51b9374a751b0f1ba 100644 (file)
@@ -2470,7 +2470,6 @@ case OP_Column: {
   assert( pC->eCurType!=CURTYPE_VTAB );
   assert( pC->eCurType!=CURTYPE_PSEUDO || pC->nullRow );
   assert( pC->eCurType!=CURTYPE_SORTER );
-  pCrsr = pC->uc.pCursor;
 
   if( pC->cacheStatus!=p->cacheCtr ){                /*OPTIMIZATION-IF-FALSE*/
     if( pC->nullRow ){
@@ -2486,6 +2485,7 @@ case OP_Column: {
         goto op_column_out;
       }
     }else{
+      pCrsr = pC->uc.pCursor;
       assert( pC->eCurType==CURTYPE_BTREE );
       assert( pCrsr );
       assert( sqlite3BtreeCursorIsValid(pCrsr) );
@@ -2549,7 +2549,8 @@ case OP_Column: {
       /* Make sure zData points to enough of the record to cover the header. */
       if( pC->aRow==0 ){
         memset(&sMem, 0, sizeof(sMem));
-        rc = sqlite3VdbeMemFromBtree(pCrsr, 0, aOffset[0], !pC->isTable, &sMem);
+        rc = sqlite3VdbeMemFromBtree(pC->uc.pCursor, 0, aOffset[0],
+                                     !pC->isTable, &sMem);
         if( rc!=SQLITE_OK ) goto abort_due_to_error;
         zData = (u8*)sMem.z;
       }else{
@@ -2662,8 +2663,8 @@ case OP_Column: {
       static u8 aZero[8];  /* This is the bogus content */
       sqlite3VdbeSerialGet(aZero, t, pDest);
     }else{
-      rc = sqlite3VdbeMemFromBtree(pCrsr, aOffset[p2], len, !pC->isTable,
-                                   pDest);
+      rc = sqlite3VdbeMemFromBtree(pC->uc.pCursor, aOffset[p2], len,
+                                   !pC->isTable, pDest);
       if( rc!=SQLITE_OK ) goto abort_due_to_error;
       sqlite3VdbeSerialGet((const u8*)pDest->z, t, pDest);
       pDest->flags &= ~MEM_Ephem;