Re: Adding REPACK [concurrently]

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: Adding REPACK [concurrently]
Дата
Msg-id 202604031712.bqmynktpnakw@alvherre.pgsql
обсуждение исходный текст
Ответ на Re: Adding REPACK [concurrently]  (Antonin Houska <ah@cybertec.at>)
Ответы Re: Adding REPACK [concurrently]
Список 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 по дате отправления: