From 3a02ccfa1d3e9f643c65fd2d1584f77715b96d36 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 16 Jan 1997 14:56:59 +0000 Subject: [PATCH] Change EXPLAIN options to just use VERBOSE. --- src/backend/commands/explain.c | 25 +++++-------------------- src/backend/parser/gram.y | 14 ++++---------- src/backend/tcop/utility.c | 4 ++-- src/include/commands/explain.h | 4 ++-- src/include/nodes/parsenodes.h | 4 ++-- src/man/explain.l | 8 ++++---- 6 files changed, 19 insertions(+), 40 deletions(-) diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 2dbc6938c3..f129fbab79 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -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; diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index a7809b61cc..d412e4db23 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -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 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: * diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 0c5756c1e2..693dadc834 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -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; diff --git a/src/include/commands/explain.h b/src/include/commands/explain.h index e267861511..cac3c59999 100644 --- a/src/include/commands/explain.h +++ b/src/include/commands/explain.h @@ -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*/ diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 32929b7bb1..2e1fbeddc9 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.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; diff --git a/src/man/explain.l b/src/man/explain.l index 317026e7bf..2e15c0e0ed 100644 --- a/src/man/explain.l +++ b/src/man/explain.l @@ -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.