From: drh Date: Mon, 9 Feb 2015 13:42:59 +0000 (+0000) Subject: In selecttrace 0x100 mode, show the parse tree after name resolution instead X-Git-Tag: version-3.8.9~134 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=17645f5eecb950205481179bb0dee1e5332a2e8e;p=thirdparty%2Fsqlite.git In selecttrace 0x100 mode, show the parse tree after name resolution instead of before flattening, so that it is always seen even if flattening does not occur. Also: add the hex pointer value to the top of each SELECT tree. FossilOrigin-Name: aa093fef2d2a7e26d987b46654963e4d7e66d444 --- diff --git a/manifest b/manifest index b716294ece..aac267bbad 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C In\sselecttrace\smode\s0x100,\sshow\sa\scomplete\sparse-tree\sboth\sbefore\sand\safter\nquery\sflattening.\s\sThis\sis\sa\schange\sto\sdebugging\scode\sonly. -D 2015-02-09T11:54:41.074 +C In\sselecttrace\s0x100\smode,\sshow\sthe\sparse\stree\safter\sname\sresolution\sinstead\nof\sbefore\sflattening,\sso\sthat\sit\sis\salways\sseen\seven\sif\sflattening\sdoes\snot\noccur.\s\sAlso:\sadd\sthe\shex\spointer\svalue\sto\sthe\stop\sof\seach\sSELECT\stree. +D 2015-02-09T13:42:59.910 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 6b9e7677829aa94b9f30949656e27312aefb9a46 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -230,7 +230,7 @@ F src/printf.c 05edc41450d0eb2c05ef7db113bf32742ae65325 F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 F src/resolve.c 4ebd1064bded2556a8856c6f00fe2b9642f6efc3 F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e -F src/select.c 6ea3518b8863ec631c0481ba03dc283ea9140747 +F src/select.c edcf8ba8163526f2340f10f19b0a71547c6f97ba F src/shell.c 82c25508dac802b32198af6f5256ca1597c6a1af F src/sqlite.h.in 54678c21401909f72b221344dd560d285a1ba5eb F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad @@ -1239,7 +1239,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 c12edb85076d0832e3a0abbbba4d07f3cb5d7f0e -R 592949bfa9cc2e6e32d5144cda2bc252 +P b3c6b8a3c1075d2a87cef68f061d6a0098e6d8d0 +R d021c59225e931bc74b845a3c2d5b904 U drh -Z 15610b55190883b540f12ad788effd4f +Z ece5ae1a696e0ba02ef3e8bf97d71c38 diff --git a/manifest.uuid b/manifest.uuid index 86de97c36c..036d4651a7 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b3c6b8a3c1075d2a87cef68f061d6a0098e6d8d0 \ No newline at end of file +aa093fef2d2a7e26d987b46654963e4d7e66d444 \ No newline at end of file diff --git a/src/select.c b/src/select.c index 8563ec1006..058bf3d577 100644 --- a/src/select.c +++ b/src/select.c @@ -3444,13 +3444,6 @@ static int flattenSubquery( /***** If we reach this point, flattening is permitted. *****/ SELECTTRACE(1,pParse,p,("flatten %s.%p from term %d\n", pSub->zSelName, pSub, iFrom)); -#if SELECTTRACE_ENABLED - if( sqlite3SelectTrace & 0x100 ){ - sqlite3DebugPrintf("Befor flattening:\n"); - sqlite3TreeViewSelect(0, p, 0); - } -#endif - /* Authorize the subquery */ pParse->zAuthContext = pSubitem->zName; @@ -4759,6 +4752,13 @@ int sqlite3Select( } isAgg = (p->selFlags & SF_Aggregate)!=0; assert( pEList!=0 ); +#if SELECTTRACE_ENABLED + if( sqlite3SelectTrace & 0x100 ){ + SELECTTRACE(0x100,pParse,p, ("after name resolution:\n")); + sqlite3TreeViewSelect(0, p, 0); + } +#endif + /* Begin generating code. */ @@ -5504,9 +5504,9 @@ select_end: void sqlite3TreeViewSelect(TreeView *pView, const Select *p, u8 moreToFollow){ int n = 0; pView = sqlite3TreeViewPush(pView, moreToFollow); - sqlite3TreeViewLine(pView, "SELECT%s%s", + sqlite3TreeViewLine(pView, "SELECT%s%s (0x%p)", ((p->selFlags & SF_Distinct) ? " DISTINCT" : ""), - ((p->selFlags & SF_Aggregate) ? " agg_flag" : "") + ((p->selFlags & SF_Aggregate) ? " agg_flag" : ""), p ); if( p->pSrc && p->pSrc->nSrc ) n++; if( p->pWhere ) n++;