From: dan Date: Fri, 26 Jun 2026 19:31:46 +0000 (+0000) Subject: Fix a harmless "jump or move depends on uninitialised value" warning that could occur... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f0c63df28809d7a10e143bb744c1ed5bba854793;p=thirdparty%2Fsqlite.git Fix a harmless "jump or move depends on uninitialised value" warning that could occur when using a virtual table as the RHS of an outer join within a trigger. FossilOrigin-Name: 716782abe939083b7732289d862ddfd841057d3458814f96e5e6d7826ec7fa5c --- diff --git a/manifest b/manifest index 0e4aba1317..15225a2777 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Enhance\sthe\sdocumentation\son\ssqlite3_set_authorizer()\sto\smake\sit\sclear\nthat\sthe\sauthorizer\scallback\sis\snot\sinvoked\sfor\selements\sof\san\sexpression\nin\sa\sgenerated\scolumn.\n[bugs:/info/2026-06-26T12:42:48Z|Bugs\s2026-06-26T12:42:48Z]. -D 2026-06-26T15:27:30.376 +C Fix\sa\sharmless\s"jump\sor\smove\sdepends\son\suninitialised\svalue"\swarning\sthat\scould\soccur\swhen\susing\sa\svirtual\stable\sas\sthe\sRHS\sof\san\souter\sjoin\swithin\sa\strigger. +D 2026-06-26T19:31:46.902 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -738,7 +738,7 @@ F src/printf.c 69a89414b6368901b286a5579dea34cc3470a7d10f2b0fea93f7eb5d8f1e2e71 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c F src/resolve.c d0724113da9f5c0430d2052808ce59519f51ae7c4fbb1f5ef21fe3a832956086 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97 -F src/select.c 80ea6935f8470b97d1212bc1b759b7fadb28351797877f493d0cf598be1fef5e +F src/select.c 7b7f0ba07a443d5882b3285bda4ed9d9fdbe43a1ed46302d9833ce9b310ed85c F src/shell.c.in a4e83895cfa336065ad7f7a7dea8fc2a19d050f7ce7466621c67208acaac9e44 F src/sqlite.h.in d9ec41feb4cd804e68b174328b43beb3f1f71bba13e1c7a439efb826d301cccc F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479 @@ -1909,7 +1909,7 @@ F test/triggerA.test 837be862d8721f903dba3f3ceff05b32e0bee5214cf6ea3da5fadf12d36 F test/triggerB.test 56780c031b454abac2340dbb3b71ac5c56c3d7fe F test/triggerC.test 1faacf5249a7abe8bdc44aafe170f2141a72cb2abcef300dc91e3d55c4158f41 F test/triggerD.test 8e7f3921a92a5797d472732108109e44575fa650 -F test/triggerE.test 612969cb57a4ef792059ad6d01af0117e1ae862c283753ffcc9a6428642b22ee +F test/triggerE.test 45cf42d88b6e0bf1458509e558d24da272967b69798877103f2140616967948b F test/triggerF.test 5d76f0a8c428ff87a4d5ed52da06f6096a2c787a1e21b846111dfac4123de3ad F test/triggerG.test b4e3fbccde6cf8995177cd6cad880256c8c00e407e07d8c67149f46106292a2c F test/triggerupfrom.test d1f9e56090408115c522bee626cc33a2f3370f627a5e341d832589d72e3aa271 @@ -2209,8 +2209,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P cc36f1741308ea354d540d27c89b92d69a0481885ca3463bdaf0b9ab27464d78 -R 36257a1bc1b62387f6a53b622e10579c -U drh -Z d7d6d3fdcc16c76593fd1df10070f90e +P 45213c1c398cad9d05eda5420ae7379e84fa37d30793f8b4d28c358b88d62931 +R a655c9561d5416e0ec2f34dd35824420 +U dan +Z 968269c493f0b7238c18353af755695c # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 990e614dc4..31061285aa 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -45213c1c398cad9d05eda5420ae7379e84fa37d30793f8b4d28c358b88d62931 +716782abe939083b7732289d862ddfd841057d3458814f96e5e6d7826ec7fa5c diff --git a/src/select.c b/src/select.c index 4d181f1218..03f4e2abbb 100644 --- a/src/select.c +++ b/src/select.c @@ -660,7 +660,8 @@ static int sqlite3ProcessJoin(Parse *pParse, Select *p){ p->selFlags |= SF_OnToWhere; } - if( IsVirtual(pRightTab) && joinType==EP_OuterON && pRight->u1.pFuncArg ){ + if( pRight->fg.isTabFunc && joinType==EP_OuterON && pRight->u1.pFuncArg ){ + assert( IsVirtual(pRightTab) ); p->selFlags |= SF_OnToWhere; } } diff --git a/test/triggerE.test b/test/triggerE.test index de4b068582..22b6cc4029 100644 --- a/test/triggerE.test +++ b/test/triggerE.test @@ -111,4 +111,24 @@ do_execsql_test 2.3 { SELECT * FROM t2; } {1 2 x y z z} +#------------------------------------------------------------------------- +# At one point this was causing a harmless "branch on unitialized value" +# warning. +ifcapable rtree { + db close + sqlite3_shutdown + sqlite3_config_lookaside 0 0 + sqlite3_initialize + reset_db + + do_execsql_test 3.0 { + CREATE TABLE t1(a); + CREATE VIRTUAL TABLE rr USING rtree(id, a, b); + CREATE TRIGGER r1 AFTER DELETE ON t1 BEGIN + SELECT a FROM t1 NATURAL LEFT JOIN rr; + END; + DELETE FROM t1; + } +} + finish_test