On Mon, Oct 27, 2025 at 6:24 AM Peter Smith <smithpb2250@gmail.com> wrote:
>
> Hi Sawada.
>
> A couple of comments for v22-0001.
>
> ======
>
> 1.
> + /*
> + * We don't need this warning message when wal_level >= 'replica' since
> + * logical decoding is automatically enabled up on a logical slot
> + * creation.
> + */
> + if (wal_level == WAL_LEVEL_MINIMAL)
> ereport(WARNING,
> (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
> - errmsg("\"wal_level\" is insufficient to publish logical changes"),
> - errhint("Set \"wal_level\" to \"logical\" before creating subscriptions.")));
> + errmsg("logical decoding must be enabled to publish logical changes"),
> + errhint("Before creating subscriptions, set \"wal_level\" >=
> \"logical\" or create a logical replication slot when \"wal_level\" =
> \"replica\".")));
>
> 1a.
> Sorry, for repeating the same question about the HINT message, but
> AFAICT I did not yet notice any reply to directly reject or address my
> question.
>
> Basically, I felt the errhint part that says "...or create a logical
> replication slot when wal_level = replica." is overkill, because
> creating the subscription will do that anyway.
> In other words, we don't need to tell the user this is needed "Before
> creating subscriptions". So, I thought the only requirement to be able
> to publish a subscription is for wal_level >= replica.
>
> SUGGESTION
> errhint("Before creating subscriptions, set \"wal_level\" >= \"replica\".")
>
While verifying the patch, I too noticed this case. On latest patch,
with wal_level=minimal, CREATE PUBLICATION gives this:
postgres=# create publication pub1;
WARNING: logical decoding must be enabled to publish logical changes
HINT: Before creating subscriptions, set "wal_level" >= "logical" or
create a logical replication slot when "wal_level" = "replica".
I don’t have a strong opinion on this, but I’m slightly inclined
toward Peter’s suggestion on HINT.
thanks
Shveta