mirror of
https://github.com/postgres/postgres.git
synced 2025-10-22 14:32:25 +03:00
Revise parse tree representation for VACUUM and ANALYZE.
Like commit f41551f61f
, this aims
to make it easier to add non-Boolean options to VACUUM (or, in
this case, to ANALYZE). Instead of building up a bitmap of
options directly in the parser, build up a list of DefElem
objects and let ExecVacuum() sort it out; right now, we make
no use of the fact that a DefElem can carry an associated value,
but it will be easy to make that change in the future.
Masahiko Sawada
Discussion: http://postgr.es/m/CAD21AoATE4sn0jFFH3NcfUZXkU2BMbjBWB_kDj-XWYA-LXDcQA@mail.gmail.com
This commit is contained in:
@@ -136,8 +136,23 @@ typedef struct VacAttrStats
|
||||
int rowstride;
|
||||
} VacAttrStats;
|
||||
|
||||
typedef enum VacuumOption
|
||||
{
|
||||
VACOPT_VACUUM = 1 << 0, /* do VACUUM */
|
||||
VACOPT_ANALYZE = 1 << 1, /* do ANALYZE */
|
||||
VACOPT_VERBOSE = 1 << 2, /* print progress info */
|
||||
VACOPT_FREEZE = 1 << 3, /* FREEZE option */
|
||||
VACOPT_FULL = 1 << 4, /* FULL (non-concurrent) vacuum */
|
||||
VACOPT_SKIP_LOCKED = 1 << 5, /* skip if cannot get lock */
|
||||
VACOPT_SKIPTOAST = 1 << 6, /* don't process the TOAST table, if any */
|
||||
VACOPT_DISABLE_PAGE_SKIPPING = 1 << 7 /* don't skip any pages */
|
||||
} VacuumOption;
|
||||
|
||||
/*
|
||||
* Parameters customizing behavior of VACUUM and ANALYZE.
|
||||
*
|
||||
* Note that at least one of VACOPT_VACUUM and VACOPT_ANALYZE must be set
|
||||
* in options.
|
||||
*/
|
||||
typedef struct VacuumParams
|
||||
{
|
||||
@@ -163,7 +178,7 @@ extern int vacuum_multixact_freeze_table_age;
|
||||
|
||||
|
||||
/* in commands/vacuum.c */
|
||||
extern void ExecVacuum(VacuumStmt *vacstmt, bool isTopLevel);
|
||||
extern void ExecVacuum(ParseState *pstate, VacuumStmt *vacstmt, bool isTopLevel);
|
||||
extern void vacuum(List *relations, VacuumParams *params,
|
||||
BufferAccessStrategy bstrategy, bool isTopLevel);
|
||||
extern void vac_open_indexes(Relation relation, LOCKMODE lockmode,
|
||||
|
Reference in New Issue
Block a user