From: drh Date: Sun, 12 Apr 2015 17:35:27 +0000 (+0000) Subject: Fix a problem with a stale Select.pWith pointer when a CTE is used together X-Git-Tag: version-3.8.10~150 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f932f7145ede311a79a15197841c2706af5bc71c;p=thirdparty%2Fsqlite.git Fix a problem with a stale Select.pWith pointer when a CTE is used together with a compound query and an ORDER BY clause. FossilOrigin-Name: 9a453f52a2b30595891604ede7d4acf61c2736a1 --- diff --git a/manifest b/manifest index 7967b35884..5478452884 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Avoid\sproblems\swhen\sa\squery\shas\sa\sGROUP\sBY\sand\san\sORDER\sBY\sbut\sno\sFROM\sclause. -D 2015-04-12T01:22:04.580 +C Fix\sa\sproblem\swith\sa\sstale\sSelect.pWith\spointer\swhen\sa\sCTE\sis\sused\stogether\nwith\sa\scompound\squery\sand\san\sORDER\sBY\sclause. +D 2015-04-12T17:35:27.113 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 5f78b1ab81b64e7c57a75d170832443e66c0880a F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -230,7 +230,7 @@ F src/printf.c 8ae1fa9d30c1200a9268a390ba9e9cea9197b27a F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 F src/resolve.c 41aa91af56d960e9414ce1d7c17cfb68e0d1c6cb F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e -F src/select.c c28c52e353287434fac8473e56ee4be848d12c9d +F src/select.c 117e0f9ac9254a6f7472fac5144eba21ba0b2ec1 F src/shell.c 84a1593bd86aaa14f4da8a8f9b16fbc239d262aa F src/sqlite.h.in 278602140d49575e8708e643161f4263e428a02a F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad @@ -1184,7 +1184,7 @@ F test/wild001.test bca33f499866f04c24510d74baf1e578d4e44b1c F test/win32heap.test ea19770974795cff26e11575e12d422dbd16893c F test/win32lock.test fbf107c91d8f5512be5a5b87c4c42ab9fdd54972 F test/win32longpath.test 169c75a3b2e43481f4a62122510210c67b08f26d -F test/with1.test 9df5cd8a62148b3d9ef8597aea563e3863018bcd +F test/with1.test a86bf7f9288ba759a25ee57221d3bffaca36032a F test/with2.test ee227a663586aa09771cafd4fa269c5217eaf775 F test/withM.test e97f2a8c506ab3ea9eab94e6f6072f6cc924c991 F test/without_rowid1.test 7862e605753c8d25329f665fa09072e842183151 @@ -1250,7 +1250,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 79326d6eece926fd1c148b29f0b726208d8b44c0 -R b8a99417c5276ad65ad7b525e5ae16a3 +P e527d96a1e098ade4e9d124b630a8c2ea2ac9b36 +R f469da7981f7e5a80ef00c68d565b4fb U drh -Z ba0a0070ee213de4cf49a8279f3da0ad +Z 637f476e29fbab1d809f7d30402eeba5 diff --git a/manifest.uuid b/manifest.uuid index df7dea6773..cdf3e1131c 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -e527d96a1e098ade4e9d124b630a8c2ea2ac9b36 \ No newline at end of file +9a453f52a2b30595891604ede7d4acf61c2736a1 \ No newline at end of file diff --git a/src/select.c b/src/select.c index 90aaa842a6..930a099e80 100644 --- a/src/select.c +++ b/src/select.c @@ -3883,6 +3883,7 @@ static int convertCompoundSelectToSubquery(Walker *pWalker, Select *p){ pNew->pOrderBy = 0; p->pPrior = 0; p->pNext = 0; + p->pWith = 0; p->selFlags &= ~SF_Compound; assert( (p->selFlags & SF_Converted)==0 ); p->selFlags |= SF_Converted; diff --git a/test/with1.test b/test/with1.test index ad88a67c22..80892d2642 100644 --- a/test/with1.test +++ b/test/with1.test @@ -843,4 +843,10 @@ do_catchsql_test 13.3 { SELECT i FROM c; } {1 {table c has 1 values for 2 columns}} +# 2015-04-12 +# +do_execsql_test 14.1 { + WITH x AS (SELECT * FROM t) SELECT 0 EXCEPT SELECT 0 ORDER BY 1 COLLATE binary; +} {} + finish_test