From 5788cca55825f75fcf9dcefbccad58b88610a134 Mon Sep 17 00:00:00 2001
From: Neil Conway <neilc@samurai.com>
Date: Sat, 4 Jun 2005 02:07:09 +0000
Subject: [PATCH] Remove unused 'printCost' field from ExplainState, and
 simplify the code accordingly (this field was always initialized to true).
 Patch from Alvaro Herrera.

---
 src/backend/commands/explain.c | 67 ++++++++++++++--------------------
 1 file changed, 28 insertions(+), 39 deletions(-)

diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index af3b5fb0f5b..0a330a2137e 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.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 @@
 typedef struct ExplainState
 {
 	/* options */
-	bool		printCost;		/* print cost */
 	bool		printNodes;		/* do nodeToString() too */
 	bool		printAnalyze;	/* print actual times */
 	/* other states */
@@ -246,7 +245,6 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt,
 
 	es = (ExplainState *) palloc0(sizeof(ExplainState));
 
-	es->printCost = true;		/* default */
 	es->printNodes = stmt->verbose;
 	es->printAnalyze = stmt->analyze;
 	es->rtable = queryDesc->parsetree->rtable;
@@ -266,18 +264,14 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt,
 			pfree(s);
 			do_text_output_multiline(tstate, f);
 			pfree(f);
-			if (es->printCost)
-				do_text_output_oneline(tstate, "");		/* separator line */
+			do_text_output_oneline(tstate, "");		/* separator line */
 		}
 	}
 
 	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
@@ -358,13 +352,10 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt,
 
 	totaltime += elapsed_time(&starttime);
 
-	if (es->printCost)
-	{
-		if (stmt->analyze)
-			appendStringInfo(str, "Total runtime: %.3f ms\n",
-							 1000.0 * totaltime);
-		do_text_output_multiline(tstate, str->data);
-	}
+	if (stmt->analyze)
+		appendStringInfo(str, "Total runtime: %.3f ms\n",
+						 1000.0 * totaltime);
+	do_text_output_multiline(tstate, str->data);
 
 	pfree(str->data);
 	pfree(str);
@@ -667,32 +658,30 @@ explain_outNode(StringInfo str,
 		default:
 			break;
 	}
-	if (es->printCost)
-	{
-		appendStringInfo(str, "  (cost=%.2f..%.2f rows=%.0f width=%d)",
-						 plan->startup_cost, plan->total_cost,
-						 plan->plan_rows, plan->plan_width);
+	
+	appendStringInfo(str, "  (cost=%.2f..%.2f rows=%.0f width=%d)",
+					 plan->startup_cost, plan->total_cost,
+					 plan->plan_rows, plan->plan_width);
 
-		/*
-		 * We have to forcibly clean up the instrumentation state because
-		 * we haven't done ExecutorEnd yet.  This is pretty grotty ...
-		 */
-		if (planstate->instrument)
-			InstrEndLoop(planstate->instrument);
+	/*
+	 * We have to forcibly clean up the instrumentation state because
+	 * we haven't done ExecutorEnd yet.  This is pretty grotty ...
+	 */
+	if (planstate->instrument)
+		InstrEndLoop(planstate->instrument);
 
-		if (planstate->instrument && planstate->instrument->nloops > 0)
-		{
-			double		nloops = planstate->instrument->nloops;
+	if (planstate->instrument && planstate->instrument->nloops > 0)
+	{
+		double		nloops = planstate->instrument->nloops;
 
-			appendStringInfo(str, " (actual time=%.3f..%.3f rows=%.0f loops=%.0f)",
-						1000.0 * planstate->instrument->startup / nloops,
-						  1000.0 * planstate->instrument->total / nloops,
-							 planstate->instrument->ntuples / nloops,
-							 planstate->instrument->nloops);
-		}
-		else if (es->printAnalyze)
-			appendStringInfo(str, " (never executed)");
+		appendStringInfo(str, " (actual time=%.3f..%.3f rows=%.0f loops=%.0f)",
+					1000.0 * planstate->instrument->startup / nloops,
+					  1000.0 * planstate->instrument->total / nloops,
+						 planstate->instrument->ntuples / nloops,
+						 planstate->instrument->nloops);
 	}
+	else if (es->printAnalyze)
+		appendStringInfo(str, " (never executed)");
 	appendStringInfoChar(str, '\n');
 
 	/* quals, sort keys, etc */
-- 
GitLab