From: drh Date: Fri, 20 May 2016 19:51:28 +0000 (+0000) Subject: Slight performance improvement in the OP_Column opcode. X-Git-Tag: version-3.14.0~151 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a1851efc5d4807178198ca9bbc344ae2a33ef495;p=thirdparty%2Fsqlite.git Slight performance improvement in the OP_Column opcode. FossilOrigin-Name: 5c157474391f90f24e8867c77fbc6564c7955ecc --- diff --git a/manifest b/manifest index 264470f9ab..9f9a5c97ad 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\sthe\ssqlite3PagerClearCache()\sroutine,\swhich\sdoes\snot\saccomplish\sanything\nuseful. -D 2016-05-20T18:09:01.269 +C Slight\sperformance\simprovement\sin\sthe\sOP_Column\sopcode. +D 2016-05-20T19:51:28.931 F Makefile.in f59e0763ff448719fc1bd25513882b0567286317 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc 306d73e854b1a92ea06e5d1e637faa5c44de53c7 @@ -444,7 +444,7 @@ F src/update.c 4f05ea8cddfa367d045e03589756c02199e8f9bd F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c F src/util.c 810ec3f22e2d1b62e66c30fe3621ebdedd23584d F src/vacuum.c feb1eabb20987983d9350cad98299b21fa811f52 -F src/vdbe.c d71b935d2b21bef874680c34329adedc3b021101 +F src/vdbe.c 9d0872c73555b335d7e658bb9b6fd69798ba551c F src/vdbe.h 5591b5add447096e31288b5a0a78ec5d7b5c5170 F src/vdbeInt.h ddb157974436d87652de7dc641f7191496d9a8cd F src/vdbeapi.c ba85b78fe08dc4a9ce747e62c89a2b4a4547e74c @@ -1490,7 +1490,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 4dc56e8684e0c74fb311c7f0ef1c367da8c7bf70 -R f1ca77b965b4fac61acdc31594820a52 +P f250166bb3c1b0c58e703b334825cf6210758fda +R 67f498d524675be2828322b33e8cc61d U drh -Z c5c16d4ca102bc8075809f03a41e82f3 +Z 6bf519f6e91709086e486df141738a73 diff --git a/manifest.uuid b/manifest.uuid index e1934ce2a2..5befa41016 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f250166bb3c1b0c58e703b334825cf6210758fda \ No newline at end of file +5c157474391f90f24e8867c77fbc6564c7955ecc \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index 6d96f85548..9f36a3feb2 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -2575,9 +2575,10 @@ case OP_Column: { assert( p2nHdrParsed ); assert( rc==SQLITE_OK ); assert( sqlite3VdbeCheckMemInvariants(pDest) ); - if( VdbeMemDynamic(pDest) ) sqlite3VdbeMemSetNull(pDest); + if( VdbeMemDynamic(pDest) ){ + sqlite3VdbeMemSetNull(pDest); + } assert( t==pC->aType[p2] ); - pDest->enc = encoding; if( pC->szRow>=aOffset[p2+1] ){ /* This is the common case where the desired content fits on the original ** page - where the content is not on an overflow page */ @@ -2591,6 +2592,7 @@ case OP_Column: { */ static const u16 aFlag[] = { MEM_Blob, MEM_Str|MEM_Term }; pDest->n = len = (t-12)/2; + pDest->enc = encoding; if( pDest->szMalloc < len+2 ){ pDest->flags = MEM_Null; if( sqlite3VdbeMemGrow(pDest, len+2, 0) ) goto no_mem; @@ -2603,6 +2605,7 @@ case OP_Column: { pDest->flags = aFlag[t&1]; } }else{ + pDest->enc = encoding; /* This branch happens only when content is on overflow pages */ if( ((pOp->p5 & (OPFLAG_LENGTHARG|OPFLAG_TYPEOFARG))!=0 && ((t>=12 && (t&1)==0) || (pOp->p5 & OPFLAG_TYPEOFARG)!=0))