Re: Adding REPACK [concurrently] - Mailing list pgsql-hackers

From Antonin Houska
Subject Re: Adding REPACK [concurrently]
Date
Msg-id 10477.1775292614@localhost
Whole thread Raw
In response to Re: Adding REPACK [concurrently]  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Responses Re: Adding REPACK [concurrently]
List pgsql-hackers
Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

> On 2026-Apr-03, Antonin Houska wrote:
>
> > diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
> > index 00b21ede481..c25dbeadff3 100644
> > --- a/src/backend/commands/repack_worker.c
> > +++ b/src/backend/commands/repack_worker.c
>
> > @@ -233,6 +234,13 @@ repack_setup_logical_decoding(Oid relid)
> >
> >      EnsureLogicalDecodingEnabled();
> >
> > +    /*
> > +     * By declaring that our output plugin does not need shared catalogs, we
> > +     * avoid waiting for completion of transactions running in other databases
> > +     * than the one we're connected to.
> > +     */
> > +    accessSharedCatalogsInDecoding = false;
> > +
> >      /*
> >       * Neither prepare_write nor do_write callback nor update_progress is
> >       * useful for us.
>
> I find this reliance on a global variable for this a bit icky.  Would it
> work to instead change the CreateInitDecodingContext() signature, so
> that instead of "bool need_full_snapshot" it has a three-valued boolean
> to distinguish the two cases from the original plus this new one?  I
> think the value could be stored in LogicalDecodingContext, from where
> standby_decode() could obtain it.

I agree that the global variable is not handy, but instead of modifying
CreateInitDecodingContext(), how about adding a boolean returning callback to
OutputPluginCallbacks? The point is that whether shared catalogs are needed
during the decoding or not is actually property of the plugin.

--
Antonin Houska
Web: https://www.cybertec-postgresql.com



pgsql-hackers by date:

Previous
From: Daniil Davydov
Date:
Subject: Re: POC: Parallel processing of indexes in autovacuum
Next
From: Lukas Fittl
Date:
Subject: Re: Reduce timing overhead of EXPLAIN ANALYZE using rdtsc?