Change EXPLAIN options to just use VERBOSE.

This commit is contained in:
Bruce Momjian 1997-01-16 14:56:59 +00:00
parent b00c2c1d3f
commit 3a02ccfa1d
6 changed files with 19 additions and 40 deletions

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.7 1996/12/29 19:30:55 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.8 1997/01/16 14:55:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -41,7 +41,7 @@ static char *Explain_PlanToString(Plan *plan, ExplainState *es);
*
*/
void
ExplainQuery(Query *query, List *options, CommandDest dest)
ExplainQuery(Query *query, bool verbose, CommandDest dest)
{
char *s = NULL, *s2;
Plan *plan;
@ -68,25 +68,10 @@ ExplainQuery(Query *query, List *options, CommandDest dest)
es = (ExplainState*)malloc(sizeof(ExplainState));
memset(es, 0, sizeof(ExplainState));
/* parse options */
while (options) {
char *ostr = strVal(lfirst(options));
if (!strcasecmp(ostr, "cost"))
es->printCost = true;
else if (!strcasecmp(ostr, "plan"))
es->printNodes = true;
else if (!strcasecmp(ostr, "full")) {
es->printCost = true;
es->printNodes = true;
}
else
elog(WARN, "Unknown EXPLAIN option: %s", ostr);
es->printCost = true; /* default */
options = lnext(options);
}
if (!es->printCost && !es->printNodes)
es->printCost = true; /* default */
if (verbose)
es->printNodes = true;
es->rtable = query->rtable;

View File

@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.24 1997/01/13 03:44:18 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.25 1997/01/16 14:56:05 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@ -131,7 +131,7 @@ static Node *makeA_Expr(int oper, char *opname, Node *lexpr, Node *rexpr);
sort_clause, sortby_list, index_params,
name_list, from_clause, from_list, opt_array_bounds, nest_array_bounds,
expr_list, attrs, res_target_list, res_target_list2,
def_list, opt_indirection, group_clause, groupby_list, explain_options
def_list, opt_indirection, group_clause, groupby_list
%type <boolean> opt_inh_star, opt_binary, opt_instead, opt_with_copy,
index_opt_unique, opt_verbose
@ -1227,21 +1227,15 @@ opt_verbose: VERBOSE { $$ = TRUE; }
*
*****************************************************************************/
ExplainStmt: EXPLAIN explain_options OptimizableStmt
ExplainStmt: EXPLAIN opt_verbose OptimizableStmt
{
ExplainStmt *n = makeNode(ExplainStmt);
n->verbose = $2;
n->query = (Query*)$3;
n->options = $2;
$$ = (Node *)n;
}
;
explain_options: WITH name_list
{ $$ = $2; }
| /*EMPTY*/
{ $$ = NIL; }
;
/*****************************************************************************
* *
* Optimizable Stmts: *

View File

@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.10 1997/01/13 03:44:38 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.11 1997/01/16 14:56:21 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -591,7 +591,7 @@ ProcessUtility(Node *parsetree,
commandTag = "EXPLAIN";
CHECK_IF_ABORTED();
ExplainQuery(stmt->query, stmt->options, dest);
ExplainQuery(stmt->query, stmt->verbose, dest);
}
break;

View File

@ -5,13 +5,13 @@
*
* Copyright (c) 1994-5, Regents of the University of California
*
* $Id: explain.h,v 1.1 1996/08/28 07:21:47 scrappy Exp $
* $Id: explain.h,v 1.2 1997/01/16 14:56:34 momjian Exp $
*
*-------------------------------------------------------------------------
*/
#ifndef EXPLAIN_H
#define EXPLAIN_H
extern void ExplainQuery(Query *query, List *options, CommandDest dest);
extern void ExplainQuery(Query *query, bool verbose, CommandDest dest);
#endif /* EXPLAIN_H*/

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: parsenodes.h,v 1.9 1997/01/13 03:45:02 momjian Exp $
* $Id: parsenodes.h,v 1.10 1997/01/16 14:56:45 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -408,7 +408,7 @@ typedef struct VacuumStmt {
typedef struct ExplainStmt {
NodeTag type;
Query *query; /* the query */
List *options;
bool verbose; /* print plan info */
} ExplainStmt;

View File

@ -1,17 +1,17 @@
.\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here....
.\" $Header: /cvsroot/pgsql/src/man/Attic/explain.l,v 1.3 1996/12/29 19:31:16 momjian Exp $
.\" $Header: /cvsroot/pgsql/src/man/Attic/explain.l,v 1.4 1997/01/16 14:56:59 momjian Exp $
.TH EXPLAIN SQL 11/05/95 PostgreSQL PostgreSQL
.SH NAME
explain \(em explains statement execution details
.SH SYNOPSIS
.nf
\fBexplain [with\fP \fB{cost|plan|full}]\fR query
\fBexplain [verbose]\fR query
.fi
.SH DESCRIPTION
This command outputs details about the supplied query. The default
output is the computed query cost. \f2plan\f1 displays the full query
plan. \f2full\f1 display both query plan and query cost.
output is the computed query cost. \f2verbose\f1 displays the full query
plan and cost.
.PP
The query cost and plan can be affected by running vacuum.