diff options
Diffstat (limited to 'src/backend/nodes/print.c')
-rw-r--r-- | src/backend/nodes/print.c | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/src/backend/nodes/print.c b/src/backend/nodes/print.c index 3f48cb0b9eb..a0417f8108b 100644 --- a/src/backend/nodes/print.c +++ b/src/backend/nodes/print.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/print.c,v 1.41 2000/09/25 18:14:55 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/print.c,v 1.42 2000/09/29 18:21:29 tgl Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -39,7 +39,6 @@ print(void *obj) s = nodeToString(obj); printf("%s\n", s); fflush(stdout); - return; } /* @@ -132,10 +131,15 @@ print_rt(List *rtable) { RangeTblEntry *rte = lfirst(l); - printf("%d\t%s(%s)\t%u\t%d\t%s\n", - i, rte->relname, rte->eref->relname, rte->relid, - rte->inFromCl, - (rte->inh ? "inh" : "")); + if (rte->relname) + printf("%d\t%s (%s)\t%u", + i, rte->relname, rte->eref->relname, rte->relid); + else + printf("%d\t[subquery] (%s)\t", + i, rte->eref->relname); + printf("\t%s\t%s\n", + (rte->inh ? "inh" : ""), + (rte->inFromCl ? "inFromCl" : "")); i++; } } @@ -286,7 +290,7 @@ plannode_type(Plan *p) { switch (nodeTag(p)) { - case T_Plan: + case T_Plan: return "PLAN"; break; case T_Result: @@ -304,6 +308,12 @@ plannode_type(Plan *p) case T_IndexScan: return "INDEXSCAN"; break; + case T_TidScan: + return "TIDSCAN"; + break; + case T_SubqueryScan: + return "SUBQUERYSCAN"; + break; case T_Join: return "JOIN"; break; @@ -334,9 +344,6 @@ plannode_type(Plan *p) case T_Group: return "GROUP"; break; - case T_TidScan: - return "TIDSCAN"; - break; default: return "UNKNOWN"; break; @@ -372,10 +379,10 @@ print_plan_recursive(Plan *p, Query *parsetree, int indentLevel, char *label) } else if (IsA(p, IndexScan)) { - StrNCpy(extraInfo, - ((RangeTblEntry *) (nth(((IndexScan *) p)->scan.scanrelid - 1, - parsetree->rtable)))->relname, - NAMEDATALEN); + RangeTblEntry *rte; + + rte = rt_fetch(((IndexScan *) p)->scan.scanrelid, parsetree->rtable); + StrNCpy(extraInfo, rte->relname, NAMEDATALEN); } else extraInfo[0] = '\0'; @@ -386,7 +393,7 @@ print_plan_recursive(Plan *p, Query *parsetree, int indentLevel, char *label) print_plan_recursive(p->lefttree, parsetree, indentLevel + 3, "l: "); print_plan_recursive(p->righttree, parsetree, indentLevel + 3, "r: "); - if (nodeTag(p) == T_Append) + if (IsA(p, Append)) { List *lst; int whichplan = 0; |