From: drh <> Date: Thu, 20 Jun 2024 12:07:25 +0000 (+0000) Subject: Do not attempt the exists-to-join optimization if the FROM clause is full. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=620a00ee32c64944289bc8ff8c37b23bb4e220a1;p=thirdparty%2Fsqlite.git Do not attempt the exists-to-join optimization if the FROM clause is full. FossilOrigin-Name: 8e3a1d2850337a902ab36b1d6a0dad4ae35030b71d1e15547f6e7487c1f86d18 --- diff --git a/manifest b/manifest index 5d3e1df5e2..e374d68b4b 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\stests\sfor\sthe\schange\son\sthis\sbranch. -D 2024-06-14T18:06:25.102 +C Do\snot\sattempt\sthe\sexists-to-join\soptimization\sif\sthe\sFROM\sclause\sis\sfull. +D 2024-06-20T12:07:25.967 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -755,7 +755,7 @@ F src/printf.c 8b250972305e14b365561be5117ed0fd364e4fd58968776df1ce64c6280b90f9 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c F src/resolve.c 9c7786f032dea81487e7d94cb17849936f0e9b8891bfc91a6ac24ab193762804 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97 -F src/select.c 757ea788e20f608d09bfef209d17bba87104cab920f80de77c92b38588ef64c5 +F src/select.c 72883bd7dda5e67cdf097776ae5d83aab02fbad9c4fa3ae1e25516efb1401fd4 F src/shell.c.in ad27d1d990e9e5fb7ae8fc38a717e91f55233714f59723e5618baf4a2a3d2b65 F src/sqlite.h.in cbd3e4177791a61c056fd81e37a5b21bb6c8cb2ea8cac558c625974673f50acf F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 @@ -2198,8 +2198,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 4666433cbd9af21c2e0440b10bcb39878624a39485e2bb514553b276acb8a401 -R a04eb111a75540deb83a6459885c7580 -U dan -Z 384cdb2f34ec5a8891b2a14db482f8c6 +P ae19ff9ba819439fd107e745b6e8e503e5b68bfdb9da58b74035413704ad3caf +R 2e2a21654277825e58e413fb627048c9 +U drh +Z 5d427b052ed84b4ca59ddb925bd74f93 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 49d1e69efe..3ef5d46fbc 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -ae19ff9ba819439fd107e745b6e8e503e5b68bfdb9da58b74035413704ad3caf \ No newline at end of file +8e3a1d2850337a902ab36b1d6a0dad4ae35030b71d1e15547f6e7487c1f86d18 diff --git a/src/select.c b/src/select.c index 7a789196b6..832b711b8b 100644 --- a/src/select.c +++ b/src/select.c @@ -7384,7 +7384,8 @@ static u64 findConstIdxTerms( static void existsToJoin(Parse *pParse, Select *p, Expr *pWhere){ if( pWhere && !ExprHasProperty(pWhere, EP_OuterON|EP_InnerON) - && p->pSrc->nSrc>0 + && p->pSrc->nSrc>0 + && p->pSrc->nSrcdb->mallocFailed==0 ){ if( pWhere->op==TK_AND ){