diff --git a/manifest b/manifest index 5b2f1415a5..7e35c36952 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\sproblem\sin\sQRF\swhen\sthe\sscreen\swidth\sis\snarrower\sthan\sa\scolumn.\n[bugs:/info/2026-10-23T03:50:28Z|Bug\s2026-10-23T03:50:28Z] -D 2026-10-23T11:55:02.104 +C Fix\squery\splanner\serror\sin\sthe\scase\sof\sa\smulti-index\sOR\son\sa\sWITHOUT\sROWID\ntable\swhere\sthe\sOR-term\suses\sthe\sseek-scan\soptimization.\n[bugs:/info/2026-10-23T03:09:01Z|Bug\s2026-10-23T03:09:01Z]. +D 2026-10-23T12:14:17.568 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -891,7 +891,7 @@ F src/wal.h c6251cfc1950643a976625ca452e46dc9b466b4f5dd2e85f244f29f79bf68ace F src/walker.c d5006d6b005e4ea7302ad390957a8d41ed83faa177e412f89bc5600a7462a014 F src/where.c 801d94357804abe447b87c64d33ef186c6dc79b38beb3d128cac3e5a1f3c3f44 F src/whereInt.h 5d739acb94bf1fdf6edd502a919e3dcf2d340dda63cc1827304e119ea878f6f3 -F src/wherecode.c f255e418ccf877f6bb9892145288728f1aa1a0ab8c2f2a57f82132e538c15b65 +F src/wherecode.c 41abe8c4ab3fc851496d64896b0d2b20d637e10933af5600716f0049c1892b0c F src/whereexpr.c 8b5c937bea8bca9673f3f57925b37e7dcb5343834aac5564349f706460aa2ecd F src/window.c 88ae7299cabf3124639236accbc2fa461a81473232e758c85d016922bf5061ab F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 @@ -1680,7 +1680,7 @@ F test/schema6.test e4bd1f23d368695eb9e7b51ef6e02ca0642ea2ab4a52579959826b5e7dce F test/schemafault.test 1936bceca55ac82c5efbcc9fc91a1933e45c8d1e1d106b9a7e56c972a5a2a51e F test/securedel.test 2f70b2449186a1921bd01ec9da407fbfa98c3a7a5521854c300c194b2ff09384 F test/securedel2.test 2d54c28e46eb1fd6902089958b20b1b056c6f1c5 -F test/seekscan1.test 2148a174ba55fa378f18fdf62eeed1f3a3cc9b6f360a948db613cad0c80b1f04 +F test/seekscan1.test c03d81f495f24bbcbb4d087af09b5732ba5ce06b250ce8abfb703839f3e42bc2 F test/select1.test 15ffb8ce2cb5dae47dcef680484aac770efcb42f330455bbaffad636af71e597 F test/select2.test 352480e0e9c66eda9c3044e412abdf5be0215b56 F test/select3.test 152ce3978c8600c70413e921e39e4c5aeb8ff1e96dd722442a9981e1b8afc702 @@ -2297,8 +2297,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P a327ab93a4758f9bb420e9ae1dd955ce102d28b89a9b1294414266a5f583b282 -R 315e776739a0d09cb45f78064faf45ea +P 8de43901c796964bfc7943261fe639874e395ec9415970e4e6a5d1c4868d18a8 +R 76f86836a23654d720e54f2ffe987534 U drh -Z a75d750748e7fd638d439eeb2315fce1 +Z 83ebcaba0cfdc6727cc4f7a3f3b5a6a2 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 91c4427c16..71afc1a738 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -8de43901c796964bfc7943261fe639874e395ec9415970e4e6a5d1c4868d18a8 +b33ff35e6246a9dc62205db244511eead28fae90cea686e205effae5e6cc5b49 diff --git a/src/wherecode.c b/src/wherecode.c index cf9b62e629..f9a6ddb01c 100644 --- a/src/wherecode.c +++ b/src/wherecode.c @@ -2146,7 +2146,9 @@ Bitmask sqlite3WhereCodeOneLoopStart( SWAP(u8, nBtm, nTop); } - if( iLevel>0 && (pLoop->wsFlags & WHERE_IN_SEEKSCAN)!=0 ){ + if( (iLevel>0 || (pWInfo->wctrlFlags & WHERE_OR_SUBCLAUSE)!=0) + && (pLoop->wsFlags & WHERE_IN_SEEKSCAN)!=0 + ){ /* In case OP_SeekScan is used, ensure that the index cursor does not ** point to a valid row for the first iteration of this loop. */ sqlite3VdbeAddOp1(v, OP_NullRow, iIdxCur); diff --git a/test/seekscan1.test b/test/seekscan1.test index 387dc0613d..7fac7c7090 100644 --- a/test/seekscan1.test +++ b/test/seekscan1.test @@ -189,8 +189,13 @@ foreach {tn idx used} { } } +# Bug report 2026-10-23T03:09:01Z +do_execsql_test 4.1 { + DROP TABLE t1; + CREATE TABLE t1(a, b, PRIMARY KEY(a, b)) WITHOUT ROWID; + INSERT INTO t1 VALUES(1, 1), (2, 1), (3, 1), (4, 1); + ANALYZE; + SELECT * FROM t1 WHERE a = 2 OR (a = 1 AND b IN (1, 2)); +} {2 1 1 1} + finish_test - - - -