]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Remove an assert() statement that is no longer valid due to enhancements
authordrh <>
Tue, 4 Apr 2023 18:48:40 +0000 (18:48 +0000)
committerdrh <>
Tue, 4 Apr 2023 18:48:40 +0000 (18:48 +0000)
to query planner for improved use of indexes.

FossilOrigin-Name: 93fb8c66c5703a8af4c87acb2a60f6b3ea13e1d11b31ddea3032348660508ee8

manifest
manifest.uuid
src/expr.c
test/in.test

index a004e5ea87520d672f44e280a6ec0f2f2955db28..89cb5d5232d77d625c5034a9eddbcce7e4bcf34a 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C When\stranslating\sarguments\sof\saggregate\sfunctions\sinto\sreferences\sto\nexpression\sindexes,\smake\ssure\sto\sonly\stranslate\sthem\sfor\sthe\scurrent\naggregate\swhen\sthere\sare\snested\saggregates.
-D 2023-04-03T23:55:20.492
+C Remove\san\sassert()\sstatement\sthat\sis\sno\slonger\svalid\sdue\sto\senhancements\nto\squery\splanner\sfor\simproved\suse\sof\sindexes.
+D 2023-04-04T18:48:40.538
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -571,7 +571,7 @@ F src/date.c f21815ca7172ce073db3163ac54c8d9f2841077165c1a6123b4d1c376a0c7ec7
 F src/dbpage.c d47549716549311f79dc39fe5c8fb19390a6eb2c960f8e37c89a9c4de0c1052e
 F src/dbstat.c ec92074baa61d883de58c945162d9e666c13cd7cf3a23bc38b4d1c4d0b2c2bef
 F src/delete.c a9c6d3f51c0a31e9b831e0a0580a98d702904b42d216fee530940e40dec34873
-F src/expr.c 3a58dfd2cdaba2c0a0201274704d8f7a4ff0afd73b7ddcae52d4dfc9310c4a4d
+F src/expr.c 93a6f90d4047649242d512929d5897f377e5150656f40a8676f3b0f39907892c
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 722f20779f5342a787922deded3628d8c74b5249cab04098cf17ee2f2aaff002
 F src/func.c d187be57a886ddf4e6b7ef584a494361899be3df5eee6d4a747b68ff4aff4122
@@ -1163,7 +1163,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
@@ -2046,9 +2046,9 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P af0f55cfcba0f53ee5641f20c5ef171f23f5eaea32d28e3a70899a2e2bf60dd6
-Q +898bfa1afd8260eaaf2aa6db94e74d99ebf4e8a6dc02cf21d20cd981393609a5
-R b89250f8abb10783ff3d136b478876d4
+P 7ea98aba78d10b26e1c8f67978a88a92aa2378dc50df9b5954bdd796affe4f9b
+Q +2b23dd249d0bc254308f5539936d33ee558f1100dec616caac7317dbe70db761
+R 44116fed94558931b6570bb6d112bd25
 U drh
-Z 41cbf1e999caa9f167de7a77e4c74922
+Z 4e80d279a9669250e906bc5e203aa9de
 # Remove this line to create a well-formed Fossil manifest.
index f7348518571af5d76b76c051f6756cf81934941c..db9ebd5b03140e5ff46499f9025321c939242828 100644 (file)
@@ -1 +1 @@
-7ea98aba78d10b26e1c8f67978a88a92aa2378dc50df9b5954bdd796affe4f9b
\ No newline at end of file
+93fb8c66c5703a8af4c87acb2a60f6b3ea13e1d11b31ddea3032348660508ee8
\ No newline at end of file
index 037bd39499a9d320b129a916ce9fff52c361c710..d0268fc248ceb0cf595a0c805aeae8991da86e72 100644 (file)
@@ -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; j<nExpr; j++){
               if( pIdx->aiColumn[j]!=pRhs->iColumn ) continue;
               assert( pIdx->azColl[j] );
index 716c17f593dc524c3406b85f0733ad7fee5708e6..f1632b0d965709d3993e3b9714e169bdea82a1c1 100644 (file)
@@ -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}