1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-08 11:42:09 +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:
Tom Lane
2017-10-03 18:53:44 -04:00
parent 45f9d08684
commit 11d8d72c27
14 changed files with 329 additions and 159 deletions

View File

@ -3766,7 +3766,18 @@ _copyVacuumStmt(const VacuumStmt *from)
VacuumStmt *newnode = makeNode(VacuumStmt);
COPY_SCALAR_FIELD(options);
COPY_NODE_FIELD(rels);
return newnode;
}
static VacuumRelation *
_copyVacuumRelation(const VacuumRelation *from)
{
VacuumRelation *newnode = makeNode(VacuumRelation);
COPY_NODE_FIELD(relation);
COPY_SCALAR_FIELD(oid);
COPY_NODE_FIELD(va_cols);
return newnode;
@ -5215,6 +5226,9 @@ copyObjectImpl(const void *from)
case T_VacuumStmt:
retval = _copyVacuumStmt(from);
break;
case T_VacuumRelation:
retval = _copyVacuumRelation(from);
break;
case T_ExplainStmt:
retval = _copyExplainStmt(from);
break;