mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
Remove an unreachable branch in the NULLS LAST logic of RANGE window
functions. FossilOrigin-Name: 47cd634c98b502d40a493455ba6d73cbd0dae74944f9cf06fcbcd025f4b49d6e
This commit is contained in:
14
manifest
14
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Fix\sanother\scase\swhere\sSQLite\sassumes\sthat\sif\s"~(?\sAND\sFALSE)"\sis\strue,\s"?"\smust\sbe\snon-null.
|
C Remove\san\sunreachable\sbranch\sin\sthe\sNULLS\sLAST\slogic\sof\sRANGE\swindow\nfunctions.
|
||||||
D 2019-08-29T15:50:16.698
|
D 2019-08-29T16:17:59.802
|
||||||
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
|
||||||
@@ -613,7 +613,7 @@ F src/where.c 6f8bd0b4ade152571e960504a3042a31fd80e8adcef834db0717af3fbac4acb5
|
|||||||
F src/whereInt.h 4a296fd4fa79fdcbc2b5e8c1b898901617655811223e1082b899c23ecb092217
|
F src/whereInt.h 4a296fd4fa79fdcbc2b5e8c1b898901617655811223e1082b899c23ecb092217
|
||||||
F src/wherecode.c 535c8e228478fd971b9a5b6cb6773995b0fbf7020d5989508a5094ce5b8cd95b
|
F src/wherecode.c 535c8e228478fd971b9a5b6cb6773995b0fbf7020d5989508a5094ce5b8cd95b
|
||||||
F src/whereexpr.c 2757afbd5cfdbb420f9d0392e1bd5f5c0e33dee50a8c692befc7e502308e449f
|
F src/whereexpr.c 2757afbd5cfdbb420f9d0392e1bd5f5c0e33dee50a8c692befc7e502308e449f
|
||||||
F src/window.c 3ea716bb0dd5ffc8cdbaa48baffc525958b51bc61b2afd73a56baccfcd7ceb2f
|
F src/window.c 7d74882b41db7f44300489b3513f94f3f95684725e6d8e4e8cede44f015bb4b0
|
||||||
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
|
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
|
||||||
F test/affinity2.test b03930d288e38b07f55023a58538ad174605695e98934bdab1facf6bd9ecc436
|
F test/affinity2.test b03930d288e38b07f55023a58538ad174605695e98934bdab1facf6bd9ecc436
|
||||||
F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d
|
F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d
|
||||||
@@ -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 84ae41fd2f50cb7c0c3f6522d0f94817e1bbf96eae5316279e3e32cee4e46e91
|
P 616f5663b3dbd0929128c0990fc6d8bba1513c7ae196b87c450ac0b3b3203ecd
|
||||||
R c76b8e8761ede59ea3d32402ab062564
|
R 9f9103695325eba7c86630a81c46d881
|
||||||
U dan
|
U drh
|
||||||
Z abbce93de6b15f66332b49534306a771
|
Z 7097a40260a07e3670128a93ad17b767
|
||||||
|
@@ -1 +1 @@
|
|||||||
616f5663b3dbd0929128c0990fc6d8bba1513c7ae196b87c450ac0b3b3203ecd
|
47cd634c98b502d40a493455ba6d73cbd0dae74944f9cf06fcbcd025f4b49d6e
|
12
src/window.c
12
src/window.c
@@ -1864,7 +1864,7 @@ static void windowIfNewPeer(
|
|||||||
*/
|
*/
|
||||||
static void windowCodeRangeTest(
|
static void windowCodeRangeTest(
|
||||||
WindowCodeArg *p,
|
WindowCodeArg *p,
|
||||||
int op, /* OP_Ge or OP_Gt */
|
int op, /* OP_Ge, OP_Gt, or OP_Le */
|
||||||
int csr1,
|
int csr1,
|
||||||
int regVal,
|
int regVal,
|
||||||
int csr2,
|
int csr2,
|
||||||
@@ -1908,14 +1908,12 @@ static void windowCodeRangeTest(
|
|||||||
switch( op ){
|
switch( op ){
|
||||||
case OP_Ge: sqlite3VdbeAddOp2(v, OP_Goto, 0, lbl); break;
|
case OP_Ge: sqlite3VdbeAddOp2(v, OP_Goto, 0, lbl); break;
|
||||||
case OP_Gt:
|
case OP_Gt:
|
||||||
sqlite3VdbeAddOp2(v, OP_NotNull, reg2, lbl);
|
sqlite3VdbeAddOp2(v, OP_NotNull, reg2, lbl); VdbeCoverage(v);
|
||||||
VdbeCoverage(v);
|
|
||||||
break;
|
break;
|
||||||
case OP_Le:
|
default:
|
||||||
sqlite3VdbeAddOp2(v, OP_IsNull, reg2, lbl);
|
assert( op==OP_Le );
|
||||||
VdbeCoverage(v);
|
sqlite3VdbeAddOp2(v, OP_IsNull, reg2, lbl); VdbeCoverage(v);
|
||||||
break;
|
break;
|
||||||
default: assert( op==OP_Lt ); /* no-op */
|
|
||||||
}
|
}
|
||||||
sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+2);
|
sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+2);
|
||||||
sqlite3VdbeJumpHere(v, addr);
|
sqlite3VdbeJumpHere(v, addr);
|
||||||
|
Reference in New Issue
Block a user