From: drh Date: Sat, 30 Mar 2019 20:10:11 +0000 (+0000) Subject: Enhanced VdbeCoverage() macros in the new windows function code. X-Git-Tag: version-3.28.0~68^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bf00f6d7ece6a1e207e096a9a94e039594fb6d77;p=thirdparty%2Fsqlite.git Enhanced VdbeCoverage() macros in the new windows function code. FossilOrigin-Name: f24066f8dd847dfb656f26c4a8142e7fb6a412ffe325aea6254cb122cfbb3e1c --- diff --git a/manifest b/manifest index af09604a7f..bdbe7e2b0b 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\sa\scall\sto\ssqlite3FaultSim(410)\sinside\sof\sbtreeRestoreCursorPosition()\nto\ssimplify\stesting\sof\serror\sscenarios. -D 2019-03-30T19:17:35.813 +C Enhanced\sVdbeCoverage()\smacros\sin\sthe\snew\swindows\sfunction\scode. +D 2019-03-30T20:10:11.121 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -606,7 +606,7 @@ F src/where.c ff2955dc2743c1af05ba5a8232ab72724d9a63b76dbee256368f40fd3ef82db5 F src/whereInt.h 5f14db426ca46a83eabab1ae9aa6d4b8f27504ad35b64c290916289b1ddb2e88 F src/wherecode.c 6fa4056c5ce019e4a8af33795906340176813cb3c1236f4b7b08df76a1b6287b F src/whereexpr.c 90859652920f153d2c03f075488744be2926625ebd36911bcbcb17d0d29c891c -F src/window.c 92b6d593a63f27b29360176f71eb5839562bdb7dae6effd35f4c69168ea5455d +F src/window.c 30cbf5f442ba11a1c29a05cdb7fc5db26901e1075e0650527260e26d88412901 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d @@ -1814,7 +1814,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 fb125bd338ab32b33d02fe61b76497b6d4a2a160056d6e759e15c94903e61a41 -R 8f4f4aa5fa1e18b205524f2c4d480b03 +P bb643bac535ac7d5fb4c13edb8782cd13540bbc7d2b2deb689f4ca8d1914f422 +R 9e4c80ec59478a269589d64eb7ba0615 U drh -Z dc00a457f1974bbe0545af29b34f5385 +Z 48b50a4c01cf5b44d27c1751ac5b4b26 diff --git a/manifest.uuid b/manifest.uuid index 0a002943b1..aa85b14749 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -bb643bac535ac7d5fb4c13edb8782cd13540bbc7d2b2deb689f4ca8d1914f422 \ No newline at end of file +f24066f8dd847dfb656f26c4a8142e7fb6a412ffe325aea6254cb122cfbb3e1c \ No newline at end of file diff --git a/src/window.c b/src/window.c index 000a179c83..5613103cad 100644 --- a/src/window.c +++ b/src/window.c @@ -1835,7 +1835,10 @@ static void windowCodeRangeTest( sqlite3VdbeJumpHere(v, addrGe); sqlite3VdbeAddOp3(v, op, reg2, lbl, reg1); sqlite3VdbeChangeP5(v, SQLITE_NULLEQ); - VdbeCoverage(v); + assert( op==OP_Ge || op==OP_Gt || op==OP_Le ); + VdbeCoverageIf(v, op==OP_Ge); + VdbeCoverageIf(v, op==OP_Gt); + VdbeCoverageIf(v, op==OP_Le); sqlite3ReleaseTempReg(pParse, reg1); sqlite3ReleaseTempReg(pParse, reg2); @@ -2533,7 +2536,8 @@ void sqlite3WindowCodeStep( if( pMWin->eStart==pMWin->eEnd && regStart ){ int op = ((pMWin->eStart==TK_FOLLOWING) ? OP_Ge : OP_Le); int addrGe = sqlite3VdbeAddOp3(v, op, regStart, 0, regEnd); - VdbeCoverage(v); + VdbeCoverageIf(v, op==OP_Ge); + VdbeCoverageIf(v, op==OP_Le); windowAggFinal(&s, 0); sqlite3VdbeAddOp2(v, OP_Rewind, s.current.csr, 1); VdbeCoverageNeverTaken(v);