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

From Alvaro Herrera
Subject Re: Adding REPACK [concurrently]
Date
Msg-id 202604031712.bqmynktpnakw@alvherre.pgsql
Whole thread Raw
In response to Re: Adding REPACK [concurrently]  (Antonin Houska <ah@cybertec.at>)
Responses Re: Adding REPACK [concurrently]
List pgsql-hackers
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.

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/
"The important things in the world are problems with society that we don't
understand at all. The machines will become more complicated but they won't
be more complicated than the societies that run them."    (Freeman Dyson)



pgsql-hackers by date:

Previous
From: Jacob Champion
Date:
Subject: Re: [oauth] Split and extend PGOAUTHDEBUG
Next
From: Andres Freund
Date:
Subject: Re: AIO / read stream heuristics adjustments for index prefetching