From: drh <> Date: Tue, 12 Oct 2021 18:05:55 +0000 (+0000) Subject: Fix an incorrect assert() in SQLITE_ENABLE_SORTER_REFERENCES logic - a new X-Git-Tag: version-3.37.0~133 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ffa5b054ddbdffd93d6d1215a8eddffc6a40398d;p=thirdparty%2Fsqlite.git Fix an incorrect assert() in SQLITE_ENABLE_SORTER_REFERENCES logic - a new assert() introduced 5 days ago by [87e2f5eb436fc448]. FossilOrigin-Name: 7cfc839e5f1f28514cba7d11b0c0eb56d5ea65caacb8893dcf9fcf2d409e2ba5 --- diff --git a/manifest b/manifest index 87ffcdd487..5d6416aff0 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\suse-after-free\sin\sfts3\sthat\scould\sfollow\san\soptimize()\sin\sthe\smiddle\sof\sa\sSELECT\sstatement\swhen\sthe\shash\stable\sis\snon-empty. -D 2021-10-12T11:30:07.454 +C Fix\san\sincorrect\sassert()\sin\sSQLITE_ENABLE_SORTER_REFERENCES\slogic\s-\sa\snew\nassert()\sintroduced\s5\sdays\sago\sby\s[87e2f5eb436fc448]. +D 2021-10-12T18:05:55.167 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -549,7 +549,7 @@ F src/printf.c 5901672228f305f7d493cbc4e7d76a61a5caecdbc1cd06b1f9ec42ea4265cf8d F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c F src/resolve.c ae65c88f5d0d4bc0052b203773d407efa2387c2bd6b202f87178006c7bb8632c F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 -F src/select.c 9eab80721a24fb05eb03d4bb93d26d1ade0ac707bbb45d917ed39546427b5b3f +F src/select.c 32d25b5af6c708aa63373c78c2e59681910387a7a78c08ec3086cadc77d41627 F src/shell.c.in ac685e63c506fb2e39375c83347c88bff84dc48fa5d6a59f508d7d67951693a0 F src/sqlite.h.in 4e977a5e2ed1a9e8987ff65a2cab5f99a4298ebf040ea5ff636e1753339ff45a F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 @@ -1929,7 +1929,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P b54c0db0fd686b85269cf4c301c9b483c5272269d0cd69a1c7141a91101192f0 -R c524f7b304405ad0bf714fb5e3f3379e -U dan -Z b56afbc09e0411ff3bd255f2ad430220 +P 8124b2ceb71447157283b16f9a7fa6e250003b9ddf1c1b45f91db64aed79b5da +R a825a5ddf8510781349a95abcba73170 +U drh +Z df779db7cf34a78d9e65954cf5f5be50 diff --git a/manifest.uuid b/manifest.uuid index 53d5996c48..53404069a4 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -8124b2ceb71447157283b16f9a7fa6e250003b9ddf1c1b45f91db64aed79b5da \ No newline at end of file +7cfc839e5f1f28514cba7d11b0c0eb56d5ea65caacb8893dcf9fcf2d409e2ba5 \ No newline at end of file diff --git a/src/select.c b/src/select.c index d437283a4a..33c8b27629 100644 --- a/src/select.c +++ b/src/select.c @@ -942,10 +942,12 @@ static void selectExprDefer( if( pItem->u.x.iOrderByCol==0 ){ Expr *pExpr = pItem->pExpr; Table *pTab; - assert( ExprUseYTab(pExpr) ); - pTab = pExpr->y.pTab; - if( pExpr->op==TK_COLUMN && pExpr->iColumn>=0 && pTab && !IsVirtual(pTab) - && (pTab->aCol[pExpr->iColumn].colFlags & COLFLAG_SORTERREF) + if( pExpr->op==TK_COLUMN + && pExpr->iColumn>=0 + && ALWAYS( ExprUseYTab(pExpr) ) + && (pTab = pExpr->y.pTab)!=0 + && IsOrdinaryTable(pTab) + && (pTab->aCol[pExpr->iColumn].colFlags & COLFLAG_SORTERREF)!=0 ){ int j; for(j=0; j