From c6a54f418c3dc75ac552e03a084b4d6e29c258e3 Mon Sep 17 00:00:00 2001 From: drh <> Date: Tue, 4 Apr 2023 18:10:23 +0000 Subject: [PATCH] Remove an assert() statement that is no longer valid due to enhancements to query planner for improved use of indexes. [forum:/forumpost/dc16ec63d3 |Forum post dc16ec63d3]. FossilOrigin-Name: 2b23dd249d0bc254308f5539936d33ee558f1100dec616caac7317dbe70db761 --- manifest | 16 ++++++++-------- manifest.uuid | 2 +- src/expr.c | 1 - test/in.test | 13 +++++++++++++ 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/manifest b/manifest index d2efe01134..7491cf9216 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Expose\sthe\snew\sSQLITE_VTAB_USES_ALL_SCHEMAS\sto\sJS. -D 2023-04-04T17:35:38.816 +C Remove\san\sassert()\sstatement\sthat\sis\sno\slonger\svalid\sdue\sto\senhancements\nto\squery\splanner\sfor\simproved\suse\sof\sindexes.\n[forum:/forumpost/dc16ec63d3\s|Forum\spost\sdc16ec63d3]. +D 2023-04-04T18:10:23.765 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -575,7 +575,7 @@ F src/date.c f21815ca7172ce073db3163ac54c8d9f2841077165c1a6123b4d1c376a0c7ec7 F src/dbpage.c f3eea5f7ec47e09ee7da40f42b25092ecbe961fc59566b8e5f705f34335b2387 F src/dbstat.c ec92074baa61d883de58c945162d9e666c13cd7cf3a23bc38b4d1c4d0b2c2bef F src/delete.c a9c6d3f51c0a31e9b831e0a0580a98d702904b42d216fee530940e40dec34873 -F src/expr.c 9586f2dafe724b756d56657945b0d9c5177e10053d5cd83dbdd50f3f6d32c407 +F src/expr.c 8e30ea19cd8c08659604fb6a25841f6c2878ad6af6929a7d8bf1fe2401b34db1 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fkey.c 722f20779f5342a787922deded3628d8c74b5249cab04098cf17ee2f2aaff002 F src/func.c d187be57a886ddf4e6b7ef584a494361899be3df5eee6d4a747b68ff4aff4122 @@ -1168,7 +1168,7 @@ F test/hook2.test b9ff3b8c6519fb67f33192f1afe86e7782ee4ac8 F test/icu.test 716a6b89fbabe5cc63e0cd4c260befb08fd7b9d761f04d43669233292f0753b1 F test/ieee754.test b0945d12be7d255f3dfa18e2511b17ca37e0edd2b803231c52d05b86c04ab26e F test/imposter1.test c3f1db2d3db2c24611a6596a3fc0ffc14f1466c8 -F test/in.test 7399a6562fb09de7f786901f0b24b7bbe7c0b541f29ead9eb13f091edea37da4 +F test/in.test faf3be786a263d18eee6c2a8c3a81fbf58364ed40dedabc7e4f09de61dc91292 F test/in2.test 5d4c61d17493c832f7d2d32bef785119e87bde75 F test/in3.test 3cbf58c87f4052cee3a58b37b6389777505aa0c0 F test/in4.test fdd1d8134da8376985c2edba6035a2de1f6c731524d2ffa651419e8fe2cd1c5a @@ -2052,8 +2052,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 0421cc03e0efa8f1a83e46e91f26837366c10eef0903d099e25eb0cc99c297df -R 0e21ece7a390cae1473c17b5a84e1bea -U stephan -Z 9f2003caba47df8e36725e986bdaab35 +P b7ef09be667dd349e195842304c03cbebb1693164e1c3587a5d7c96baa713edf +R 99691209e816c0f3ddcb06c83f00e948 +U drh +Z 31348ba733ecca5969721d9d50a8c15c # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 6dd838f59e..a2984fa465 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b7ef09be667dd349e195842304c03cbebb1693164e1c3587a5d7c96baa713edf \ No newline at end of file +2b23dd249d0bc254308f5539936d33ee558f1100dec616caac7317dbe70db761 \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index bcc71fad1f..47cfba2232 100644 --- a/src/expr.c +++ b/src/expr.c @@ -2936,7 +2936,6 @@ int sqlite3FindInIndex( CollSeq *pReq = sqlite3BinaryCompareCollSeq(pParse, pLhs, pRhs); int j; - assert( pReq!=0 || pRhs->iColumn==XN_ROWID || pParse->nErr ); for(j=0; jaiColumn[j]!=pRhs->iColumn ) continue; assert( pIdx->azColl[j] ); diff --git a/test/in.test b/test/in.test index 716c17f593..f1632b0d96 100644 --- a/test/in.test +++ b/test/in.test @@ -829,6 +829,19 @@ do_execsql_test in-22.4 { SELECT * FROM t1 WHERE x IN ((((((SELECT a FROM t2)))))); } {2 200 4 400 6 600} +# 2023-04-04 https://sqlite.org/forum/forumpost/dc16ec63d3 +# Faulty assert() statement in the IN optimization. +# +do_execsql_test in-23.0 { + DROP TABLE IF EXISTS t4; + CREATE TABLE t4(a TEXT, b INT); + INSERT INTO t4(a,b) VALUES('abc',0),('ABC',1),('def',2); + CREATE INDEX t4x ON t4(a, +a COLLATE NOCASE); + SELECT a0.a, group_concat(a1.a) AS b + FROM t4 AS a0 JOIN t4 AS a1 + GROUP BY a0.a + HAVING (SELECT sum( (a1.a == +a0.a COLLATE NOCASE) IN (SELECT b FROM t4))); +} {ABC abc,ABC,def abc abc,ABC,def def abc,ABC,def} -- 2.47.2