From: drh Date: Sat, 1 Apr 2017 20:14:01 +0000 (+0000) Subject: Minor performance enhancements to the OP_Affinity opcode. X-Git-Tag: version-3.19.0~105 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=662c50e067e64618019f7798df027e4f04c49a93;p=thirdparty%2Fsqlite.git Minor performance enhancements to the OP_Affinity opcode. FossilOrigin-Name: c45cd3b947c0f03a688f827fddb4629a986788f0dd98d5ef899f11e68ff1c202 --- diff --git a/manifest b/manifest index 2f2efc5396..e8f78f99ed 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\san\sunnecessary\sclearing\sof\sthe\sVdbe.iCurrentTime\svalue. -D 2017-04-01T19:45:20.706 +C Minor\sperformance\senhancements\sto\sthe\sOP_Affinity\sopcode. +D 2017-04-01T20:14:01.312 F Makefile.in 1cc758ce3374a32425e4d130c2fe7b026b20de5b8843243de75f087c0a2661fb F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc a4c0613a18663bda56d8cf76079ab6590a7c3602e54befb4bbdef76bcaa38b6a @@ -468,7 +468,7 @@ F src/update.c 456d4a4656f8a03c2abc88a51b19172197400e58 F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c F src/util.c ca8440ede81e155d15cff7c101654f60b55a9ae6 F src/vacuum.c 1fe4555cd8c9b263afb85b5b4ee3a4a4181ad569 -F src/vdbe.c f1acf5744cef62cbfd0b503d84289f840b6cdc980ac47b0d9632dfdb89cc79eb +F src/vdbe.c 73ddbad81e181cd97db84a654d9f4e0e2a1cffe5ada55d2d415730bb92ba9154 F src/vdbe.h caa5346d52bae2a3c8c1dcfa60a7a4dc878a9e3865cb8239da55808b316c8158 F src/vdbeInt.h 5db089ce18c4feff8820ec6e4cac2d2c82e03d4b1d96f10a6e43832147b8dffe F src/vdbeapi.c 5b08d82592bcff4470601fe78aaabebd50837860 @@ -1569,7 +1569,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 8698df60c23d4dcc80b58352c14ae80ec238cac496f8a87bd72a96fef61cc63f -R 07505fb3d31361478cf20d311fece580 +P fcd2acdd6075aa9a7a66ce254eba77485f7b2804127e109c0309173488cd4b87 +R b2865bd21e6736872cabd9a653d63ed6 U drh -Z 308793a249443429e619af47ce6ccfc8 +Z b3718432a24e2278ab854298acb77351 diff --git a/manifest.uuid b/manifest.uuid index a49b480463..7d8d3f0fe3 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -fcd2acdd6075aa9a7a66ce254eba77485f7b2804127e109c0309173488cd4b87 \ No newline at end of file +c45cd3b947c0f03a688f827fddb4629a986788f0dd98d5ef899f11e68ff1c202 \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index 406394c5be..feccb424ec 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -2710,18 +2710,18 @@ op_column_out: */ case OP_Affinity: { const char *zAffinity; /* The affinity to be applied */ - char cAff; /* A single character of affinity */ zAffinity = pOp->p4.z; assert( zAffinity!=0 ); + assert( pOp->p2>0 ); assert( zAffinity[pOp->p2]==0 ); pIn1 = &aMem[pOp->p1]; - while( (cAff = *(zAffinity++))!=0 ){ + do{ assert( pIn1 <= &p->aMem[(p->nMem+1 - p->nCursor)] ); assert( memIsValid(pIn1) ); - applyAffinity(pIn1, cAff, encoding); + applyAffinity(pIn1, *(zAffinity++), encoding); pIn1++; - } + }while( zAffinity[0] ); break; }