Re: Adding REPACK [concurrently]
| От | Antonin Houska |
|---|---|
| Тема | Re: Adding REPACK [concurrently] |
| Дата | |
| Msg-id | 10477.1775292614@localhost обсуждение исходный текст |
| Ответ на | Re: Adding REPACK [concurrently] (Alvaro Herrera <alvherre@alvh.no-ip.org>) |
| Ответы |
Re: Adding REPACK [concurrently]
|
| Список | 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 по дате отправления: