agora inbox for pgsql-hackers@postgresql.org  
help / color / mirror / Atom feed
From: Antonin Houska <ah@cybertec.at>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Srinath Reddy Sadipiralla <srinath2133@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>
Cc: Mihail Nikalayeu <mihailnikalayeu@gmail.com>
Cc: Matthias van de Meent <boekewurm+postgres@gmail.com>
Cc: Pg Hackers <pgsql-hackers@lists.postgresql.org>
Cc: Robert Treat <rob@xzilla.net>
Subject: Re: Adding REPACK [concurrently]
Date: Sat, 04 Apr 2026 10:50:14 +0200
Message-ID: <10477.1775292614@localhost> (raw)
In-Reply-To: <202604031712.bqmynktpnakw@alvherre.pgsql>
References: <202604031712.bqmynktpnakw@alvherre.pgsql>

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





view thread (416+ messages)  latest in thread

Message-ID: <10477.1775292614@localhost>
Permalink:  ../10477.1775292614@localhost/
Also on:    postgresql.org/message-id/10477.1775292614@localhost

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: ah@cybertec.at, alvherre@alvh.no-ip.org, srinath2133@gmail.com, amit.kapila16@gmail.com, mihailnikalayeu@gmail.com, boekewurm+postgres@gmail.com, pgsql-hackers@lists.postgresql.org, rob@xzilla.net
  Subject: Re: Adding REPACK [concurrently]
  In-Reply-To: <10477.1775292614@localhost>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox