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
This commit is contained in:
drh
2015-02-09 13:42:59 +00:00
parent 0e86a1ac08
commit 17645f5eec
3 changed files with 16 additions and 16 deletions
+6 -6
View File
@@ -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
+1 -1
View File
@@ -1 +1 @@
b3c6b8a3c1075d2a87cef68f061d6a0098e6d8d0
aa093fef2d2a7e26d987b46654963e4d7e66d444
+9 -9
View File
@@ -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++;