From: drh Date: Mon, 4 Apr 2016 13:46:24 +0000 (+0000) Subject: Minor performance optimization in the comparison opcodes of the VDBE. X-Git-Tag: version-3.13.0~137 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5fd0c12049e0f69581f3bb5cbc98302a8d5db4ca;p=thirdparty%2Fsqlite.git Minor performance optimization in the comparison opcodes of the VDBE. FossilOrigin-Name: e375fe52cea7903c11ecef71c3452c67a96b663e --- diff --git a/manifest b/manifest index 16451fe15f..deae1a11e9 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sharmless\scompiler\swarnings. -D 2016-04-04T12:38:05.153 +C Minor\sperformance\soptimization\sin\sthe\scomparison\sopcodes\sof\sthe\sVDBE. +D 2016-04-04T13:46:24.704 F Makefile.in e812bb732d7af01baa09f1278bd4f4a2e3a09449 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc fe57d7e3e74fa383fd01ced796c0ffd966fc094a @@ -439,7 +439,7 @@ F src/update.c 3e67ab3c0814635f355fb1f8ab010a2b9e016e7d F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c F src/util.c 8873d696c9ccc4206058c402e09e101f1b81561a F src/vacuum.c feb1eabb20987983d9350cad98299b21fa811f52 -F src/vdbe.c 0f0e4a6255f9a5272857a818314d081db26bcd90 +F src/vdbe.c 936166d3dc5aa00364877603f545707896c1519e F src/vdbe.h c16ba943d407baa1c7085eefea73a063fc631863 F src/vdbeInt.h ddb157974436d87652de7dc641f7191496d9a8cd F src/vdbeapi.c ba85b78fe08dc4a9ce747e62c89a2b4a4547e74c @@ -1480,7 +1480,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 59814f35d13db1f6379b9ae218b5432bc03c6197 -R 5dc90b5728244567537e2c75af0c4605 +P 0213d6af84965676626c2fb4d78b4c74675207cc +R 20833b687cd0398f4e539411826fc13a U drh -Z 8cacf12e28835de4a8d101570828c9f0 +Z 68baca12d82e219ae03586c49d91929a diff --git a/manifest.uuid b/manifest.uuid index 61153ada1f..b3dbcfbd15 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -0213d6af84965676626c2fb4d78b4c74675207cc \ No newline at end of file +e375fe52cea7903c11ecef71c3452c67a96b663e \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index 84a5087e01..f5b00d824a 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -2016,11 +2016,13 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ /* Neither operand is NULL. Do a comparison. */ affinity = pOp->p5 & SQLITE_AFF_MASK; if( affinity>=SQLITE_AFF_NUMERIC ){ - if( (flags1 & (MEM_Int|MEM_Real|MEM_Str))==MEM_Str ){ - applyNumericAffinity(pIn1,0); - } - if( (flags3 & (MEM_Int|MEM_Real|MEM_Str))==MEM_Str ){ - applyNumericAffinity(pIn3,0); + if( (flags1 | flags3)&MEM_Str ){ + if( (flags1 & (MEM_Int|MEM_Real|MEM_Str))==MEM_Str ){ + applyNumericAffinity(pIn1,0); + } + if( (flags3 & (MEM_Int|MEM_Real|MEM_Str))==MEM_Str ){ + applyNumericAffinity(pIn3,0); + } } }else if( affinity==SQLITE_AFF_TEXT ){ if( (flags1 & MEM_Str)==0 && (flags1 & (MEM_Int|MEM_Real))!=0 ){