Change EXPLAIN options to just use VERBOSE.
This commit is contained in:
parent
b00c2c1d3f
commit
3a02ccfa1d
@ -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;
|
||||
|
||||
|
@ -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: *
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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*/
|
||||
|
@ -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;
|
||||
|
||||
|
||||
|
@ -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.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user