]> granicus.if.org Git - postgresql/commitdiff
More cleanups ... this is one big file *sigh*
authorMarc G. Fournier <scrappy@hub.org>
Tue, 15 Dec 1998 04:00:46 +0000 (04:00 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Tue, 15 Dec 1998 04:00:46 +0000 (04:00 +0000)
src/backend/nodes/outfuncs.c

index c5fb9cac149a206881b015f3189a4dce09011bf2..671446a466b5005fe64eb0a538d527ae3001ead8 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- *  $Id: outfuncs.c,v 1.54 1998/12/15 02:32:57 scrappy Exp $
+ *  $Id: outfuncs.c,v 1.55 1998/12/15 04:00:46 scrappy Exp $
  *
  * NOTES
  *       Every (plan) node in POSTGRES has an associated "out" routine which
@@ -594,13 +594,11 @@ _outFjoin(StringInfo str, Fjoin *node)
 static void
 _outExpr(StringInfo str, Expr *node)
 {
-       char            buf[500];
        char       *opstr = NULL;
 
-       appendStringInfo(str, " EXPR ");
+       appendStringInfo(str, " EXPR :typeOid %u ",
+                       node->typeOid);
 
-       sprintf(buf, " :typeOid %u ", node->typeOid);
-       appendStringInfo(str, buf);
        switch (node->opType)
        {
                case OP_EXPR:
@@ -622,10 +620,9 @@ _outExpr(StringInfo str, Expr *node)
                        opstr = "subp";
                        break;
        }
-       appendStringInfo(str, " :opType ");
-       appendStringInfo(str, opstr);
-       appendStringInfo(str, " :oper ");
+       appendStringInfo(str, " :opType %s :oper ", opstr);
        _outNode(str, node->oper);
+
        appendStringInfo(str, " :args ");
        _outNode(str, node->args);
 }
@@ -636,23 +633,17 @@ _outExpr(StringInfo str, Expr *node)
 static void
 _outVar(StringInfo str, Var *node)
 {
-       char            buf[500];
+       appendStringInfo(str, 
+                       " VAR :varno %d :varattno %d :vartype %u %vartypmod %d ",
+                       node->varno,
+                       node->varattno,
+                       node->vartype,
+                       node->vartypmod);
 
-       appendStringInfo(str, " VAR ");
-       sprintf(buf, " :varno %d ", node->varno);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :varattno %d ", node->varattno);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :vartype %u ", node->vartype);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :vartypmod %d ", node->vartypmod);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :varlevelsup %u ", node->varlevelsup);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :varnoold %d ", node->varnoold);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :varoattno %d ", node->varoattno);
-       appendStringInfo(str, buf);
+       appendStringInfo(str, " :varlevelsup %u :varnoold %d :varoattno %d" ,
+                       node->varlevelsup,
+                       node->varnoold,
+                       node->varoattno);
 }
 
 /*
@@ -661,22 +652,19 @@ _outVar(StringInfo str, Var *node)
 static void
 _outConst(StringInfo str, Const *node)
 {
-       char            buf[500];
+       appendStringInfo(str, 
+                       " CONST :consttype %u :constlen %d :constisnull %s :constvalue ",
+                       node->consttype,
+                       node->constlen,
+                       node->constisnull ? "true" : "false");
 
-       appendStringInfo(str, " CONST ");
-       sprintf(buf, " :consttype %u ", node->consttype);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :constlen %d ", node->constlen);
-       appendStringInfo(str, buf);
-       appendStringInfo(str, " :constisnull ");
-       appendStringInfo(str, node->constisnull ? "true" : "false");
-       appendStringInfo(str, " :constvalue ");
        if (node->constisnull)
                appendStringInfo(str, "<>");
        else
                _outDatum(str, node->constvalue, node->consttype);
-       appendStringInfo(str, " :constbyval ");
-       appendStringInfo(str, node->constbyval ? "true" : "false");
+
+       appendStringInfo(str, " :constbyval %s ", 
+                       node->constbyval ? "true" : "false");
 }
 
 /*
@@ -685,21 +673,16 @@ _outConst(StringInfo str, Const *node)
 static void
 _outAggreg(StringInfo str, Aggreg *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " AGGREG ");
-       appendStringInfo(str, " :aggname ");
-       appendStringInfo(str, (char *) node->aggname);
-       sprintf(buf, " :basetype %u ", node->basetype);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :aggtype %u ", node->aggtype);
-       appendStringInfo(str, buf);
-       appendStringInfo(str, " :target ");
+       appendStringInfo(str, 
+                       " AGGREG :aggname %s :basetype %u :aggtype %u :target ",
+                       node->aggname,
+                       node->basetype,
+                       node->aggtype);
        _outNode(str, node->target);
-       sprintf(buf, " :aggno %d ", node->aggno);
-       appendStringInfo(str, buf);
-       appendStringInfo(str, " :usenulls ");
-       appendStringInfo(str, node->usenulls ? "true" : "false");
+
+       appendStringInfo(str, ":aggno %d :usenulls %s",
+                       node->aggno,
+                       node->usenulls ? "true" : "false");
 }
 
 /*
@@ -708,17 +691,15 @@ _outAggreg(StringInfo str, Aggreg *node)
 static void
 _outSubLink(StringInfo str, SubLink *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " SUBLINK ");
-       sprintf(buf, " :subLinkType %d ", node->subLinkType);
-       appendStringInfo(str, buf);
-       appendStringInfo(str, " :useor ");
-       appendStringInfo(str, node->useor ? "true" : "false");
-       appendStringInfo(str, " :lefthand ");
+       appendStringInfo(str, 
+                       " SUBLINK :subLinkType %d :useor %s :lefthand ",
+                       node->subLinkType,
+                       node->useor ? "true" : "false");
        _outNode(str, node->lefthand);
+
        appendStringInfo(str, " :oper ");
        _outNode(str, node->oper);
+
        appendStringInfo(str, " :subselect ");
        _outNode(str, node->subselect);
 }
@@ -729,32 +710,26 @@ _outSubLink(StringInfo str, SubLink *node)
 static void
 _outArray(StringInfo str, Array *node)
 {
-       char            buf[500];
        int                     i;
 
-       appendStringInfo(str, " ARRAY ");
-       sprintf(buf, " :arrayelemtype %u ", node->arrayelemtype);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :arrayelemlength %d ", node->arrayelemlength);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :arrayelembyval %c ", (node->arrayelembyval) ? 't' : 'f');
-       appendStringInfo(str, buf);
-       sprintf(buf, " :arrayndim %d ", node->arrayndim);
-       appendStringInfo(str, buf);
+       appendStringInfo(str, 
+                       " ARRAY :arrayelemtype %u :arrayelemlength %d :arrayelembyval %c ",
+                       node->arrayelemtype, 
+                       node->arrayelemlength,
+                       node->arrayelembyval ? 't' : 'f');
+
+       appendStringInfo(str, " :arrayndim %d ", node->arrayndim);
        appendStringInfo(str, " :arraylow ");
        for (i = 0; i < node->arrayndim; i++)
        {
-               sprintf(buf, " %d ", node->arraylow.indx[i]);
-               appendStringInfo(str, buf);
+               appendStringInfo(str, " %d ", node->arraylow.indx[i]);
        }
        appendStringInfo(str, " :arrayhigh ");
        for (i = 0; i < node->arrayndim; i++)
        {
-               sprintf(buf, " %d ", node->arrayhigh.indx[i]);
-               appendStringInfo(str, buf);
+               appendStringInfo(str, " %d ", node->arrayhigh.indx[i]);
        }
-       sprintf(buf, " :arraylen %d ", node->arraylen);
-       appendStringInfo(str, buf);
+       appendStringInfo(str, " :arraylen %d ", node->arraylen);
 }
 
 /*
@@ -763,19 +738,14 @@ _outArray(StringInfo str, Array *node)
 static void
 _outArrayRef(StringInfo str, ArrayRef *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " ARRAYREF ");
-       sprintf(buf, " :refelemtype %u ", node->refelemtype);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :refattrlength %d ", node->refattrlength);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :refelemlength %d ", node->refelemlength);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :refelembyval %c ", (node->refelembyval) ? 't' : 'f');
-       appendStringInfo(str, buf);
+       appendStringInfo(str, 
+                       " ARRAYREF :refelemtype %u :refattrlength $d :refelemlength %d ",
+                       node->refelemtype,
+                       node->refattrlength,
+                       node->refelemlength);
 
-       appendStringInfo(str, " :refupperindex ");
+       appendStringInfo(str, " :refelembyval %c :refupperindex ", 
+                       node->refelembyval ? 't' : 'f');
        _outNode(str, node->refupperindexpr);
 
        appendStringInfo(str, " :reflowerindex ");
@@ -794,21 +764,15 @@ _outArrayRef(StringInfo str, ArrayRef *node)
 static void
 _outFunc(StringInfo str, Func *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " FUNC ");
-       sprintf(buf, " :funcid %u ", node->funcid);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :functype %u ", node->functype);
-       appendStringInfo(str, buf);
-       appendStringInfo(str, " :funcisindex ");
-       appendStringInfo(str, (node->funcisindex ? "true" : "false"));
-       sprintf(buf, " :funcsize %d ", node->funcsize);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :func_fcache @ 0x%x ", (int) (node->func_fcache));
-       appendStringInfo(str, buf);
-
-       appendStringInfo(str, " :func_tlist ");
+       appendStringInfo(str, 
+                       " FUNC :funcid %u :functype %u :funcisindex %s :funcsize %d ",
+                       node->funcid,
+                       node->functype,
+                       node->funcisindex ? "true" : "false",
+                       node->funcsize);
+
+       appendStringInfo(str, " :func_fcache @ 0x%x :func_tlist ",
+                       (int) node->func_fcache);
        _outNode(str, node->func_tlist);
 
        appendStringInfo(str, " :func_planlist ");
@@ -821,16 +785,11 @@ _outFunc(StringInfo str, Func *node)
 static void
 _outOper(StringInfo str, Oper *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " OPER ");
-       sprintf(buf, " :opno %u ", node->opno);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :opid %u ", node->opid);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :opresulttype %u ", node->opresulttype);
-       appendStringInfo(str, buf);
-
+       appendStringInfo(str, 
+                       " OPER :opno %u :opid %u :opresulttype %u ",
+                       node->opno,
+                       node->opid,
+                       node->opresulttype);
 }
 
 /*
@@ -839,17 +798,12 @@ _outOper(StringInfo str, Oper *node)
 static void
 _outParam(StringInfo str, Param *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " PARAM ");
-       sprintf(buf, " :paramkind %d ", node->paramkind);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :paramid %d ", node->paramid);
-       appendStringInfo(str, buf);
-       appendStringInfo(str, " :paramname ");
-       appendStringInfo(str, node->paramname);
-       sprintf(buf, " :paramtype %u ", node->paramtype);
-       appendStringInfo(str, buf);
+       appendStringInfo(str, 
+                       " PARAM :paramkind %d :paramid %d :paramname %s :paramtype %u ",
+                       node->paramkind,
+                       node->paramid,
+                       node->paramname,
+                       node->paramtype);
 
        appendStringInfo(str, " :param_tlist ");
        _outNode(str, node->param_tlist);
@@ -865,19 +819,13 @@ _outParam(StringInfo str, Param *node)
 static void
 _outEState(StringInfo str, EState *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " ESTATE ");
-       sprintf(buf, " :direction %d ", node->es_direction);
-       appendStringInfo(str, buf);
-
-       appendStringInfo(str, " :range_table ");
+       appendStringInfo(str, 
+                       " ESTATE :direction %d :range_table ",
+                       node->es_direction);
        _outNode(str, node->es_range_table);
 
-       sprintf(buf, " :result_relation_info @ 0x%x ",
+       appendStringInfo(str, " :result_relation_info @ 0x%x ",
                        (int) (node->es_result_relation_info));
-       appendStringInfo(str, buf);
-
 }
 
 /*
@@ -886,25 +834,16 @@ _outEState(StringInfo str, EState *node)
 static void
 _outRelOptInfo(StringInfo str, RelOptInfo * node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " RELOPTINFO ");
-
-       appendStringInfo(str, " :relids ");
+       appendStringInfo(str, " RELOPTINFO :relids ");
        _outIntList(str, node->relids);
 
-       appendStringInfo(str, " :indexed ");
-       appendStringInfo(str, node->indexed ? "true" : "false");
-       sprintf(buf, " :pages %u ", node->pages);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :tuples %u ", node->tuples);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :size %u ", node->size);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :width %u ", node->width);
-       appendStringInfo(str, buf);
-
-       appendStringInfo(str, " :targetlist ");
+       appendStringInfo(str, 
+                       " :indexed %s :pages %u :tuples %u :size %u :width %u :targetlist ",
+                       node->indexed ? "true" : "false",
+                       node->pages,
+                       node->tuples,
+                       node->size,
+                       node->width);
        _outNode(str, node->targetlist);
 
        appendStringInfo(str, " :pathlist ");
@@ -916,26 +855,11 @@ _outRelOptInfo(StringInfo str, RelOptInfo * node)
         * This can be changed later, if necessary.
         */
 
-       sprintf(buf, " :unorderedpath @ 0x%x ", (int) (node->unorderedpath));
-       appendStringInfo(str, buf);
-       sprintf(buf, " :cheapestpath @ 0x%x ", (int) (node->cheapestpath));
-       appendStringInfo(str, buf);
-
-       appendStringInfo(str, " :pruneable ");
-       appendStringInfo(str, node->pruneable ? "true" : "false");
-
-#if 0
-       appendStringInfo(str, " :classlist ");
-       _outNode(str, node->classlist);
-
-       appendStringInfo(str, " :indexkeys ");
-       _outNode(str, node->indexkeys);
-
-       appendStringInfo(str, " :ordering ");
-       _outNode(str, node->ordering);
-#endif
-
-       appendStringInfo(str, " :clauseinfo ");
+       appendStringInfo(str, 
+                       " :unorderedpath @ 0x%x :cheapestpath @ 0x%x :pruneable %s :clauseinfo ",
+                       (int) node->unorderedpath,
+                       (int) node->cheapestpath,
+                       node->pruneable ? "true" : "false");
        _outNode(str, node->clauseinfo);
 
        appendStringInfo(str, " :joininfo ");
@@ -943,7 +867,6 @@ _outRelOptInfo(StringInfo str, RelOptInfo * node)
 
        appendStringInfo(str, " :innerjoin ");
        _outNode(str, node->innerjoin);
-
 }
 
 /*
@@ -952,8 +875,7 @@ _outRelOptInfo(StringInfo str, RelOptInfo * node)
 static void
 _outTargetEntry(StringInfo str, TargetEntry *node)
 {
-       appendStringInfo(str, " TARGETENTRY ");
-       appendStringInfo(str, " :resdom ");
+       appendStringInfo(str, " TARGETENTRY :resdom ");
        _outNode(str, node->resdom);
 
        appendStringInfo(str, " :expr ");
@@ -963,28 +885,14 @@ _outTargetEntry(StringInfo str, TargetEntry *node)
 static void
 _outRangeTblEntry(StringInfo str, RangeTblEntry *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " RTE ");
-
-       appendStringInfo(str, " :relname ");
-       appendStringInfo(str, node->relname);
-
-       appendStringInfo(str, " :refname ");
-       appendStringInfo(str, node->refname);
-
-       sprintf(buf, " :relid %u ", node->relid);
-       appendStringInfo(str, buf);
-
-       appendStringInfo(str, " :inh ");
-       appendStringInfo(str, node->inh ? "true" : "false");
-
-       appendStringInfo(str, " :inFromCl ");
-       appendStringInfo(str, node->inFromCl ? "true" : "false");
-
-       appendStringInfo(str, " :skipAcl ");
-       appendStringInfo(str, node->skipAcl ? "true" : "false");
-
+       appendStringInfo(str, 
+                       " RTE :relname %s :refname %s :relid %u :inh %s :inFromCl %s :skipAcl %s",
+                       node->relname,
+                       node->refname,
+                       node->relid,
+                       node->inh ? "true" : "false",
+                       node->inFromCl ? "true" : "false",
+                       node->skipAcl ? "true" : "false");
 }
 
 /*
@@ -993,19 +901,10 @@ _outRangeTblEntry(StringInfo str, RangeTblEntry *node)
 static void
 _outPath(StringInfo str, Path *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " PATH ");
-
-       sprintf(buf, " :pathtype %d ", node->pathtype);
-       appendStringInfo(str, buf);
-
-       sprintf(buf, " :cost %f ", node->path_cost);
-       appendStringInfo(str, buf);
-
-       appendStringInfo(str, " :keys ");
+       appendStringInfo(str, " PATH :pathtype %d :cost %f :keys ",
+                       node->pathtype,
+                       node->path_cost);
        _outNode(str, node->keys);
-
 }
 
 /*
@@ -1014,26 +913,10 @@ _outPath(StringInfo str, Path *node)
 static void
 _outIndexPath(StringInfo str, IndexPath *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " INDEXPATH ");
-
-       sprintf(buf, " :pathtype %d ", node->path.pathtype);
-       appendStringInfo(str, buf);
-
-       /*
-        * sprintf(buf, " :parent "); appendStringInfo(str,buf); _outNode(str,
-        * node->parent);
-        */
-
-       sprintf(buf, " :cost %f ", node->path.path_cost);
-       appendStringInfo(str, buf);
-
-#if 0
-       appendStringInfo(str, " :p_ordering ");
-       _outNode(str, node->path.p_ordering);
-#endif
-       appendStringInfo(str, " :keys ");
+       appendStringInfo(str, 
+                       " INDEXPATH :pathtype %d :cost %f :keys ",
+                       node->path.pathtype,
+                       node->path.path_cost);
        _outNode(str, node->path.keys);
 
        appendStringInfo(str, " :indexid ");
@@ -1041,7 +924,6 @@ _outIndexPath(StringInfo str, IndexPath *node)
 
        appendStringInfo(str, " :indexqual ");
        _outNode(str, node->indexqual);
-
 }
 
 /*
@@ -1050,26 +932,10 @@ _outIndexPath(StringInfo str, IndexPath *node)
 static void
 _outJoinPath(StringInfo str, JoinPath *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " JOINPATH ");
-
-       sprintf(buf, " :pathtype %d ", node->path.pathtype);
-       appendStringInfo(str, buf);
-
-       /*
-        * sprintf(buf, " :parent "); appendStringInfo(str,buf); _outNode(str,
-        * node->parent);
-        */
-
-       sprintf(buf, " :cost %f ", node->path.path_cost);
-       appendStringInfo(str, buf);
-
-#if 0
-       appendStringInfo(str, " :p_ordering ");
-       _outNode(str, node->path.p_ordering);
-#endif
-       appendStringInfo(str, " :keys ");
+       appendStringInfo(str, 
+                       " JOINPATH :pathtype %d :cost %f :keys ",
+                       node->path.pathtype,
+                       node->path.path_cost);
        _outNode(str, node->path.keys);
 
        appendStringInfo(str, " :pathclauseinfo ");
@@ -1080,17 +946,12 @@ _outJoinPath(StringInfo str, JoinPath *node)
         * For now, i'll just print the addresses.
         */
 
-       sprintf(buf, " :outerjoinpath @ 0x%x ", (int) (node->outerjoinpath));
-       appendStringInfo(str, buf);
-       sprintf(buf, " :innerjoinpath @ 0x%x ", (int) (node->innerjoinpath));
-       appendStringInfo(str, buf);
-
-       sprintf(buf, " :outerjoincost %f ", node->path.outerjoincost);
-       appendStringInfo(str, buf);
-
-       appendStringInfo(str, " :joinid ");
+       appendStringInfo(str, 
+                       " :outerjoinpath @ 0x%x :innerjoinpath @ 0x%x :outjoincost %f :joinid ",
+                       (int) node->outerjoinpath,
+                       (int) node->innerjoinpath,
+                       node->path.outerjoincost);
        _outIntList(str, node->path.joinid);
-
 }
 
 /*
@@ -1099,17 +960,10 @@ _outJoinPath(StringInfo str, JoinPath *node)
 static void
 _outMergePath(StringInfo str, MergePath *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " MERGEPATH ");
-
-       sprintf(buf, " :pathtype %d ", node->jpath.path.pathtype);
-       appendStringInfo(str, buf);
-
-       sprintf(buf, " :cost %f ", node->jpath.path.path_cost);
-       appendStringInfo(str, buf);
-
-       appendStringInfo(str, " :keys ");
+       appendStringInfo(str, 
+                       " MERGEPATH :pathtype %d :cost %f :keys ",
+                       node->jpath.path.pathtype,
+                       node->jpath.path.path_cost);
        _outNode(str, node->jpath.path.keys);
 
        appendStringInfo(str, " :pathclauseinfo ");
@@ -1120,15 +974,11 @@ _outMergePath(StringInfo str, MergePath *node)
         * For now, i'll just print the addresses.
         */
 
-       sprintf(buf, " :outerjoinpath @ 0x%x ", (int) (node->jpath.outerjoinpath));
-       appendStringInfo(str, buf);
-       sprintf(buf, " :innerjoinpath @ 0x%x ", (int) (node->jpath.innerjoinpath));
-       appendStringInfo(str, buf);
-
-       sprintf(buf, " :outerjoincost %f ", node->jpath.path.outerjoincost);
-       appendStringInfo(str, buf);
-
-       appendStringInfo(str, " :joinid ");
+       appendStringInfo(str, 
+                       " :outerjoinpath @ 0x%x :innerjoinpath @ 0x%x :outerjoincost %f :joinid ",
+                       (int) node->jpath.outerjoinpath,
+                       (int) node->jpath.innerjoinpath,
+                       (int) node->jpath.path.outerjoincost);
        _outIntList(str, node->jpath.path.joinid);
 
        appendStringInfo(str, " :path_mergeclauses ");
@@ -1139,7 +989,6 @@ _outMergePath(StringInfo str, MergePath *node)
 
        appendStringInfo(str, " :innersortkeys ");
        _outNode(str, node->innersortkeys);
-
 }
 
 /*
@@ -1148,17 +997,10 @@ _outMergePath(StringInfo str, MergePath *node)
 static void
 _outHashPath(StringInfo str, HashPath *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " HASHPATH ");
-
-       sprintf(buf, " :pathtype %d ", node->jpath.path.pathtype);
-       appendStringInfo(str, buf);
-
-       sprintf(buf, " :cost %f ", node->jpath.path.path_cost);
-       appendStringInfo(str, buf);
-
-       appendStringInfo(str, " :keys ");
+       appendStringInfo(str, 
+                       " HASHPATH :pathtype %d :cost %f :keys ",
+                       node->jpath.path.pathtype,
+                       node->jpath.path.path_cost);
        _outNode(str, node->jpath.path.keys);
 
        appendStringInfo(str, " :pathclauseinfo ");
@@ -1169,15 +1011,11 @@ _outHashPath(StringInfo str, HashPath *node)
         * For now, i'll just print the addresses.
         */
 
-       sprintf(buf, " :outerjoinpath @ 0x%x ", (int) (node->jpath.outerjoinpath));
-       appendStringInfo(str, buf);
-       sprintf(buf, " :innerjoinpath @ 0x%x ", (int) (node->jpath.innerjoinpath));
-       appendStringInfo(str, buf);
-
-       sprintf(buf, " :outerjoincost %f ", node->jpath.path.outerjoincost);
-       appendStringInfo(str, buf);
-
-       appendStringInfo(str, " :joinid ");
+       appendStringInfo(str, 
+                       " :outerjoinpath @ 0x%x :innerjoinpath @ 0x%x :outerjoincost %f :joinid ",
+                       (int) node->jpath.outerjoinpath,
+                       (int) node->jpath.innerjoinpath,
+                       node->jpath.path.outerjoincost);
        _outIntList(str, node->jpath.path.joinid);
 
        appendStringInfo(str, " :path_hashclauses ");
@@ -1188,7 +1026,6 @@ _outHashPath(StringInfo str, HashPath *node)
 
        appendStringInfo(str, " :innerhashkeys ");
        _outNode(str, node->innerhashkeys);
-
 }
 
 /*
@@ -1197,14 +1034,10 @@ _outHashPath(StringInfo str, HashPath *node)
 static void
 _outOrderKey(StringInfo str, OrderKey *node)
 {
-       char            buf[500];
-
-       appendStringInfo(str, " ORDERKEY ");
-       sprintf(buf, " :attribute_number %d ", node->attribute_number);
-       appendStringInfo(str, buf);
-       sprintf(buf, " :array_index %d ", node->array_index);
-       appendStringInfo(str, buf);
-
+       appendStringInfo(str, 
+                       " ORDERKEY :attribute_number %d :array_index %d ",
+                       node->attribute_number,
+                       node->array_index);
 }
 
 /*