From: drh Date: Fri, 20 May 2016 21:40:11 +0000 (+0000) Subject: Another optimization on the OP_Column opcode. X-Git-Tag: version-3.14.0~149 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=170c27662386424490d8a73130b8c71c86a10a32;p=thirdparty%2Fsqlite.git Another optimization on the OP_Column opcode. FossilOrigin-Name: 1765672c2599eb03d39c52cd2dc32ea1e5ee069e --- diff --git a/manifest b/manifest index 59b91454b0..1cd3edacb4 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\stypo\sin\scomment. -D 2016-05-20T20:58:30.520 +C Another\soptimization\son\sthe\sOP_Column\sopcode. +D 2016-05-20T21:40:11.890 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 9d0872c73555b335d7e658bb9b6fd69798ba551c +F src/vdbe.c 975ac1d3d326bcb36b4e99255daeaf81ff6659d1 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 5c157474391f90f24e8867c77fbc6564c7955ecc -R 24d15d6cfb006c0761a9dcc11f99e304 -U mistachkin -Z 03dddc8d9c707d4b35ca07d5a2fcd8f4 +P 9db8f2147339ba519c4ec32e34068e9f4a25e099 +R b59019073443c960ff19359461f0425d +U drh +Z be39c49e0fa0986f111ad70cd504ec49 diff --git a/manifest.uuid b/manifest.uuid index 7ce09e7144..f85b5caaae 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -9db8f2147339ba519c4ec32e34068e9f4a25e099 \ No newline at end of file +1765672c2599eb03d39c52cd2dc32ea1e5ee069e \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index 9f36a3feb2..36c014a7d0 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -2531,9 +2531,7 @@ case OP_Column: { pC->aType[i++] = t; aOffset[i] = (u32)(offset64 & 0xffffffff); }while( i<=p2 && zHdrnHdrParsed = i; - pC->iHdrOffset = (u32)(zHdr - zData); - + /* The record is corrupt if any of the following are true: ** (1) the bytes of the header extend past the declared header size ** (2) the entire header was used but not all data was used @@ -2546,8 +2544,10 @@ case OP_Column: { rc = SQLITE_CORRUPT_BKPT; goto abort_due_to_error; } - if( pC->aRow==0 ) sqlite3VdbeMemRelease(&sMem); + pC->nHdrParsed = i; + pC->iHdrOffset = (u32)(zHdr - zData); + if( pC->aRow==0 ) sqlite3VdbeMemRelease(&sMem); }else{ t = 0; }