From 46f0f4e56d8d818f417fa8f14ab4837133003b5d Mon Sep 17 00:00:00 2001 From: drh Date: Tue, 29 Sep 2020 15:32:54 +0000 Subject: [PATCH] Typo fix to repair the early-out optimization. Also avoid unnecessary OP_SeekHit opcodes. FossilOrigin-Name: 8fd7d8dfcd515aa6b65d6eb27b033d3b3a31db467b9100cc13c62bc60113019e --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/wherecode.c | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index 52cf306121..7c1a305702 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C The\sOP_SeekScan\sopcode\sworks,\sbut\susing\sit\srequires\sdisabling\sthe\nIN-earlyout\soptimization\sbecause\sthe\sOP_IfNoHope\sopcode\smight\smove\sthe\ncursor. -D 2020-09-29T01:48:46.942 +C Typo\sfix\sto\srepair\sthe\searly-out\soptimization.\s\sAlso\savoid\sunnecessary\nOP_SeekHit\sopcodes. +D 2020-09-29T15:32:54.786 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -624,7 +624,7 @@ F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a F src/walker.c 3df26a33dc4f54e8771600fb7fdebe1ece0896c2ad68c30ab40b017aa4395049 F src/where.c da9c0d503f81cc8444eb3525b75eec2bb3d198f4d5939b207977f2fc20d85b54 F src/whereInt.h 59077fbd0b3d01bc8715e746c86a99ebf4c85bde8a57077ec04d2a23e59666ec -F src/wherecode.c 9c2301ecfd8c347969207c1042181ac39573964167ada5bc0025b9a8447d5f8f +F src/wherecode.c 89d14a834b48b9ead4415024a79a4895a3d4363b37e377a487479e9ed59118db F src/whereexpr.c 2a05552e808047a93845278c98c6ca64a265fa8e9ffd087c161bb11bfe339866 F src/window.c edd6f5e25a1e8f2b6f5305b7f5f7da7bb35f07f0d432b255b1d4c2fcab4205aa F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 @@ -1880,7 +1880,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 d720b6981eeb0ffdb14494ca63eca298ee724ae4ad4863c7c7cbfdad7fa52519 -R 93eab6914a9c3b5b8c8ceb0a0d7c7688 +P f3c36b840c9a29c0add28039db216f4207a308e5057fc76e3f0004024a8267ac +R b45e4e5d13e7104361979e961b4ebdf2 U drh -Z 1fb2faea0368362fc6f0f58448eca8a2 +Z 6ed8ad20e25361c120133ce9ede87a2a diff --git a/manifest.uuid b/manifest.uuid index af2ea4ee4c..9fab159b67 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f3c36b840c9a29c0add28039db216f4207a308e5057fc76e3f0004024a8267ac \ No newline at end of file +8fd7d8dfcd515aa6b65d6eb27b033d3b3a31db467b9100cc13c62bc60113019e \ No newline at end of file diff --git a/src/wherecode.c b/src/wherecode.c index adf03e6c38..4e10c79d8d 100644 --- a/src/wherecode.c +++ b/src/wherecode.c @@ -570,7 +570,7 @@ static int codeEqualityTerm( if( pLevel->u.in.nIn==0 ){ pLevel->addrNxt = sqlite3VdbeMakeLabel(pParse); } - if( iEq>0 && (pLoop->wsFlags && WHERE_IN_SEEKSCAN)==0 ){ + if( iEq>0 && (pLoop->wsFlags & WHERE_IN_SEEKSCAN)==0 ){ pLoop->wsFlags |= WHERE_IN_EARLYOUT; } @@ -608,7 +608,7 @@ static int codeEqualityTerm( pIn++; } } - if( iEq>0 ){ + if( iEq>0 && (pLoop->wsFlags & WHERE_IN_SEEKSCAN)==0 ){ sqlite3VdbeAddOp3(v, OP_SeekHit, pLevel->iIdxCur, 0, iEq); } }else{ -- 2.47.2