-C Additional\schanges\sto\ssupport\sthe\s".schema"\scommand\son\sbuilds\sthat\somit\nvirtual\stables.
-D 2025-12-23T17:24:10.162
+C Enhance\sthe\somit-noop-join\soptimization\sso\sthat\sit\sis\sable\sto\somit\sa\nchain\sof\snoop-joins.\s\sOptimization\simprovement\ssuggested\sby\n[forum:/forumpost/11a53f2bad|forum\spost\s11a53f2bad].
+D 2025-12-24T14:03:15.617
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F src/wal.c 505a98fbc599a971d92cb90371cf54546c404cd61e04fd093e7b0c8ff978f9b6
F src/wal.h ba252daaa94f889f4b2c17c027e823d9be47ce39da1d3799886bbd51f0490452
F src/walker.c d5006d6b005e4ea7302ad390957a8d41ed83faa177e412f89bc5600a7462a014
-F src/where.c 917eeaa56a1b5e91e4eecc9d260f34e69287d7cd26d458335d03df3ef2eea3cc
+F src/where.c 0079b6ba463ae806b99b20cb335729dcce5f3e496b81cccf6441dc11f8c5bf92
F src/whereInt.h 8d94cb116c9e06205c3d5ac87af065fc044f8cf08bfdccd94b6ea1c1308e65da
F src/wherecode.c 71c5c6804b7f882dec8ec858758accae02fcfca13df3cc720f1f258e663ec7c5
F src/whereexpr.c 5f412da6616e26b8000dd736a5ce5da0018dff0933cd656bbb25f407db16bf93
F test/ioerr5.test 5984da7bf74b6540aa356f2ab0c6ae68a6d12039a3d798a9ac6a100abc17d520
F test/ioerr6.test a395a6ab144b26a9e3e21059a1ab6a7149cca65b
F test/istrue.test e7f285bb70282625c258e866ce6337d4c762922f5a300e1b50f958aef6e7d9c9
-F test/join.test 2fcfd84640cfd9ff48f31b4b0d370c4d5498c355ae4384544668ca54d37ae186
+F test/join.test c706b382ed09ddc89eee7ad0ffd08d862655b0abc292a690d41d995c18c17b3f
F test/join2.test f59d63264fb24784ae9c3bc9d867eb569cd6d442da5660f8852effe5c1938c27
F test/join3.test 6f0c774ff1ba0489e6c88a3e77b9d3528fb4fda0
F test/join4.test 1a352e4e267114444c29266ce79e941af5885916
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P b4e3c8170a107b2018fe5374495dbec14c851ccbf7419cd382991b2fe68c45e4
-R bbf0f8a3b999b9219c1c633e81632132
+P 6b5c0374fa81cf069263bebf9b740573de4f82fde3c4e5796af80dcbe6a1a2e7
+R 29d0420c4de507ad710f36a0a3484d53
U drh
-Z c31ffc765328d25d9e743687ef375ec0
+Z 43c41d94e3f055232643d08c19bf340b
# Remove this line to create a well-formed Fossil manifest.
-6b5c0374fa81cf069263bebf9b740573de4f82fde3c4e5796af80dcbe6a1a2e7
+5a85b83b9f21ad88938e273bb35b398e91133424683e915836f322b69f277673
for(pTerm=pWInfo->sWC.a; pTerm<pEnd; pTerm++){
if( (pTerm->prereqAll & pLoop->maskSelf)!=0 ){
pTerm->wtFlags |= TERM_CODED;
+ pTerm->prereqAll = 0;
}
}
if( i!=pWInfo->nLevel-1 ){
INNER JOIN t2 ON +y IS z;
} {NULL NULL 123 NULL}
+# 2025-12-24 https://sqlite.org/forum/forumpost/11a53f2bad
+#
+# Chained omit-noop-join optimization
+#
+reset_db
+db null NULL
+do_execsql_test join-33.1 {
+ CREATE TABLE t1(a1 INTEGER PRIMARY KEY, b1);
+ CREATE TABLE t2(a2 INTEGER PRIMARY KEY, b2);
+ CREATE TABLE t3(a3 INTEGER PRIMARY KEY, b3);
+ CREATE TABLE t4(a4 INTEGER PRIMARY KEY, b4);
+ INSERT INTO t1 VALUES(1,11),(2,12),(3,13), (5,15);
+ INSERT INTO t2 VALUES(1,21), (3,23),(4,24),(5,25);
+ INSERT INTO t3 VALUES (2,32),(3,33), (5,35);
+ INSERT INTO t4 VALUES(1,41),(2,42), (4,44),(5,45);
+ CREATE VIEW vchain AS
+ SELECT a1, b1, b2, b3, b4
+ FROM t1 LEFT JOIN t2 ON a1=a2
+ LEFT JOIN t3 ON a2=a3
+ LEFT JOIN t4 ON a3=a4;
+}
+do_execsql_test join-33.2 {
+ SELECT a1 FROM vchain ORDER BY a1;
+} {1 2 3 5}
+do_eqp_test join-33.2-eqp {
+ SELECT a1 FROM vchain ORDER BY a1;
+} {
+ QUERY PLAN
+ `--SCAN t1
+}
+do_execsql_test join-33.3 {
+ SELECT a1, b2 FROM vchain ORDER BY a1;
+} {1 21 2 NULL 3 23 5 25}
+do_eqp_test join-33.3-eqp {
+ SELECT a1, b2 FROM vchain ORDER BY a1;
+} {
+ QUERY PLAN
+ |--SCAN t1
+ `--SEARCH t2 USING INTEGER PRIMARY KEY (rowid=?) LEFT-JOIN
+}
+
finish_test