提交 0d3bf78e 编写于 作者: B Bruce Momjian

Added VERBOSE option to vacuum command.

上级 febfe447
......@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.13 1997/01/10 09:57:16 vadim Exp $
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.14 1997/01/13 03:43:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -46,12 +46,7 @@
#endif /* NEED_RUSAGE */
bool VacuumRunning = false;
#ifdef VACUUM_QUIET
static int MESSLEV = DEBUG;
#else
static int MESSLEV = NOTICE;
#endif
static int MESSLEV; /* message level */
typedef struct {
FuncIndexInfo finfo;
......@@ -90,10 +85,15 @@ static bool _vc_enough_space (VPageDescr vpd, Size len);
void
vacuum(char *vacrel)
vacuum(char *vacrel, bool verbose)
{
NameData VacRel;
if (verbose)
MESSLEV = NOTICE;
else
MESSLEV = DEBUG;
/* vacrel gets de-allocated on transaction commit */
/* initialize vacuum cleaner */
......
......@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.23 1996/12/20 20:33:12 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.24 1997/01/13 03:44:18 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
......@@ -133,7 +133,8 @@ static Node *makeA_Expr(int oper, char *opname, Node *lexpr, Node *rexpr);
expr_list, attrs, res_target_list, res_target_list2,
def_list, opt_indirection, group_clause, groupby_list, explain_options
%type <boolean> opt_inh_star, opt_binary, opt_instead, opt_with_copy, index_opt_unique
%type <boolean> opt_inh_star, opt_binary, opt_instead, opt_with_copy,
index_opt_unique, opt_verbose
%type <ival> copy_dirn, archive_type, OptArchiveType, OptArchiveLocation,
def_type, opt_direction, remove_type, opt_column, event
......@@ -187,7 +188,7 @@ static Node *makeA_Expr(int oper, char *opname, Node *lexpr, Node *rexpr);
RENAME, REPLACE, RETRIEVE, RETURNS, REVOKE, ROLLBACK, RULE,
SELECT, SET, SETOF, STDIN, STDOUT, STORE,
TABLE, TO, TRANSACTION, UNIQUE, UPDATE, USING, VACUUM, VALUES
VERSION, VIEW, WHERE, WITH, WORK
VERBOSE, VERSION, VIEW, WHERE, WITH, WORK
%token EXECUTE, RECIPE, EXPLAIN, LIKE
/* Special keywords, not in the query language - see the "lex" file */
......@@ -1200,18 +1201,25 @@ ClusterStmt: CLUSTER index_name ON relation_name
*
*****************************************************************************/
VacuumStmt: VACUUM
VacuumStmt: VACUUM opt_verbose
{
$$ = (Node *)makeNode(VacuumStmt);
VacuumStmt *n = makeNode(VacuumStmt);
n->verbose = $2;
$$ = (Node *)n;
}
| VACUUM relation_name
| VACUUM opt_verbose relation_name
{
VacuumStmt *n = makeNode(VacuumStmt);
n->vacrel = $2;
n->verbose = $2;
n->vacrel = $3;
$$ = (Node *)n;
}
;
opt_verbose: VERBOSE { $$ = TRUE; }
| /* EMPTY */ { $$ = FALSE; }
;
/*****************************************************************************
*
* QUERY:
......
......@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.5 1996/11/30 03:38:07 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.6 1997/01/13 03:44:25 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -136,6 +136,7 @@ static ScanKeyword ScanKeywords[] = {
{ "using", USING },
{ "vacuum", VACUUM },
{ "values", VALUES },
{ "verbose", VERBOSE },
{ "version", VERSION },
{ "view", VIEW },
{ "where", WHERE },
......
......@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.9 1996/11/13 20:49:50 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.10 1997/01/13 03:44:38 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -580,7 +580,8 @@ ProcessUtility(Node *parsetree,
case T_VacuumStmt:
commandTag = "VACUUM";
CHECK_IF_ABORTED();
vacuum(((VacuumStmt *) parsetree)->vacrel);
vacuum( ((VacuumStmt *) parsetree)->vacrel,
((VacuumStmt *) parsetree)->verbose);
break;
case T_ExplainStmt:
......
......@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: vacuum.h,v 1.4 1996/11/29 10:29:45 vadim Exp $
* $Id: vacuum.h,v 1.5 1997/01/13 03:44:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -54,7 +54,7 @@ typedef VRelListData *VRelList;
extern bool VacuumRunning;
extern void vc_abort(void);
extern void vacuum(char *vacrel);
extern void vacuum(char *vacrel, bool verbose);
#endif /* VACUUM_H */
......@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: parsenodes.h,v 1.8 1996/12/17 01:53:43 momjian Exp $
* $Id: parsenodes.h,v 1.9 1997/01/13 03:45:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -397,6 +397,7 @@ typedef struct ClusterStmt {
*/
typedef struct VacuumStmt {
NodeTag type;
bool verbose; /* print status info */
char *vacrel; /* table to vacuum */
} VacuumStmt;
......
.\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here....
.\" $Header: /cvsroot/pgsql/src/man/Attic/vacuum.l,v 1.2 1996/12/11 00:28:15 momjian Exp $
.\" $Header: /cvsroot/pgsql/src/man/Attic/vacuum.l,v 1.3 1997/01/13 03:45:33 momjian Exp $
.TH VACUUM SQL 11/05/95 PostgreSQL PostgreSQL
.SH NAME
vacuum \(em vacuum a database
.SH SYNOPSIS
.nf
\fBvacuum [table]\fP
\fBvacuum [verbose] [\fPtable\fB]\fP
.fi
.SH DESCRIPTION
.BR Vacuum
......@@ -18,6 +18,8 @@ tuples and number of pages stored in all classes. Running
.BR vacuum
periodically will increase Postgres's speed in processing user queries.
.PP
\fBverbose\fP prints a detailed vacuum activity report for each table.
.PP
The open database is the one that is vacuumed.
.PP
We recommend that production databases be vacuumed nightly, in order
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册