Re: Allow GUC settings in CREATE SUBSCRIPTION CONNECTION to take effect

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Allow GUC settings in CREATE SUBSCRIPTION CONNECTION to take effect
Date: 2025-12-23 05:05:32
Message-ID: CAA4eK1KsA7FdPH7wXnuKgUEF+SozU5wa=wsvW2m8zQCUR-tWHQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Dec 19, 2025 at 1:25 PM Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
>
> On Wed, Dec 3, 2025 at 2:45 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> >
> > On Tue, Dec 2, 2025 at 8:30 PM Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
> > >
> > > On Tue, Dec 2, 2025 at 9:08 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> > > > Is it possible that we append the predefined options to the options
> > > > given by the user to avoid extra round-trip?
> > >
> > > One idea is to add a function, similar to libpqrcv_get_dbname_from_conninfo()
> > > in libpqwalreceiver.c, that extracts the options string from the conninfo,
> > > to append the required fixed settings, and then to use the combined string as
> > > the value of the options parameter.
> > >
> >
> > Yes, but libpqrcv_get_dbname_from_conninfo() is an exposed function,
> > we can implement something internal for libpqwalreceiver.c like
> > conninfo_add_defaults() present in fe-connect.c.
> >
> > > Do you think implementing this is worthwhile
> > > to avoid the extra round trip?
> > >
> >
> > I think so. Today, we have three variables, tomorrow there could be
> > more such variables as well and apart from avoiding extra round trips,
> > the idea to append options to provided options (if any) sounds more
> > logical to me.
>
> OK, I've implemented the idea discussed upthread. The patch updates
> libpqrcv_connect() so that, for logical replication, it extracts the options
> string from the conninfo, appends the required fixed settings, and passes
> the combined string as the options parameter to libpq.
>
> For example, if the conninfo specifies -c wal_sender_timeout=10s,
> the resulting options value becomes:
>
> -c wal_sender_timeout=10s -c datestyle=ISO -c
> intervalstyle=postgres -c extra_float_digits=3.
>
> Patch attached.
>

Thanks, the idea looks good now. One minor comment:
}
+
/*

This appears to be an unnecessary addition in the patch.

--
With Regards,
Amit Kapila.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message shveta malik 2025-12-23 05:25:08 Re: Proposal: Conflict log history table for Logical Replication
Previous Message Amit Kapila 2025-12-23 04:51:16 Re: Two issues with version checks in CREATE SUBSCRIPTION