aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2018-07-29 22:00:42 +0900
committerMichael Paquier <michael@paquier.xyz>2018-07-29 22:00:42 +0900
commit9f7ba88aa447a0a35006d877eec897b917d1c6c3 (patch)
tree2cf494fec9f7182d381ea57ab17f0c90a1a9033c /src
parente09144e6ce2b3ec120d0405ead2b062183f26c6b (diff)
downloadpostgresql-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.c6
-rw-r--r--src/include/nodes/parsenodes.h4
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