]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a code-generator bug introduced by the UNION/INTERSECT/EXISTS
authordrh <>
Wed, 4 Mar 2026 13:02:08 +0000 (13:02 +0000)
committerdrh <>
Wed, 4 Mar 2026 13:02:08 +0000 (13:02 +0000)
optimization of check-in [132ba781b031972c] and reported in
[forum:/forumpost/2026-03-04T05:06:26Z|forum post 2026-03-04T05:06:26Z].

FossilOrigin-Name: 6ba7797cac7dc873b62a12be5712511c9199b379342dac4a1887bfd65227a298

manifest
manifest.uuid
src/select.c
test/with1.test

index ea0c2eff2dbdde7efe5569de18a343fadd425c9c..6dcb09672c55de8f135b0c02925cfba48ac7f26d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Avoid\san\sobscure\srace\scondition\sbetween\sa\scheckpointer\sand\sa\swriter\swrapping\saround\sto\sthe\sstart\sof\sthe\swal\sfile.
-D 2026-03-03T19:43:19.771
+C Fix\sa\scode-generator\sbug\sintroduced\sby\sthe\sUNION/INTERSECT/EXISTS\noptimization\sof\scheck-in\s[132ba781b031972c]\sand\sreported\sin\n[forum:/forumpost/2026-03-04T05:06:26Z|forum\spost\s2026-03-04T05:06:26Z].
+D 2026-03-04T13:02:08.305
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -729,7 +729,7 @@ F src/printf.c 9cff219dba73b1aa9a8113e83e962f03f7bea8b6eb51cefb25bc468d5a69fb2d
 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c 928ff887f2a7c64275182060d94d06fdddbe32226c569781cf7e7edc6f58d7fd
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
-F src/select.c 8fe87c39a45037dac2e3dc02e1dc13ca09c1155cc14df9daaa65e5318179beaf
+F src/select.c d739fb0ac7e632327b9fb4a1ac46629ec93f5e3438943df813f230f7822c56ab
 F src/shell.c.in 2acdfca982deb70cdfefb8b422822d4e0234fe4dde6ff2bd9020b26445853917
 F src/sqlite.h.in 1f853f1d836af3e5a0b451521041d05658988a45f6978aaae08286e483fee5ac
 F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
@@ -2074,7 +2074,7 @@ F test/windowerr.tcl f5acd6fbc210d7b5546c0e879d157888455cd4a17a1d3f28f07c1c8a387
 F test/windowerr.test a8b752402109c15aa1c5efe1b93ccb0ce1ef84fa964ae1cd6684dd0b3cc1819b
 F test/windowfault.test 15094c1529424e62f798bc679e3fe9dfab6e8ba2f7dfe8c923b6248c31660a7c
 F test/windowpushd.test c420e2265f0e09a0e798d0513a660d71b51602088d81b3dbd038918ee1339dcc
-F test/with1.test 1ee171d7c306ab8b0771f3511d870f56c735607729836585bbceb1fc2f47e0b1
+F test/with1.test 31db84788e0429885b63995149fab57d32e26196b752a3a926249ae74c0adddd
 F test/with2.test 181674a6cc86a601ca2ac052741cdfad5b529e07e870435d2f6cdb92d589ff17
 F test/with3.test e30369ea27aa27eb1bda4c5e510c8a9f782c8afd2ab99d1a02b8a7f25a5d3e65
 F test/with4.test 257be66c0c67fee1defbbac0f685c3465e2cad037f21ce65f23f86084f198205
@@ -2189,9 +2189,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 88dce64242552e7443d9fb496f6f3ad71dc5b4a882ce21b7ef1d5ea4e26f1e61 703cbb0f760515eac1e6f72a5e5cd928258c71378e4a976082b6518c90128135
-R 081029f3feecf24cb4be31bd4056634e
-T +closed 703cbb0f760515eac1e6f72a5e5cd928258c71378e4a976082b6518c90128135
-U dan
-Z aa660315ed5ec6682f68be7645c0d8b8
+P 7168988acbec2d8d51106a263e553f8942b8b23d983dbbe5028e0f9be68cbb83
+R 919bab5ba9cb4a7afc21d24bdc3fa2c5
+U drh
+Z 463d87a5025767bf46752b6593cc33c4
 # Remove this line to create a well-formed Fossil manifest.
index 5e463bf5c673444ed7cc62197a003caf4bdbf4ee..171b2c7c0938b5b305af98f4b18e31060e44515a 100644 (file)
@@ -1 +1 @@
-7168988acbec2d8d51106a263e553f8942b8b23d983dbbe5028e0f9be68cbb83
+6ba7797cac7dc873b62a12be5712511c9199b379342dac4a1887bfd65227a298
index 62e73a699c054f4f3eefcb3b81dd83c4b5e38101..027c77691149fe3450c16ba6769526647663535d 100644 (file)
@@ -3268,7 +3268,6 @@ static int generateOutputSubroutine(
       sqlite3VdbeAddOp3(v, OP_MakeRecord, pIn->iSdst, pIn->nSdst, r3);
       if( pDest->eDest==SRT_DistQueue ){
         sqlite3VdbeAddOp2(v, OP_IdxInsert, iParm+1, r3);
-        sqlite3VdbeChangeP5(v, OPFLAG_USESEEKRESULT);
       }
       for(ii=0; ii<nKey; ii++){
         sqlite3VdbeAddOp2(v, OP_SCopy,
index 5ddf9dce0bfd80fa30185d5b626247a578cb579e..c87082583453af887d7224b9568277e73e865a01 100644 (file)
@@ -1237,4 +1237,23 @@ do_execsql_test 27.1 {
   SELECT k, cte_map, main_map, '|' FROM log ORDER BY k;
 } {1 cte1 main1 | 2 cte2 main2 |}
 
+# forum post https://sqlite.org/forum/forumpost/2026-03-04T05:06:26Z
+#
+db null NULL
+do_execsql_test 28.1 {
+  DROP TABLE t1;
+  CREATE TABLE t1(x INTEGER PRIMARY KEY);
+  INSERT INTO t1 VALUES(1),(4),(999);
+  SELECT (
+    WITH RECURSIVE t2(y) AS (
+      SELECT 4
+      UNION
+      SELECT NULL
+      UNION
+      SELECT y+1 FROM t2 WHERE y=4 ORDER BY 1
+    )
+    SELECT 1 FROM t2 WHERE y=x
+  ) FROM t1;
+} {NULL 1 NULL}
+
 finish_test