diff options
Diffstat (limited to 'src/backend/commands/explain.c')
-rw-r--r-- | src/backend/commands/explain.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 755a64a9446..767d4c9f806 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994-5, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/explain.c,v 1.144 2006/02/28 04:10:27 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/explain.c,v 1.145 2006/03/01 06:51:01 neilc Exp $ * *------------------------------------------------------------------------- */ @@ -232,7 +232,7 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt, instr_time starttime; double totaltime = 0; ExplainState *es; - StringInfo str; + StringInfoData buf; int eflags; INSTR_TIME_SET_CURRENT(starttime); @@ -285,9 +285,8 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt, } } - str = makeStringInfo(); - - explain_outNode(str, queryDesc->plantree, queryDesc->planstate, + initStringInfo(&buf); + explain_outNode(&buf, queryDesc->plantree, queryDesc->planstate, NULL, 0, es); /* @@ -335,18 +334,18 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt, if (trig->tgisconstraint && (conname = GetConstraintNameForTrigger(trig->tgoid)) != NULL) { - appendStringInfo(str, "Trigger for constraint %s", + appendStringInfo(&buf, "Trigger for constraint %s", conname); pfree(conname); } else - appendStringInfo(str, "Trigger %s", trig->tgname); + appendStringInfo(&buf, "Trigger %s", trig->tgname); if (numrels > 1) - appendStringInfo(str, " on %s", + appendStringInfo(&buf, " on %s", RelationGetRelationName(rInfo->ri_RelationDesc)); - appendStringInfo(str, ": time=%.3f calls=%.0f\n", + appendStringInfo(&buf, ": time=%.3f calls=%.0f\n", 1000.0 * instr->total, instr->ntuples); } @@ -370,12 +369,11 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt, totaltime += elapsed_time(&starttime); if (stmt->analyze) - appendStringInfo(str, "Total runtime: %.3f ms\n", + appendStringInfo(&buf, "Total runtime: %.3f ms\n", 1000.0 * totaltime); - do_text_output_multiline(tstate, str->data); + do_text_output_multiline(tstate, buf.data); - pfree(str->data); - pfree(str); + pfree(buf.data); pfree(es); } |