mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-01 15:51:20 +02:00
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.
This commit is contained in:
parent
e09144e6ce
commit
9f7ba88aa4
@ -1551,17 +1551,17 @@ vacuum_rel(Oid relid, RangeVar *relation, int options, VacuumParams *params)
|
|||||||
*/
|
*/
|
||||||
if (options & VACOPT_FULL)
|
if (options & VACOPT_FULL)
|
||||||
{
|
{
|
||||||
int options = 0;
|
int cluster_options = 0;
|
||||||
|
|
||||||
/* close relation before vacuuming, but hold lock until commit */
|
/* close relation before vacuuming, but hold lock until commit */
|
||||||
relation_close(onerel, NoLock);
|
relation_close(onerel, NoLock);
|
||||||
onerel = NULL;
|
onerel = NULL;
|
||||||
|
|
||||||
if ((options & VACOPT_VERBOSE) != 0)
|
if ((options & VACOPT_VERBOSE) != 0)
|
||||||
options |= CLUOPT_VERBOSE;
|
cluster_options |= CLUOPT_VERBOSE;
|
||||||
|
|
||||||
/* VACUUM FULL is now a variant of CLUSTER; see cluster.c */
|
/* VACUUM FULL is now a variant of CLUSTER; see cluster.c */
|
||||||
cluster_rel(relid, InvalidOid, options);
|
cluster_rel(relid, InvalidOid, cluster_options);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
lazy_vacuum_rel(onerel, options, params, vac_strategy);
|
lazy_vacuum_rel(onerel, options, params, vac_strategy);
|
||||||
|
@ -3114,8 +3114,8 @@ typedef struct AlterSystemStmt
|
|||||||
*/
|
*/
|
||||||
typedef enum ClusterOption
|
typedef enum ClusterOption
|
||||||
{
|
{
|
||||||
CLUOPT_RECHECK, /* recheck relation state */
|
CLUOPT_RECHECK = 1 << 0, /* recheck relation state */
|
||||||
CLUOPT_VERBOSE /* print progress info */
|
CLUOPT_VERBOSE = 1 << 1 /* print progress info */
|
||||||
} ClusterOption;
|
} ClusterOption;
|
||||||
|
|
||||||
typedef struct ClusterStmt
|
typedef struct ClusterStmt
|
||||||
|
Loading…
Reference in New Issue
Block a user