From 9fd28029ebc65109c53bd7a65548d3b85b9313cb Mon Sep 17 00:00:00 2001 From: "Thomas G. Lockhart" Date: Tue, 23 Feb 1999 08:01:47 +0000 Subject: [PATCH] Add a few other parser-only nodes for debugging help. Define the JoinExpr node. --- src/backend/nodes/outfuncs.c | 54 +++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 8f1560dac2..78c90ff420 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: outfuncs.c,v 1.75 1999/02/18 00:49:14 momjian Exp $ + * $Id: outfuncs.c,v 1.76 1999/02/23 08:01:47 thomas Exp $ * * NOTES * Every (plan) node in POSTGRES has an associated "out" routine which @@ -42,9 +42,7 @@ #include "catalog/pg_type.h" #include "lib/stringinfo.h" -#ifdef PARSEDEBUG #include "../parse.h" -#endif static void _outDatum(StringInfo str, Datum value, Oid type); static void _outNode(StringInfo str, void *obj); @@ -109,7 +107,6 @@ _outIndexStmt(StringInfo str, IndexStmt *node) node->unique ? "true" : "false"); } -#ifdef PARSEDEBUG static void _outSelectStmt(StringInfo str, SelectStmt *node) { @@ -124,8 +121,6 @@ _outFuncCall(StringInfo str, FuncCall *node) _outNode(str, node->args); } -#endif - static void _outColumnDef(StringInfo str, ColumnDef *node) { @@ -1293,7 +1288,6 @@ static void _outAExpr(StringInfo str, A_Expr *node) { appendStringInfo(str, "EXPR "); -#ifdef PARSEDEBUG switch (node->oper) { case AND: @@ -1312,12 +1306,9 @@ _outAExpr(StringInfo str, A_Expr *node) appendStringInfo(str, "NOTNULL"); break; default: -#endif appendStringInfo(str, stringStringInfo(node->opname)); -#ifdef PARSEDEBUG break; } -#endif _outNode(str, node->lexpr); _outNode(str, node->rexpr); return; @@ -1350,6 +1341,24 @@ _outIdent(StringInfo str, Ident *node) return; } +static void +_outAttr(StringInfo str, Attr *node) +{ + List *l; + + appendStringInfo(str, " ATTR \"%s\" ", stringStringInfo(node->relname)); + + appendStringInfo(str, "("); + foreach(l, node->attrs) + { + _outNode(str, lfirst(l)); + if (lnext(l)) + appendStringInfo(str, ","); + } + appendStringInfo(str, ")"); + return; +} + static void _outAConst(StringInfo str, A_Const *node) { @@ -1465,18 +1474,6 @@ _outNode(StringInfo str, void *obj) case T_IndexElem: _outIndexElem(str, obj); break; - -#ifdef PARSEDEBUG - case T_VariableSetStmt: - break; - case T_SelectStmt: - _outSelectStmt(str, obj); - break; - case T_FuncCall: - _outFuncCall(str, obj); - break; -#endif - case T_Query: _outQuery(str, obj); break; @@ -1659,6 +1656,19 @@ _outNode(StringInfo str, void *obj) case T_CaseWhen: _outCaseWhen(str, obj); break; + + case T_VariableSetStmt: + break; + case T_SelectStmt: + _outSelectStmt(str, obj); + break; + case T_FuncCall: + _outFuncCall(str, obj); + break; + case T_Attr: + _outAttr(str, obj); + break; + default: elog(NOTICE, "_outNode: don't know how to print type %d ", nodeTag(obj));