Re: POC: enable logical decoding when wal_level = 'replica' without a server restart - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: POC: enable logical decoding when wal_level = 'replica' without a server restart
Date
Msg-id CAA4eK1LmOB8CuStDJZ-dbH20Wm4TUswXrOKqb9yMix1pPF22Ag@mail.gmail.com
Whole thread Raw
In response to Re: POC: enable logical decoding when wal_level = 'replica' without a server restart  (Peter Smith <smithpb2250@gmail.com>)
List pgsql-hackers
On Thu, Oct 23, 2025 at 8:58 AM Peter Smith <smithpb2250@gmail.com> wrote:
>
> On Wed, Oct 22, 2025 at 8:28 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> >
> > On Wed, Oct 22, 2025 at 2:40 PM shveta malik <shveta.malik@gmail.com> wrote:
> > >
> > > On Fri, Oct 17, 2025 at 11:09 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> > > >
> > >
> > > I want to discuss the create-publication case, which currently gives
> > > this warning:
> > >
> > > postgres=# create publication pub1 for all tables;
> > > WARNING:  logical decoding should be allowed to publish logical changes
> > > HINT:  Before creating subscriptions, set "wal_level" >= "logical" or
> > > create a logical replication slot when "wal_level" = "replica".
> > > CREATE PUBLICATION
> > >
> > > But is this warning really necessary during publication creation?
> > >
> >
> > On HEAD, the WARNING/HINT is as follows for the above case:
> > WARNING:  "wal_level" is insufficient to publish logical changes
> > HINT:  Set "wal_level" to "logical" before creating subscriptions.
> >
> > Shouldn't we simply change the HINT to "Set "wal_level" to "logical"
> > or create a logical replication slot before creating subscriptions."?
> >
>
> I had suggested in a previous review [1-#6b] that perhaps this HINT
> wording is overkill now. e.g. I felt now maybe it only needs to say.
> HINT: Set "wal_level" >= "replica".
>
> E.g. I thought there is no need to mention "create a logical slot
> before creating subscriptions", because creating a typical
> subscription (which has a slot) is doing that anyway, so the
> publisher's effective_wal_level will increase on the fly, without the
> user needing to do anything.
>
> At least, that is what I observed with the experiment shown below:
>
> Indeed, doesn't it mean this entire WARNING is redundant now? e.g.
> When wal_level is "minimal", I thought the CREATE PUBLICATION command
> would be impossible in the first place.
>

We can create a publication at wal_level=minimal as well. See:

postgres=# create publication pub1 for table t1;
WARNING:  "wal_level" is insufficient to publish logical changes
HINT:  Set "wal_level" to "logical" before creating subscriptions.
CREATE PUBLICATION

postgres=# show wal_level;
 wal_level
-----------
 minimal
(1 row)

So, we still need a WARNING message here though the wording could be
different than what we have now.

--
With Regards,
Amit Kapila.



pgsql-hackers by date:

Previous
From: Laurenz Albe
Date:
Subject: Re: doc: create table improvements
Next
From: Michael Paquier
Date:
Subject: Re: Making pg_rewind faster