1
0
mirror of https://github.com/postgres/postgres.git synced 2025-10-31 10:30:33 +03:00

Refactor cluster_rel() to handle more options

This extends cluster_rel() in such a way that more options can be added
in the future, which will reduce the amount of chunk code for an
upcoming SKIP_LOCKED aimed for VACUUM.  As VACUUM FULL is a different
flavor of CLUSTER, we want to make that extensible to ease integration.

This only reworks the API and its callers, without providing anything
user-facing.  Two options are present now: verbose mode and relation
recheck when doing the cluster command work across multiple
transactions.  This could be used as well as a base to extend the
grammar of CLUSTER later on.

Author: Michael Paquier
Reviewed-by: Nathan Bossart
Discussion: https://postgr.es/m/20180723031058.GE2854@paquier.xyz
This commit is contained in:
Michael Paquier
2018-07-24 11:37:32 +09:00
parent d9fadbf131
commit 9ebe0572ce
8 changed files with 32 additions and 13 deletions

View File

@@ -10478,7 +10478,9 @@ ClusterStmt:
ClusterStmt *n = makeNode(ClusterStmt);
n->relation = $3;
n->indexname = $4;
n->verbose = $2;
n->options = 0;
if ($2)
n->options |= CLUOPT_VERBOSE;
$$ = (Node*)n;
}
| CLUSTER opt_verbose
@@ -10486,7 +10488,9 @@ ClusterStmt:
ClusterStmt *n = makeNode(ClusterStmt);
n->relation = NULL;
n->indexname = NULL;
n->verbose = $2;
n->options = 0;
if ($2)
n->options |= CLUOPT_VERBOSE;
$$ = (Node*)n;
}
/* kept for pre-8.3 compatibility */
@@ -10495,7 +10499,9 @@ ClusterStmt:
ClusterStmt *n = makeNode(ClusterStmt);
n->relation = $5;
n->indexname = $3;
n->verbose = $2;
n->options = 0;
if ($2)
n->options |= CLUOPT_VERBOSE;
$$ = (Node*)n;
}
;