diff options
author | drh <drh@noemail.net> | 2019-03-30 20:10:11 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2019-03-30 20:10:11 +0000 |
commit | bf00f6d7ece6a1e207e096a9a94e039594fb6d77 (patch) | |
tree | 7c1c864d59f2c31b057ad5dac9c642b8410d9819 /src | |
parent | b336d1ab83e9a7803e3247c6d87ec6ffdc568224 (diff) | |
download | sqlite-bf00f6d7ece6a1e207e096a9a94e039594fb6d77.tar.gz sqlite-bf00f6d7ece6a1e207e096a9a94e039594fb6d77.zip |
Enhanced VdbeCoverage() macros in the new windows function code.
FossilOrigin-Name: f24066f8dd847dfb656f26c4a8142e7fb6a412ffe325aea6254cb122cfbb3e1c
Diffstat (limited to 'src')
-rw-r--r-- | src/window.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/window.c b/src/window.c index 000a179c8..5613103ca 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); |