]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make sure the WITH stack in the Parse object is disabled following an error.
authordrh <drh@noemail.net>
Sat, 9 Nov 2019 14:38:58 +0000 (14:38 +0000)
committerdrh <drh@noemail.net>
Sat, 9 Nov 2019 14:38:58 +0000 (14:38 +0000)
FossilOrigin-Name: de6e6d6846d6a41c4821454dfdc042096234df753be08c5567b79fe535d9b6ea

manifest
manifest.uuid
src/select.c
src/util.c
test/with3.test

index ced639718b8bf961b0a88201229b97fab4cc9754..a37efd0e09b8195a9ab63199e5b3503f07110fd1 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C When\sa\svirtual\stable\sreports\sorderByConsumed,\sthat\stells\sus\snothing\sabout\nwhether\sor\snot\sthe\sSQLITE_DISTINCTBY\sconstraint\sis\smet.\nFix\sfor\sticket\s[7e59041f9c4e5102].\nTest\scases\sin\sTH3.
-D 2019-11-08T20:13:44.344
+C Make\ssure\sthe\sWITH\sstack\sin\sthe\sParse\sobject\sis\sdisabled\sfollowing\san\serror.
+D 2019-11-09T14:38:58.070
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -526,7 +526,7 @@ F src/printf.c 9be6945837c839ba57837b4bc3af349eba630920fa5532aa518816defe42a7d4
 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 F src/resolve.c cf2391c93d425455388389e7a47674b9da107d2ed69ebf49979044d70dbeb045
 F src/rowset.c d977b011993aaea002cab3e0bb2ce50cf346000dff94e944d547b989f4b1fe93
-F src/select.c 3395765ea3749341deb4c25e8339c3d626a8ac641a52c216e9632e48e620ba68
+F src/select.c 887c3096566e22d28c6cc1a09ac0f6eb9636e5f38eb55e296e39e282c56fda65
 F src/shell.c.in c06961f202f3cc50b819744b7331d3caea3d79d958402f4900b0668248557468
 F src/sqlite.h.in 5ba20664cede7f4e6861541fad1f17bac50f7bf576b40a8784c54f9126a9edd4
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
@@ -596,7 +596,7 @@ F src/trigger.c 845ccc08f60716c58aa28fe6470385c18ef8c4e1d88c93dcf449bc13d464eb2e
 F src/update.c 07a50767f7d3e26d4c887c31cd66448d700d3215caea6023acf7269336097df7
 F src/upsert.c b445315c8958d8f17ec3297d06842e61dacaad0633ccaec1e4e160de7e562212
 F src/utf.c 2f0fac345c7660d5c5bd3df9e9d8d33d4c27f366bcfb09e07443064d751a0507
-F src/util.c 10d910e04a4f3842042485e0df01a484f57f912c10b60b3a09ccddd5019bd138
+F src/util.c 66b22af7b359ce6493c34fef28c87d5c2d1765f212d6e4cd5e08d99ac30b89bb
 F src/vacuum.c 82dcec9e7b1afa980288718ad11bc499651c722d7b9f32933c4d694d91cb6ebf
 F src/vdbe.c b67d6af853e03c3dd6d1116351567f62d8a2c10d3bd6db5f7f366e75d11c6653
 F src/vdbe.h fdbc0a11e5768a702b46ce63286f60e22e71351a29bd98b3666405e1fccc7802
@@ -1731,7 +1731,7 @@ F test/windowerr.test a8b752402109c15aa1c5efe1b93ccb0ce1ef84fa964ae1cd6684dd0b3c
 F test/windowfault.test a90b397837209f15e54afa62e8be39b2759a0101fae04e05a08bcc50e243a452
 F test/with1.test d32792084dcb5f6c047d77bb8a032822ef9fe050ade07d0aeffa37753a05e3c9
 F test/with2.test e0030e2f0267a910d6c0e4f46f2dfe941c1cc0d4f659ba69b3597728e7e8f1ab
-F test/with3.test b5f1372097690c6ef84db2f13fc7e64a88c7263c3f88493605f90597e8a68d45
+F test/with3.test 7de8dff2891aca0f9453463e4a2d6eb995baf137827d5596116fee53e22a4e29
 F test/with4.test 257be66c0c67fee1defbbac0f685c3465e2cad037f21ce65f23f86084f198205
 F test/withM.test 693b61765f2b387b5e3e24a4536e2e82de15ff64
 F test/without_rowid1.test 9cfb83705c506e3849fa7efc88a3c9a15f9a50bf9b1516b41757a7cef9bba8c3
@@ -1849,7 +1849,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 34f64f11ca481996b1ff1686bdc5e278946635b6856cd1fe2355fce8e298e0f8
-R 31de4c083b648ffd51f71fd6244bffef
+P b59f94e4da9b1653f2004b214407a50340dd476b27e6ec7e29e501a95db9c963
+R 895ed8b37daa70e59944b1a121e85596
 U drh
-Z 28abf6e2f78150740c50123f02de8e33
+Z bce644ebcb3df09f16a3af5cdce2d123
index f175b311ea854a375dd8af2914b5725a1af693e8..e8640409126cc9a4b07bcb1e445a0c9d7376b31b 100644 (file)
@@ -1 +1 @@
-b59f94e4da9b1653f2004b214407a50340dd476b27e6ec7e29e501a95db9c963
\ No newline at end of file
+de6e6d6846d6a41c4821454dfdc042096234df753be08c5567b79fe535d9b6ea
\ No newline at end of file
index b21effc0a048bc1c8260a150f4380fab23824a74..269469485f939f592641f221b07a6d372e4cb28d 100644 (file)
@@ -4668,6 +4668,9 @@ static int withExpand(
   With *pWith;                    /* WITH clause that pCte belongs to */
 
   assert( pFrom->pTab==0 );
+  if( pParse->nErr ){
+    return SQLITE_ERROR;
+  }
 
   pCte = searchWith(pParse->pWith, pFrom, &pWith);
   if( pCte ){
index d28950d266d48b340c605f3ef7a0c65f7e42d235..2c14911b6f5c22f813bed77d55b05cefa284844f 100644 (file)
@@ -192,6 +192,7 @@ void sqlite3ErrorMsg(Parse *pParse, const char *zFormat, ...){
     sqlite3DbFree(db, pParse->zErrMsg);
     pParse->zErrMsg = zMsg;
     pParse->rc = SQLITE_ERROR;
+    pParse->pWith = 0;
   }
 }
 
index 360d37f9b9443bc8692f4431cadc1db29cc192a6..eebb9d6546805d4ac191751f758ca85a0308f695 100644 (file)
@@ -30,7 +30,15 @@ do_catchsql_test 1.0 {
     SELECT 5 FROM t0 UNION SELECT 8 FROM m
   )
   SELECT * FROM i;
-} {1 {no such table: m}}
+} {1 {no such table: t0}}
+
+# 2019-11-09 dbfuzzcheck find
+do_catchsql_test 1.1 {
+  CREATE VIEW v1(x,y) AS
+    WITH t1(a,b) AS (VALUES(1,2))
+    SELECT * FROM nosuchtable JOIN t1;
+  SELECT * FROM v1;
+} {1 {no such table: main.nosuchtable}}
 
 # Additional test cases that came out of the work to
 # fix for Kostya's problem.