Revise the VDBE comments for NULL-scan so that they also work make
sense when reading a NULLS FIRST plan. FossilOrigin-Name: bfe793780fa6fc7a1e7d0ee60606dda272985de9573887dca118e9510fc609f2
This commit is contained in:
parent
5f6a4ea2e2
commit
a31d3554c5
12
manifest
12
manifest
@ -1,5 +1,5 @@
|
|||||||
C Additional\ssimplifications\sof\sthe\sWHERE\sloop\scode\sgenerator\slogic\sfor\nNULLS\sLAST.
|
C Revise\sthe\sVDBE\scomments\sfor\sNULL-scan\sso\sthat\sthey\salso\swork\smake\nsense\swhen\sreading\sa\sNULLS\sFIRST\splan.
|
||||||
D 2019-08-23T17:00:22.277
|
D 2019-08-23T17:09:02.374
|
||||||
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 10e21ac338582a4f87b2d09f09dd812c9bda0a0c4c456f54daeeee355afae733
|
F src/where.c 10e21ac338582a4f87b2d09f09dd812c9bda0a0c4c456f54daeeee355afae733
|
||||||
F src/whereInt.h 4a296fd4fa79fdcbc2b5e8c1b898901617655811223e1082b899c23ecb092217
|
F src/whereInt.h 4a296fd4fa79fdcbc2b5e8c1b898901617655811223e1082b899c23ecb092217
|
||||||
F src/wherecode.c 3bed0f377aacff188575bccc2f01d45ed5df353b52e8b2c39a22ff88ae3cfc25
|
F src/wherecode.c 535c8e228478fd971b9a5b6cb6773995b0fbf7020d5989508a5094ce5b8cd95b
|
||||||
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 e3ed2f496f51234a8f81d90d47ba603b06dbed38b8bd8f1934294379cde74d3a
|
P 1383680d927d7d703933be7653c0019199845e7f7e82bcc76d9ca3808093e9d8
|
||||||
R 1ab18b69b8d15ca4e03875cc0023fa2f
|
R 26440ec11262a796737d9ceae9976115
|
||||||
U drh
|
U drh
|
||||||
Z e7fe19284bcd51997b007393da65f48c
|
Z 426e1e92ed37562d2a1263893c3aee0b
|
||||||
|
@ -1 +1 @@
|
|||||||
1383680d927d7d703933be7653c0019199845e7f7e82bcc76d9ca3808093e9d8
|
bfe793780fa6fc7a1e7d0ee60606dda272985de9573887dca118e9510fc609f2
|
@ -1691,7 +1691,7 @@ Bitmask sqlite3WhereCodeOneLoopStart(
|
|||||||
}
|
}
|
||||||
if( regBignull ){
|
if( regBignull ){
|
||||||
sqlite3VdbeAddOp2(v, OP_Integer, 1, regBignull);
|
sqlite3VdbeAddOp2(v, OP_Integer, 1, regBignull);
|
||||||
VdbeComment((v, "NULL-scan needed flag"));
|
VdbeComment((v, "NULL-scan pass ctr"));
|
||||||
}
|
}
|
||||||
|
|
||||||
op = aStartOp[(start_constraints<<2) + (startEq<<1) + bRev];
|
op = aStartOp[(start_constraints<<2) + (startEq<<1) + bRev];
|
||||||
@ -1769,7 +1769,7 @@ Bitmask sqlite3WhereCodeOneLoopStart(
|
|||||||
if( regBignull ){
|
if( regBignull ){
|
||||||
/* Except, skip the end-of-range check while doing the NULL-scan */
|
/* Except, skip the end-of-range check while doing the NULL-scan */
|
||||||
sqlite3VdbeAddOp2(v, OP_IfNot, regBignull, sqlite3VdbeCurrentAddr(v)+3);
|
sqlite3VdbeAddOp2(v, OP_IfNot, regBignull, sqlite3VdbeCurrentAddr(v)+3);
|
||||||
VdbeComment((v, "If NULL-scan active"));
|
VdbeComment((v, "If NULL-scan 2nd pass"));
|
||||||
VdbeCoverage(v);
|
VdbeCoverage(v);
|
||||||
}
|
}
|
||||||
op = aEndOp[bRev*2 + endEq];
|
op = aEndOp[bRev*2 + endEq];
|
||||||
@ -1786,7 +1786,7 @@ Bitmask sqlite3WhereCodeOneLoopStart(
|
|||||||
assert( bSeekPastNull+bStopAtNull==1 );
|
assert( bSeekPastNull+bStopAtNull==1 );
|
||||||
assert( nConstraint+bSeekPastNull>0 );
|
assert( nConstraint+bSeekPastNull>0 );
|
||||||
sqlite3VdbeAddOp2(v, OP_If, regBignull, sqlite3VdbeCurrentAddr(v)+2);
|
sqlite3VdbeAddOp2(v, OP_If, regBignull, sqlite3VdbeCurrentAddr(v)+2);
|
||||||
VdbeComment((v, "If NULL-scan pending"));
|
VdbeComment((v, "If NULL-scan 1st pass"));
|
||||||
VdbeCoverage(v);
|
VdbeCoverage(v);
|
||||||
op = aEndOp[bRev*2 + bSeekPastNull];
|
op = aEndOp[bRev*2 + bSeekPastNull];
|
||||||
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase,
|
sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user