]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix an incorrect assert() in SQLITE_ENABLE_SORTER_REFERENCES logic - a new
authordrh <>
Tue, 12 Oct 2021 18:05:55 +0000 (18:05 +0000)
committerdrh <>
Tue, 12 Oct 2021 18:05:55 +0000 (18:05 +0000)
assert() introduced 5 days ago by [87e2f5eb436fc448].

FossilOrigin-Name: 7cfc839e5f1f28514cba7d11b0c0eb56d5ea65caacb8893dcf9fcf2d409e2ba5

manifest
manifest.uuid
src/select.c

index 87ffcdd4875f6f150c359193a4def48cf3ba6b6a..5d6416aff0a474f8db6249ace140b6cd04453e9f 100644 (file)
--- 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
index 53d5996c4835a80bfcb9575387dfe7cac7166e19..53404069a415e751498793e8551f589458de30b9 100644 (file)
@@ -1 +1 @@
-8124b2ceb71447157283b16f9a7fa6e250003b9ddf1c1b45f91db64aed79b5da
\ No newline at end of file
+7cfc839e5f1f28514cba7d11b0c0eb56d5ea65caacb8893dcf9fcf2d409e2ba5
\ No newline at end of file
index d437283a4a13d28de85d515cb7b4cf38fb031574..33c8b27629281eeb251e124c718df5c6f4bc2f5c 100644 (file)
@@ -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<nDefer; j++){