mirror of
https://github.com/postgres/postgres.git
synced 2025-11-04 20:11:56 +03:00
Allow multiple tables to be specified in one VACUUM or ANALYZE command.
Not much to say about this; does what it says on the tin. However, formerly, if there was a column list then the ANALYZE action was implied; now it must be specified, or you get an error. This is because it would otherwise be a bit unclear what the user meant if some tables have column lists and some don't. Nathan Bossart, reviewed by Michael Paquier and Masahiko Sawada, with some editorialization by me Discussion: https://postgr.es/m/E061A8E3-5E3D-494D-94F0-E8A9B312BBFC@amazon.com
This commit is contained in:
@@ -1778,8 +1778,8 @@ typedef struct AlterTableCmd /* one subcommand of an ALTER TABLE */
|
||||
AlterTableType subtype; /* Type of table alteration to apply */
|
||||
char *name; /* column, constraint, or trigger to act on,
|
||||
* or tablespace */
|
||||
int16 num; /* attribute number for columns referenced
|
||||
* by number */
|
||||
int16 num; /* attribute number for columns referenced by
|
||||
* number */
|
||||
RoleSpec *newowner;
|
||||
Node *def; /* definition of new column, index,
|
||||
* constraint, or parent table */
|
||||
@@ -3098,12 +3098,26 @@ typedef enum VacuumOption
|
||||
VACOPT_DISABLE_PAGE_SKIPPING = 1 << 7 /* don't skip any pages */
|
||||
} VacuumOption;
|
||||
|
||||
/*
|
||||
* Info about a single target table of VACUUM/ANALYZE.
|
||||
*
|
||||
* If the OID field is set, it always identifies the table to process.
|
||||
* Then the relation field can be NULL; if it isn't, it's used only to report
|
||||
* failure to open/lock the relation.
|
||||
*/
|
||||
typedef struct VacuumRelation
|
||||
{
|
||||
NodeTag type;
|
||||
RangeVar *relation; /* table name to process, or NULL */
|
||||
Oid oid; /* table's OID; InvalidOid if not looked up */
|
||||
List *va_cols; /* list of column names, or NIL for all */
|
||||
} VacuumRelation;
|
||||
|
||||
typedef struct VacuumStmt
|
||||
{
|
||||
NodeTag type;
|
||||
int options; /* OR of VacuumOption flags */
|
||||
RangeVar *relation; /* single table to process, or NULL */
|
||||
List *va_cols; /* list of column names, or NIL for all */
|
||||
List *rels; /* list of VacuumRelation, or NIL for all */
|
||||
} VacuumStmt;
|
||||
|
||||
/* ----------------------
|
||||
|
||||
Reference in New Issue
Block a user