mirror of
https://github.com/postgres/postgres.git
synced 2026-06-09 08:42:38 -04:00
Improve REPACK (CONCURRENTLY) error when wal_level < replica
The error emitted when REPACK (CONCURRENTLY) is run with too low a wal_level is thrown by CheckSlotRequirements(), which is a bit mysterious when the user doesn't know what's up. Add an upfront check in check_concurrent_repack_requirements() for a more explicit, REPACK- centered report, which is easier to understand -- this also saves starting the worker just to have it die immediately. Author: Baji Shaik <baji.pgdev@gmail.com> Reviewed-by: Chao Li <li.evan.chao@gmail.com> Discussion: https://postgr.es/m/CA+fm-ROdgh0rEVuXoViBk4TVgjodrN=MTR_RYuOuKLZ9voX4YA@mail.gmail.com
This commit is contained in:
parent
af23353a73
commit
43649b6a53
1 changed files with 9 additions and 0 deletions
|
|
@ -40,6 +40,7 @@
|
|||
#include "access/toast_internals.h"
|
||||
#include "access/transam.h"
|
||||
#include "access/xact.h"
|
||||
#include "access/xlog.h"
|
||||
#include "catalog/catalog.h"
|
||||
#include "catalog/dependency.h"
|
||||
#include "catalog/heap.h"
|
||||
|
|
@ -897,6 +898,14 @@ check_concurrent_repack_requirements(Relation rel, Oid *ident_idx_p)
|
|||
replident;
|
||||
Oid ident_idx;
|
||||
|
||||
if (wal_level < WAL_LEVEL_REPLICA)
|
||||
ereport(ERROR,
|
||||
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("cannot execute \"%s\" in this configuration",
|
||||
"REPACK (CONCURRENTLY)"),
|
||||
errdetail("%s requires \"wal_level\" to be set to \"replica\" or higher.",
|
||||
"REPACK (CONCURRENTLY)"));
|
||||
|
||||
/* Data changes in system relations are not logically decoded. */
|
||||
if (IsCatalogRelation(rel))
|
||||
ereport(ERROR,
|
||||
|
|
|
|||
Loading…
Reference in a new issue