More cleanups ... this is one big file *sigh*
authorMarc G. Fournier
Tue, 15 Dec 1998 04:00:46 +0000 (04:00 +0000)
committerMarc G. Fournier
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);
 }
 
 /*