Commit 3a02ccfa authored by Bruce Momjian's avatar Bruce Momjian

Change EXPLAIN options to just use VERBOSE.

parent b00c2c1d
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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); ...@@ -41,7 +41,7 @@ static char *Explain_PlanToString(Plan *plan, ExplainState *es);
* *
*/ */
void void
ExplainQuery(Query *query, List *options, CommandDest dest) ExplainQuery(Query *query, bool verbose, CommandDest dest)
{ {
char *s = NULL, *s2; char *s = NULL, *s2;
Plan *plan; Plan *plan;
...@@ -68,26 +68,11 @@ ExplainQuery(Query *query, List *options, CommandDest dest) ...@@ -68,26 +68,11 @@ ExplainQuery(Query *query, List *options, CommandDest dest)
es = (ExplainState*)malloc(sizeof(ExplainState)); es = (ExplainState*)malloc(sizeof(ExplainState));
memset(es, 0, 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);
options = lnext(options);
}
if (!es->printCost && !es->printNodes)
es->printCost = true; /* default */ es->printCost = true; /* default */
if (verbose)
es->printNodes = true;
es->rtable = query->rtable; es->rtable = query->rtable;
if (es->printNodes) if (es->printNodes)
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
* *
* *
* IDENTIFICATION * 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 * HISTORY
* AUTHOR DATE MAJOR EVENT * AUTHOR DATE MAJOR EVENT
...@@ -131,7 +131,7 @@ static Node *makeA_Expr(int oper, char *opname, Node *lexpr, Node *rexpr); ...@@ -131,7 +131,7 @@ static Node *makeA_Expr(int oper, char *opname, Node *lexpr, Node *rexpr);
sort_clause, sortby_list, index_params, sort_clause, sortby_list, index_params,
name_list, from_clause, from_list, opt_array_bounds, nest_array_bounds, name_list, from_clause, from_list, opt_array_bounds, nest_array_bounds,
expr_list, attrs, res_target_list, res_target_list2, 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, %type <boolean> opt_inh_star, opt_binary, opt_instead, opt_with_copy,
index_opt_unique, opt_verbose index_opt_unique, opt_verbose
...@@ -1227,21 +1227,15 @@ opt_verbose: VERBOSE { $$ = TRUE; } ...@@ -1227,21 +1227,15 @@ opt_verbose: VERBOSE { $$ = TRUE; }
* *
*****************************************************************************/ *****************************************************************************/
ExplainStmt: EXPLAIN explain_options OptimizableStmt ExplainStmt: EXPLAIN opt_verbose OptimizableStmt
{ {
ExplainStmt *n = makeNode(ExplainStmt); ExplainStmt *n = makeNode(ExplainStmt);
n->verbose = $2;
n->query = (Query*)$3; n->query = (Query*)$3;
n->options = $2;
$$ = (Node *)n; $$ = (Node *)n;
} }
; ;
explain_options: WITH name_list
{ $$ = $2; }
| /*EMPTY*/
{ $$ = NIL; }
;
/***************************************************************************** /*****************************************************************************
* * * *
* Optimizable Stmts: * * Optimizable Stmts: *
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* *
* *
* IDENTIFICATION * 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, ...@@ -591,7 +591,7 @@ ProcessUtility(Node *parsetree,
commandTag = "EXPLAIN"; commandTag = "EXPLAIN";
CHECK_IF_ABORTED(); CHECK_IF_ABORTED();
ExplainQuery(stmt->query, stmt->options, dest); ExplainQuery(stmt->query, stmt->verbose, dest);
} }
break; break;
......
...@@ -5,13 +5,13 @@ ...@@ -5,13 +5,13 @@
* *
* Copyright (c) 1994-5, Regents of the University of California * 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 #ifndef EXPLAIN_H
#define 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*/ #endif /* EXPLAIN_H*/
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* *
* Copyright (c) 1994, Regents of the University of California * 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 { ...@@ -408,7 +408,7 @@ typedef struct VacuumStmt {
typedef struct ExplainStmt { typedef struct ExplainStmt {
NodeTag type; NodeTag type;
Query *query; /* the query */ Query *query; /* the query */
List *options; bool verbose; /* print plan info */
} ExplainStmt; } ExplainStmt;
......
.\" This is -*-nroff-*- .\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here.... .\" 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 .TH EXPLAIN SQL 11/05/95 PostgreSQL PostgreSQL
.SH NAME .SH NAME
explain \(em explains statement execution details explain \(em explains statement execution details
.SH SYNOPSIS .SH SYNOPSIS
.nf .nf
\fBexplain [with\fP \fB{cost|plan|full}]\fR query \fBexplain [verbose]\fR query
.fi .fi
.SH DESCRIPTION .SH DESCRIPTION
This command outputs details about the supplied query. The default This command outputs details about the supplied query. The default
output is the computed query cost. \f2plan\f1 displays the full query output is the computed query cost. \f2verbose\f1 displays the full query
plan. \f2full\f1 display both query plan and query cost. plan and cost.
.PP .PP
The query cost and plan can be affected by running vacuum. The query cost and plan can be affected by running vacuum.
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