From: drh <> Date: Sat, 9 Oct 2021 16:00:56 +0000 (+0000) Subject: Detect any attempt to use an INDEXED BY clause on a CTE and report an X-Git-Tag: version-3.37.0~141 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0c1da689075bde27b5d742c772b5498df8873c3e;p=thirdparty%2Fsqlite.git Detect any attempt to use an INDEXED BY clause on a CTE and report an error. FossilOrigin-Name: 35a9de2c97b9a386070e7827a0842bb1caf3af69ea0d6f67ce2a50be3426fb63 --- diff --git a/manifest b/manifest index 6488eea937..b94362e6ee 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Further\sto\sthe\sprevious\scheck-in,\sremove\sthe\s"harmless()"\smacro\sdefinition\sas\nit\sis\sno\slonger\sused. -D 2021-10-08T18:15:50.320 +C Detect\sany\sattempt\sto\suse\san\sINDEXED\sBY\sclause\son\sa\sCTE\sand\sreport\san\nerror. +D 2021-10-09T16:00:56.047 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 2367906fef5bf128e31fc695d365463e2e482fc09a80b651ff2a38ed130a9842 +F src/select.c 9eab80721a24fb05eb03d4bb93d26d1ade0ac707bbb45d917ed39546427b5b3f F src/shell.c.in ac685e63c506fb2e39375c83347c88bff84dc48fa5d6a59f508d7d67951693a0 F src/sqlite.h.in 4e977a5e2ed1a9e8987ff65a2cab5f99a4298ebf040ea5ff636e1753339ff45a F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 @@ -1928,7 +1928,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 87c357c60168fdc52c82382aa7288d66886f5fbe2ae6af68344dbcfdbca9069b -R 1cc86c723eae430b905815a96dda1490 +P b8c9a54664a87ac464b413390572c3feb912e1efc9c8a78c61f1b370e2165c05 +R 0dfb0bb10d05f6bb20b43b31156cbd37 U drh -Z bcca30cb5ad97f8aa9cbbd8a97fe1387 +Z 963494934ee8a982a3213d8ade04cfb3 diff --git a/manifest.uuid b/manifest.uuid index 1f7e054b73..2490396299 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b8c9a54664a87ac464b413390572c3feb912e1efc9c8a78c61f1b370e2165c05 \ No newline at end of file +35a9de2c97b9a386070e7827a0842bb1caf3af69ea0d6f67ce2a50be3426fb63 \ No newline at end of file diff --git a/src/select.c b/src/select.c index 13ed20f6c3..d437283a4a 100644 --- a/src/select.c +++ b/src/select.c @@ -5253,7 +5253,10 @@ static int resolveFromTermToCte( if( db->mallocFailed ) return 2; pFrom->pSelect->selFlags |= SF_CopyCte; assert( pFrom->pSelect ); - assert( pFrom->fg.isIndexedBy==0 ); /* Prevent collision in union u2 */ + if( pFrom->fg.isIndexedBy ){ + sqlite3ErrorMsg(pParse, "no such index: \"%s\"", pFrom->u1.zIndexedBy); + return 2; + } pFrom->fg.isCte = 1; pFrom->u2.pCteUse = pCteUse; pCteUse->nUse++;