mirror of
https://github.com/postgres/postgres.git
synced 2025-10-15 05:46:52 +03:00
Prohibit max_slot_wal_keep_size to value other than -1 during upgrade.
We don't want existing slots in the old cluster to get invalidated during the upgrade. During an upgrade, we set this variable to -1 via the command line in an attempt to prevent such invalidations, but users have ways to override it. This patch ensures the value is not overridden by the user. Author: Kyotaro Horiguchi Reviewed-by: Peter Smith, Alvaro Herrera Discussion: http://postgr.es/m/20231027.115759.2206827438943188717.horikyota.ntt@gmail.com
This commit is contained in:
@@ -2063,6 +2063,25 @@ check_wal_segment_size(int *newval, void **extra, GucSource source)
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* GUC check_hook for max_slot_wal_keep_size
|
||||
*
|
||||
* We don't allow the value of max_slot_wal_keep_size other than -1 during the
|
||||
* binary upgrade. See start_postmaster() in pg_upgrade for more details.
|
||||
*/
|
||||
bool
|
||||
check_max_slot_wal_keep_size(int *newval, void **extra, GucSource source)
|
||||
{
|
||||
if (IsBinaryUpgrade && *newval != -1)
|
||||
{
|
||||
GUC_check_errdetail("\"%s\" must be set to -1 during binary upgrade mode.",
|
||||
"max_slot_wal_keep_size");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* At a checkpoint, how many WAL segments to recycle as preallocated future
|
||||
* XLOG segments? Returns the highest segment that should be preallocated.
|
||||
|
Reference in New Issue
Block a user