Commit 5788cca5 authored by Neil Conway's avatar Neil Conway

Remove unused 'printCost' field from ExplainState, and simplify the code

accordingly (this field was always initialized to true). Patch from
Alvaro Herrera.
parent ba420024
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994-5, Regents of the University of California * Portions Copyright (c) 1994-5, Regents of the University of California
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/explain.c,v 1.136 2005/06/03 23:05:28 tgl Exp $ * $PostgreSQL: pgsql/src/backend/commands/explain.c,v 1.137 2005/06/04 02:07:09 neilc Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -38,7 +38,6 @@ ...@@ -38,7 +38,6 @@
typedef struct ExplainState typedef struct ExplainState
{ {
/* options */ /* options */
bool printCost; /* print cost */
bool printNodes; /* do nodeToString() too */ bool printNodes; /* do nodeToString() too */
bool printAnalyze; /* print actual times */ bool printAnalyze; /* print actual times */
/* other states */ /* other states */
...@@ -246,7 +245,6 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt, ...@@ -246,7 +245,6 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt,
es = (ExplainState *) palloc0(sizeof(ExplainState)); es = (ExplainState *) palloc0(sizeof(ExplainState));
es->printCost = true; /* default */
es->printNodes = stmt->verbose; es->printNodes = stmt->verbose;
es->printAnalyze = stmt->analyze; es->printAnalyze = stmt->analyze;
es->rtable = queryDesc->parsetree->rtable; es->rtable = queryDesc->parsetree->rtable;
...@@ -266,18 +264,14 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt, ...@@ -266,18 +264,14 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt,
pfree(s); pfree(s);
do_text_output_multiline(tstate, f); do_text_output_multiline(tstate, f);
pfree(f); pfree(f);
if (es->printCost) do_text_output_oneline(tstate, ""); /* separator line */
do_text_output_oneline(tstate, ""); /* separator line */
} }
} }
str = makeStringInfo(); str = makeStringInfo();
if (es->printCost) explain_outNode(str, queryDesc->plantree, queryDesc->planstate,
{ NULL, 0, es);
explain_outNode(str, queryDesc->plantree, queryDesc->planstate,
NULL, 0, es);
}
/* /*
* If we ran the command, run any AFTER triggers it queued. (Note this * If we ran the command, run any AFTER triggers it queued. (Note this
...@@ -358,13 +352,10 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt, ...@@ -358,13 +352,10 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt,
totaltime += elapsed_time(&starttime); totaltime += elapsed_time(&starttime);
if (es->printCost) if (stmt->analyze)
{ appendStringInfo(str, "Total runtime: %.3f ms\n",
if (stmt->analyze) 1000.0 * totaltime);
appendStringInfo(str, "Total runtime: %.3f ms\n", do_text_output_multiline(tstate, str->data);
1000.0 * totaltime);
do_text_output_multiline(tstate, str->data);
}
pfree(str->data); pfree(str->data);
pfree(str); pfree(str);
...@@ -667,32 +658,30 @@ explain_outNode(StringInfo str, ...@@ -667,32 +658,30 @@ explain_outNode(StringInfo str,
default: default:
break; break;
} }
if (es->printCost)
{ appendStringInfo(str, " (cost=%.2f..%.2f rows=%.0f width=%d)",
appendStringInfo(str, " (cost=%.2f..%.2f rows=%.0f width=%d)", plan->startup_cost, plan->total_cost,
plan->startup_cost, plan->total_cost, plan->plan_rows, plan->plan_width);
plan->plan_rows, plan->plan_width);
/* /*
* We have to forcibly clean up the instrumentation state because * We have to forcibly clean up the instrumentation state because
* we haven't done ExecutorEnd yet. This is pretty grotty ... * we haven't done ExecutorEnd yet. This is pretty grotty ...
*/ */
if (planstate->instrument) if (planstate->instrument)
InstrEndLoop(planstate->instrument); InstrEndLoop(planstate->instrument);
if (planstate->instrument && planstate->instrument->nloops > 0) if (planstate->instrument && planstate->instrument->nloops > 0)
{ {
double nloops = planstate->instrument->nloops; double nloops = planstate->instrument->nloops;
appendStringInfo(str, " (actual time=%.3f..%.3f rows=%.0f loops=%.0f)", appendStringInfo(str, " (actual time=%.3f..%.3f rows=%.0f loops=%.0f)",
1000.0 * planstate->instrument->startup / nloops, 1000.0 * planstate->instrument->startup / nloops,
1000.0 * planstate->instrument->total / nloops, 1000.0 * planstate->instrument->total / nloops,
planstate->instrument->ntuples / nloops, planstate->instrument->ntuples / nloops,
planstate->instrument->nloops); planstate->instrument->nloops);
}
else if (es->printAnalyze)
appendStringInfo(str, " (never executed)");
} }
else if (es->printAnalyze)
appendStringInfo(str, " (never executed)");
appendStringInfoChar(str, '\n'); appendStringInfoChar(str, '\n');
/* quals, sort keys, etc */ /* quals, sort keys, etc */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment