diff options
author | Michael Paquier <michael@paquier.xyz> | 2018-07-29 22:00:42 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2018-07-29 22:00:42 +0900 |
commit | 9f7ba88aa447a0a35006d877eec897b917d1c6c3 (patch) | |
tree | 2cf494fec9f7182d381ea57ab17f0c90a1a9033c /src | |
parent | e09144e6ce2b3ec120d0405ead2b062183f26c6b (diff) | |
download | postgresql-9f7ba88aa447a0a35006d877eec897b917d1c6c3.tar.gz postgresql-9f7ba88aa447a0a35006d877eec897b917d1c6c3.zip |
Fix two oversights from 9ebe0572 which refactored cluster_rel
The recheck option became a no-op as ClusterOption failed to set proper
values for each element. There was a second code path where local
options got overwritten.
Both issues have been spotted by Coverity.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/commands/vacuum.c | 6 | ||||
-rw-r--r-- | src/include/nodes/parsenodes.h | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index 5736f12b8f7..ee32fe88711 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -1551,17 +1551,17 @@ vacuum_rel(Oid relid, RangeVar *relation, int options, VacuumParams *params) */ if (options & VACOPT_FULL) { - int options = 0; + int cluster_options = 0; /* close relation before vacuuming, but hold lock until commit */ relation_close(onerel, NoLock); onerel = NULL; if ((options & VACOPT_VERBOSE) != 0) - options |= CLUOPT_VERBOSE; + cluster_options |= CLUOPT_VERBOSE; /* VACUUM FULL is now a variant of CLUSTER; see cluster.c */ - cluster_rel(relid, InvalidOid, options); + cluster_rel(relid, InvalidOid, cluster_options); } else lazy_vacuum_rel(onerel, options, params, vac_strategy); diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 7855cff30d2..07ab1a3dde1 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -3114,8 +3114,8 @@ typedef struct AlterSystemStmt */ typedef enum ClusterOption { - CLUOPT_RECHECK, /* recheck relation state */ - CLUOPT_VERBOSE /* print progress info */ + CLUOPT_RECHECK = 1 << 0, /* recheck relation state */ + CLUOPT_VERBOSE = 1 << 1 /* print progress info */ } ClusterOption; typedef struct ClusterStmt |