mirror of
https://github.com/postgres/postgres.git
synced 2025-11-06 07:49:08 +03:00
Added VERBOSE option to vacuum command.
This commit is contained in:
@@ -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
|
||||
{
|
||||
$$ = (Node *)makeNode(VacuumStmt);
|
||||
}
|
||||
| VACUUM relation_name
|
||||
VacuumStmt: VACUUM opt_verbose
|
||||
{
|
||||
VacuumStmt *n = makeNode(VacuumStmt);
|
||||
n->vacrel = $2;
|
||||
n->verbose = $2;
|
||||
$$ = (Node *)n;
|
||||
}
|
||||
| VACUUM opt_verbose relation_name
|
||||
{
|
||||
VacuumStmt *n = makeNode(VacuumStmt);
|
||||
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:
|
||||
|
||||
Reference in New Issue
Block a user