From: drh <> Date: Wed, 18 Oct 2023 22:27:59 +0000 (+0000) Subject: Deal with an OOM condition while processing aggregate ORDER BYs. X-Git-Tag: version-3.44.0~91^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ce51b313670889aea8c92ce0517d136203a27729;p=thirdparty%2Fsqlite.git Deal with an OOM condition while processing aggregate ORDER BYs. FossilOrigin-Name: b6d44427ec0184880ad14919667e2f526777c5085ffa636f6734cb5951a31225 --- diff --git a/manifest b/manifest index 0fae9862b8..b7c394baed 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Make\ssure\sall\sterms\sof\sthe\sORDER\sBY\swithin\san\saggregate\sgo\sthrough\saggregate\nanalysis.\s\sDo\snot\sattach\san\saggregate\sORDER\sBY\sto\sa\swindow\sfunction. -D 2023-10-18T22:03:48.889 +C Deal\swith\san\sOOM\scondition\swhile\sprocessing\saggregate\sORDER\sBYs. +D 2023-10-18T22:27:59.265 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -718,7 +718,7 @@ F src/printf.c 9da63b9ae1c14789bcae12840f5d800fd9302500cd2d62733fac77f0041b4750 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c F src/resolve.c 77d07bcec1b3101ce36ebf4aa04dd0340e77cbfc4f31bd1a6e43fcd2db904626 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97 -F src/select.c 12733c8abdfffa7d383830a258885eeccc32b10eedbe068edd3137b1b05b3b1a +F src/select.c 9b6fd8e12eb607013d32c41448521495e0f6ee65be13076eca56418f36606241 F src/shell.c.in cf0a3387c5bb05ca2fe6073fa7df21aaa11e749ca5b3846b80b586a447e728aa F src/sqlite.h.in 60e5698417e674f44be17d5ceeb4c2d395ccedba18d6de05435dec0135d9eff1 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 @@ -2133,8 +2133,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 6cccf86c362631ada0c6cbaf661520648f8bbf7ae2b137b3d7d959647387e5c2 -R 67ae4f4c3cb6848472e4d3dd82fce25b +P 16f3805514a741405f70e0ee3b5a6b67720bc75719372e82daa4136fe411ea2b +R 6802737776ac151bb19cf65ccd4a04fb U drh -Z dc2e81b0f2992d3e49cb5d6bc5c317b5 +Z 63e8f8ba6a775006c8b7c4fe41a1d182 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 03d4b453fd..dde82f9eb8 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -16f3805514a741405f70e0ee3b5a6b67720bc75719372e82daa4136fe411ea2b \ No newline at end of file +b6d44427ec0184880ad14919667e2f526777c5085ffa636f6734cb5951a31225 \ No newline at end of file diff --git a/src/select.c b/src/select.c index 05aeb42e05..69e22ba3ef 100644 --- a/src/select.c +++ b/src/select.c @@ -6669,7 +6669,7 @@ static void resetAccumulator(Parse *pParse, AggInfo *pAggInfo){ nExtra += pFunc->pFExpr->x.pList->nExpr; } pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOBList, 0, nExtra); - if( !pFunc->bOBUnique ){ + if( !pFunc->bOBUnique && pParse->nErr==0 ){ pKeyInfo->nKeyField++; } sqlite3VdbeAddOp4(v, OP_OpenEphemeral,