git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: e09144e)
Fix two oversights from 9ebe0572 which refactored cluster_rel
2018年7月29日 13:00:42 +0000 (22:00 +0900)
2018年7月29日 13:00:42 +0000 (22:00 +0900)
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.


diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index 5736f12b8f7b27ef1334390db3e50b4de810ec5a..ee32fe8871180b96e8b6c7627e958f125a78f8c5 100644 (file)
--- 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 7855cff30d28473ea6807d91895fe3ebf5796ded..07ab1a3dde1613cf08f4aaa32219577086766401 100644 (file)
--- 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
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /