Re: Fixes inconsistent behavior in vacuum when it processes multiple relations
От | Junwang Zhao |
---|---|
Тема | Re: Fixes inconsistent behavior in vacuum when it processes multiple relations |
Дата | |
Msg-id | CAEG8a3JzWkeCxajKs3MdyCCU1iNtjD9kMfrHnESi=KCPiyPTgA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Fixes inconsistent behavior in vacuum when it processes multiple relations (shihao zhong <zhong950419@gmail.com>) |
Список | pgsql-hackers |
On Fri, Jun 20, 2025 at 10:14 PM shihao zhong <zhong950419@gmail.com> wrote: > > >> However, Option 1) would be my go-to option for HEAD ... > > Updated my patch to apply the same rules to all VacuumParams. Also I > am seeing clusterParams as a pass reference, not sure if we should > also change that to prevent future issues. But that should be another > patch. static inline void -table_relation_vacuum(Relation rel, struct VacuumParams *params, +table_relation_vacuum(Relation rel, struct VacuumParams params, BufferAccessStrategy bstrategy) { rel->rd_tableam->relation_vacuum(rel, params, bstrategy); diff --git a/src/include/commands/vacuum.h b/src/include/commands/vacuum.h index bc37a80dc74..9a8c63352da 100644 --- a/src/include/commands/vacuum.h +++ b/src/include/commands/vacuum.h @@ -336,7 +336,7 @@ extern PGDLLIMPORT int64 parallel_vacuum_worker_delay_ns; /* in commands/vacuum.c */ extern void ExecVacuum(ParseState *pstate, VacuumStmt *vacstmt, bool isTopLevel); -extern void vacuum(List *relations, VacuumParams *params, +extern void vacuum(List *relations, VacuumParams params, BufferAccessStrategy bstrategy, MemoryContext vac_context, bool isTopLevel); extern void vac_open_indexes(Relation relation, LOCKMODE lockmode, @@ -357,7 +357,7 @@ extern void vac_update_relstats(Relation relation, bool *frozenxid_updated, bool *minmulti_updated, bool in_outer_xact); -extern bool vacuum_get_cutoffs(Relation rel, const VacuumParams *params, +extern bool vacuum_get_cutoffs(Relation rel, const VacuumParams params, struct VacuumCutoffs *cutoffs); extern bool vacuum_xid_failsafe_check(const struct VacuumCutoffs *cutoffs); extern void vac_update_datfrozenxid(void); @@ -398,7 +398,7 @@ extern void parallel_vacuum_main(dsm_segment *seg, shm_toc *toc); /* in commands/analyze.c */ extern void analyze_rel(Oid relid, RangeVar *relation, - VacuumParams *params, List *va_cols, bool in_outer_xact, + VacuumParams params, List *va_cols, bool in_outer_xact, It's a bit odd that we have both `VacuumParams *params` and `struct VacuumParams *params`. Perhaps you could remove the struct keyword in this patch to make it consistent. -- Regards Junwang Zhao
В списке pgsql-hackers по дате отправления: