]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Detect any attempt to use an INDEXED BY clause on a CTE and report an
authordrh <>
Sat, 9 Oct 2021 16:00:56 +0000 (16:00 +0000)
committerdrh <>
Sat, 9 Oct 2021 16:00:56 +0000 (16:00 +0000)
error.

FossilOrigin-Name: 35a9de2c97b9a386070e7827a0842bb1caf3af69ea0d6f67ce2a50be3426fb63

manifest
manifest.uuid
src/select.c

index 6488eea9373d93331e97f9b162aafcb2b3bc19b0..b94362e6ee1c28ff4fc4d361fbc46a3ba10516e6 100644 (file)
--- 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
index 1f7e054b7393cc60f812bf23793e4c21764695e1..24903962990c4b750f6fcf9dc13a662cc7968e99 100644 (file)
@@ -1 +1 @@
-b8c9a54664a87ac464b413390572c3feb912e1efc9c8a78c61f1b370e2165c05
\ No newline at end of file
+35a9de2c97b9a386070e7827a0842bb1caf3af69ea0d6f67ce2a50be3426fb63
\ No newline at end of file
index 13ed20f6c36d31bd7c8a68234d833a334a12e3b6..d437283a4a13d28de85d515cb7b4cf38fb031574 100644 (file)
@@ -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++;