mirror of
https://github.com/postgres/postgres.git
synced 2025-11-10 17:42:29 +03:00
more cleanups...of note, appendStringInfo now performs like sprintf(),
where you state a format and arguments. the old behavior required each appendStringInfo to have to have a sprintf() before it if any formatting was required. Also shortened several instances where there were multiple appendStringInfo() calls in a row, doing nothing more then adding one more word to the String, instead of doing them all in one call.
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
/*
|
||||
*
|
||||
* outfuncs.c--
|
||||
* routines to convert a node to ascii representation
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: outfuncs.c,v 1.51 1998/12/14 06:50:28 scrappy Exp $
|
||||
* $Id: outfuncs.c,v 1.52 1998/12/14 08:11:09 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* Every (plan) node in POSTGRES has an associated "out" routine which
|
||||
@@ -18,7 +18,6 @@
|
||||
* passed to them. This argument contains the string holding the ASCII
|
||||
* representation plus some other information (string length, etc.)
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include "postgres.h"
|
||||
@@ -57,14 +56,12 @@ static void _outNode(StringInfo str, void *obj);
|
||||
static void
|
||||
_outIntList(StringInfo str, List *list)
|
||||
{
|
||||
List *l;
|
||||
char buf[500];
|
||||
List *l;
|
||||
|
||||
appendStringInfo(str, "(");
|
||||
foreach(l, list)
|
||||
{
|
||||
sprintf(buf, " %d ", (int) lfirst(l));
|
||||
appendStringInfo(str, buf);
|
||||
appendStringInfo(str, " %d ", (int) lfirst(l));
|
||||
}
|
||||
appendStringInfo(str, ")");
|
||||
}
|
||||
@@ -72,11 +69,8 @@ _outIntList(StringInfo str, List *list)
|
||||
static void
|
||||
_outCreateStmt(StringInfo str, CreateStmt *node)
|
||||
{
|
||||
appendStringInfo(str, " CREATE ");
|
||||
appendStringInfo(str, " CREATE :relname %s :columns ", node->relname);
|
||||
|
||||
appendStringInfo(str, " :relname ");
|
||||
appendStringInfo(str, node->relname);
|
||||
appendStringInfo(str, " :columns ");
|
||||
_outNode(str, node->tableElts);
|
||||
appendStringInfo(str, " :inhRelnames ");
|
||||
_outNode(str, node->inhRelnames);
|
||||
@@ -87,15 +81,10 @@ _outCreateStmt(StringInfo str, CreateStmt *node)
|
||||
static void
|
||||
_outIndexStmt(StringInfo str, IndexStmt *node)
|
||||
{
|
||||
appendStringInfo(str, " INDEX ");
|
||||
appendStringInfo(str,
|
||||
" INDEX :idxname %s :relname %s :accessMethod %s :indexParams ",
|
||||
node->idxname, node->relname, node->accessMethod);
|
||||
|
||||
appendStringInfo(str, " :idxname ");
|
||||
appendStringInfo(str, node->idxname);
|
||||
appendStringInfo(str, " :relname ");
|
||||
appendStringInfo(str, node->relname);
|
||||
appendStringInfo(str, " :accessMethod ");
|
||||
appendStringInfo(str, node->accessMethod);
|
||||
appendStringInfo(str, " :indexParams ");
|
||||
_outNode(str, node->indexParams);
|
||||
appendStringInfo(str, " :withClause ");
|
||||
_outNode(str, node->withClause);
|
||||
@@ -103,28 +92,24 @@ _outIndexStmt(StringInfo str, IndexStmt *node)
|
||||
_outNode(str, node->whereClause);
|
||||
appendStringInfo(str, " :rangetable ");
|
||||
_outNode(str, node->rangetable);
|
||||
appendStringInfo(str, " :lossy ");
|
||||
appendStringInfo(str, (node->lossy ? "true" : "false"));
|
||||
appendStringInfo(str, " :unique ");
|
||||
appendStringInfo(str, (node->unique ? "true" : "false"));
|
||||
|
||||
appendStringInfo(str, " :lossy %s :unique %s ",
|
||||
node->lossy ? "true" : "false",
|
||||
node->unique ? "true" : "false");
|
||||
}
|
||||
|
||||
#ifdef PARSEDEBUG
|
||||
static void
|
||||
_outSelectStmt(StringInfo str, SelectStmt *node)
|
||||
{
|
||||
appendStringInfo(str, "SELECT");
|
||||
|
||||
appendStringInfo(str, " :where ");
|
||||
appendStringInfo(str, "SELECT :where ");
|
||||
_outNode(str, node->whereClause);
|
||||
}
|
||||
|
||||
static void
|
||||
_outFuncCall(StringInfo str, FuncCall *node)
|
||||
{
|
||||
appendStringInfo(str, "FUNCTION ");
|
||||
appendStringInfo(str, node->funcname);
|
||||
appendStringInfo(str, " :args ");
|
||||
appendStringInfo(str, "FUNCTION %s :args ", node->funcname);
|
||||
_outNode(str, node->args);
|
||||
}
|
||||
|
||||
@@ -133,24 +118,18 @@ _outFuncCall(StringInfo str, FuncCall *node)
|
||||
static void
|
||||
_outColumnDef(StringInfo str, ColumnDef *node)
|
||||
{
|
||||
appendStringInfo(str, " COLUMNDEF ");
|
||||
|
||||
appendStringInfo(str, " :colname ");
|
||||
appendStringInfo(str, node->colname);
|
||||
appendStringInfo(str, " :typename ");
|
||||
appendStringInfo(str, " COLUMNDEF :colname %s :typename ", node->colname);
|
||||
_outNode(str, node->typename);
|
||||
appendStringInfo(str, " :is_not_null ");
|
||||
appendStringInfo(str, (node->is_not_null ? "true" : "false"));
|
||||
appendStringInfo(str, " :defval ");
|
||||
appendStringInfo(str, node->defval);
|
||||
appendStringInfo(str, " :constraints ");
|
||||
|
||||
appendStringInfo(str, " :is_not_null %s :defval %s :constraints ",
|
||||
node->is_not_null ? "true" : "false", node->defval);
|
||||
_outNode(str, node->constraints);
|
||||
}
|
||||
|
||||
static void
|
||||
_outTypeName(StringInfo str, TypeName *node)
|
||||
{
|
||||
char buf[500];
|
||||
char buf[500];
|
||||
|
||||
appendStringInfo(str, " TYPENAME ");
|
||||
|
||||
@@ -161,7 +140,7 @@ _outTypeName(StringInfo str, TypeName *node)
|
||||
appendStringInfo(str, " :setof ");
|
||||
appendStringInfo(str, (node->setof ? "true" : "false"));
|
||||
appendStringInfo(str, " :typmod ");
|
||||
sprintf(buf, " %d ", node->typmod);
|
||||
snprintf(buf, 500, " %d ", node->typmod);
|
||||
appendStringInfo(str, buf);
|
||||
appendStringInfo(str, " :arrayBounds ");
|
||||
_outNode(str, node->arrayBounds);
|
||||
@@ -185,12 +164,12 @@ _outIndexElem(StringInfo str, IndexElem *node)
|
||||
static void
|
||||
_outQuery(StringInfo str, Query *node)
|
||||
{
|
||||
char buf[500];
|
||||
char buf[500];
|
||||
|
||||
appendStringInfo(str, " QUERY ");
|
||||
|
||||
appendStringInfo(str, " :command ");
|
||||
sprintf(buf, " %d ", node->commandType);
|
||||
snprintf(buf, 500, " %d ", node->commandType);
|
||||
appendStringInfo(str, buf);
|
||||
|
||||
if (node->utilityStmt)
|
||||
@@ -227,7 +206,7 @@ _outQuery(StringInfo str, Query *node)
|
||||
}
|
||||
|
||||
appendStringInfo(str, " :resultRelation ");
|
||||
sprintf(buf, " %d ", node->resultRelation);
|
||||
snprintf(buf, 500, " %d ", node->resultRelation);
|
||||
appendStringInfo(str, buf);
|
||||
appendStringInfo(str, " :into ");
|
||||
appendStringInfo(str, node->into);
|
||||
@@ -266,28 +245,28 @@ _outQuery(StringInfo str, Query *node)
|
||||
static void
|
||||
_outSortClause(StringInfo str, SortClause *node)
|
||||
{
|
||||
char buf[500];
|
||||
char buf[500];
|
||||
|
||||
appendStringInfo(str, " SORTCLAUSE ");
|
||||
|
||||
appendStringInfo(str, " :resdom ");
|
||||
_outNode(str, node->resdom);
|
||||
appendStringInfo(str, " :opoid ");
|
||||
sprintf(buf, " %u ", node->opoid);
|
||||
snprintf(buf, 500, " %u ", node->opoid);
|
||||
appendStringInfo(str, buf);
|
||||
}
|
||||
|
||||
static void
|
||||
_outGroupClause(StringInfo str, GroupClause *node)
|
||||
{
|
||||
char buf[500];
|
||||
char buf[500];
|
||||
|
||||
appendStringInfo(str, " GROUPCLAUSE ");
|
||||
|
||||
appendStringInfo(str, " :entry ");
|
||||
_outNode(str, node->entry);
|
||||
appendStringInfo(str, " :grpOpoid ");
|
||||
sprintf(buf, " %u ", node->grpOpoid);
|
||||
snprintf(buf, 500, " %u ", node->grpOpoid);
|
||||
appendStringInfo(str, buf);
|
||||
}
|
||||
|
||||
@@ -297,13 +276,13 @@ _outGroupClause(StringInfo str, GroupClause *node)
|
||||
static void
|
||||
_outPlanInfo(StringInfo str, Plan *node)
|
||||
{
|
||||
char buf[500];
|
||||
char buf[500];
|
||||
|
||||
sprintf(buf, " :cost %g ", node->cost);
|
||||
snprintf(buf, 500, " :cost %g ", node->cost);
|
||||
appendStringInfo(str, buf);
|
||||
sprintf(buf, " :size %d ", node->plan_size);
|
||||
snprintf(buf, 500, " :size %d ", node->plan_size);
|
||||
appendStringInfo(str, buf);
|
||||
sprintf(buf, " :width %d ", node->plan_width);
|
||||
snprintf(buf, 500, " :width %d ", node->plan_width);
|
||||
appendStringInfo(str, buf);
|
||||
appendStringInfo(str, " :state ");
|
||||
appendStringInfo(str, node->state ? "not-NULL" : "<>");
|
||||
@@ -321,7 +300,7 @@ _outPlanInfo(StringInfo str, Plan *node)
|
||||
_outIntList(str, node->locParam);
|
||||
appendStringInfo(str, " :initplan ");
|
||||
_outNode(str, node->initPlan);
|
||||
sprintf(buf, " :nprm %d ", node->nParamExec);
|
||||
snprintf(buf, 500, " :nprm %d ", node->nParamExec);
|
||||
appendStringInfo(str, buf);
|
||||
}
|
||||
|
||||
@@ -363,7 +342,7 @@ _outAppend(StringInfo str, Append *node)
|
||||
appendStringInfo(str, " :unionrtables ");
|
||||
_outNode(str, node->unionrtables);
|
||||
|
||||
sprintf(buf, " :inheritrelid %d ", node->inheritrelid);
|
||||
snprintf(buf, 500, " :inheritrelid %d ", node->inheritrelid);
|
||||
appendStringInfo(str, buf);
|
||||
|
||||
appendStringInfo(str, " :inheritrtable ");
|
||||
@@ -406,13 +385,13 @@ _outMergeJoin(StringInfo str, MergeJoin *node)
|
||||
appendStringInfo(str, " :mergeclauses ");
|
||||
_outNode(str, node->mergeclauses);
|
||||
|
||||
sprintf(buf, " :mergejoinop %u ", node->mergejoinop);
|
||||
snprintf(buf, 500, " :mergejoinop %u ", node->mergejoinop);
|
||||
appendStringInfo(str, buf);
|
||||
|
||||
sprintf(buf, " :mergerightorder %u ", node->mergerightorder[0]);
|
||||
snprintf(buf, 500, " :mergerightorder %u ", node->mergerightorder[0]);
|
||||
appendStringInfo(str, buf);
|
||||
|
||||
sprintf(buf, " :mergeleftorder %u ", node->mergeleftorder[0]);
|
||||
snprintf(buf, 500, " :mergeleftorder %u ", node->mergeleftorder[0]);
|
||||
appendStringInfo(str, buf);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user