Add additional VDBE coverage marcros.
FossilOrigin-Name: d3531f5be7d3769689e2cd8bdc9bab5608759de027d44cc123996f32a4a89583
This commit is contained in:
parent
a677eecad3
commit
505ae9def8
12
manifest
12
manifest
@ -1,5 +1,5 @@
|
|||||||
C Merge\sfixes\sfrom\strunk.\s\sAlso\sfix\sa\sreference\sto\sthe\sKeyInfo.aSortOrder\sfield,\nwhich\sshould\snow\sbe\sKeyInfo.aSortFlags
|
C Add\sadditional\sVDBE\scoverage\smarcros.
|
||||||
D 2019-08-22T19:35:24.209
|
D 2019-08-22T21:13:56.537
|
||||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||||
@ -611,7 +611,7 @@ F src/wal.h 606292549f5a7be50b6227bd685fa76e3a4affad71bb8ac5ce4cb5c79f6a176a
|
|||||||
F src/walker.c d5a94907dcac990e31976be9dc769d17f6a806782593d6aec9d760ee01ec22cd
|
F src/walker.c d5a94907dcac990e31976be9dc769d17f6a806782593d6aec9d760ee01ec22cd
|
||||||
F src/where.c e954bdbd248e755ddbe0ff54b743a7b99eeb2d852d034b2176004a905c4128bc
|
F src/where.c e954bdbd248e755ddbe0ff54b743a7b99eeb2d852d034b2176004a905c4128bc
|
||||||
F src/whereInt.h 807766a6a92893dbba8a887e5b13466d2257ce07a84cf1be0aae2c41aee3bf4f
|
F src/whereInt.h 807766a6a92893dbba8a887e5b13466d2257ce07a84cf1be0aae2c41aee3bf4f
|
||||||
F src/wherecode.c b8f285f93d53274d36d279f3aeaef67cdd28c2d899e06c5d813fb8a4ba6be1b9
|
F src/wherecode.c f8005a06f78bd396216b444280a78688198e9b3aaed582c8e7fc608d111b1d93
|
||||||
F src/whereexpr.c 2757afbd5cfdbb420f9d0392e1bd5f5c0e33dee50a8c692befc7e502308e449f
|
F src/whereexpr.c 2757afbd5cfdbb420f9d0392e1bd5f5c0e33dee50a8c692befc7e502308e449f
|
||||||
F src/window.c 3ea716bb0dd5ffc8cdbaa48baffc525958b51bc61b2afd73a56baccfcd7ceb2f
|
F src/window.c 3ea716bb0dd5ffc8cdbaa48baffc525958b51bc61b2afd73a56baccfcd7ceb2f
|
||||||
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
|
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
|
||||||
@ -1837,7 +1837,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P b1cbcdc6eb42cca0c42a05e0d6ba4c6c7f09adff0c59ecfc5b434a94dec07a41 44578865fa7baf9760e355691ca9ce753295aaba7a4ee0bba29d4f85d9335bab
|
P 63e625c8eb06720eef30573aa562e38c90d228a9cf493f8bb59f09e50f0e3168
|
||||||
R 2d835772a9b0c8de420768a9d0cab391
|
R 3b31af6d2e0a85acf1bc0e1de0094280
|
||||||
U drh
|
U drh
|
||||||
Z db9bead32e306ab3e60ddcd2bc746cd1
|
Z 763e56944768007815dc6fe6b985fbdb
|
||||||
|
@ -1 +1 @@
|
|||||||
63e625c8eb06720eef30573aa562e38c90d228a9cf493f8bb59f09e50f0e3168
|
d3531f5be7d3769689e2cd8bdc9bab5608759de027d44cc123996f32a4a89583
|
@ -1710,9 +1710,23 @@ Bitmask sqlite3WhereCodeOneLoopStart(
|
|||||||
start_constraints = (nConstraint>1);
|
start_constraints = (nConstraint>1);
|
||||||
op = aStartOp[(start_constraints<<2) + (startEq<<1) + bRev];
|
op = aStartOp[(start_constraints<<2) + (startEq<<1) + bRev];
|
||||||
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint-1);
|
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint-1);
|
||||||
|
VdbeCoverage(v);
|
||||||
|
VdbeCoverageIf(v, op==OP_Rewind); testcase( op==OP_Rewind );
|
||||||
|
VdbeCoverageIf(v, op==OP_Last); testcase( op==OP_Last );
|
||||||
|
VdbeCoverageIf(v, op==OP_SeekGT); testcase( op==OP_SeekGT );
|
||||||
|
VdbeCoverageIf(v, op==OP_SeekGE); testcase( op==OP_SeekGE );
|
||||||
|
VdbeCoverageIf(v, op==OP_SeekLE); testcase( op==OP_SeekLE );
|
||||||
|
VdbeCoverageIf(v, op==OP_SeekLT); testcase( op==OP_SeekLT );
|
||||||
}else{
|
}else{
|
||||||
op = aStartOp[(start_constraints<<2) + ((!startEq)<<1) + bRev];
|
op = aStartOp[(start_constraints<<2) + ((!startEq)<<1) + bRev];
|
||||||
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint);
|
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint);
|
||||||
|
VdbeCoverage(v);
|
||||||
|
VdbeCoverageIf(v, op==OP_Rewind); testcase( op==OP_Rewind );
|
||||||
|
VdbeCoverageIf(v, op==OP_Last); testcase( op==OP_Last );
|
||||||
|
VdbeCoverageIf(v, op==OP_SeekGT); testcase( op==OP_SeekGT );
|
||||||
|
VdbeCoverageIf(v, op==OP_SeekGE); testcase( op==OP_SeekGE );
|
||||||
|
VdbeCoverageIf(v, op==OP_SeekLE); testcase( op==OP_SeekLE );
|
||||||
|
VdbeCoverageIf(v, op==OP_SeekLT); testcase( op==OP_SeekLT );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1762,6 +1776,7 @@ Bitmask sqlite3WhereCodeOneLoopStart(
|
|||||||
if( nConstraint ){
|
if( nConstraint ){
|
||||||
if( regBignull ){
|
if( regBignull ){
|
||||||
sqlite3VdbeAddOp2(v, OP_If, regBignull, sqlite3VdbeCurrentAddr(v)+3);
|
sqlite3VdbeAddOp2(v, OP_If, regBignull, sqlite3VdbeCurrentAddr(v)+3);
|
||||||
|
VdbeCoverage(v);
|
||||||
}
|
}
|
||||||
op = aEndOp[bRev*2 + endEq];
|
op = aEndOp[bRev*2 + endEq];
|
||||||
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint);
|
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint);
|
||||||
@ -1772,12 +1787,20 @@ Bitmask sqlite3WhereCodeOneLoopStart(
|
|||||||
}
|
}
|
||||||
if( regBignull ){
|
if( regBignull ){
|
||||||
sqlite3VdbeAddOp2(v, OP_IfNot, regBignull, sqlite3VdbeCurrentAddr(v)+2);
|
sqlite3VdbeAddOp2(v, OP_IfNot, regBignull, sqlite3VdbeCurrentAddr(v)+2);
|
||||||
|
VdbeCoverage(v);
|
||||||
if( bStopAtNull ){
|
if( bStopAtNull ){
|
||||||
op = aEndOp[bRev*2 + 0];
|
op = aEndOp[bRev*2 + 0];
|
||||||
|
assert( op==OP_IdxGE || op==OP_IdxLE );
|
||||||
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint);
|
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint);
|
||||||
|
testcase( op==OP_IdxGE ); VdbeCoverageIf(v, op==OP_IdxGE );
|
||||||
|
testcase( op==OP_IdxLE ); VdbeCoverageIf(v, op==OP_IdxLE );
|
||||||
}else{
|
}else{
|
||||||
op = aEndOp[bRev*2 + endEq];
|
op = aEndOp[bRev*2 + endEq];
|
||||||
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint+1);
|
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint+1);
|
||||||
|
testcase( op==OP_IdxGT ); VdbeCoverageIf(v, op==OP_IdxGT );
|
||||||
|
testcase( op==OP_IdxGE ); VdbeCoverageIf(v, op==OP_IdxGE );
|
||||||
|
testcase( op==OP_IdxLT ); VdbeCoverageIf(v, op==OP_IdxLT );
|
||||||
|
testcase( op==OP_IdxLE ); VdbeCoverageIf(v, op==OP_IdxLE );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user