Re: PublicationActions - use bit flags.

Поиск
Список
Период
Сортировка
От Peter Smith
Тема Re: PublicationActions - use bit flags.
Дата
Msg-id CAHut+Ptv-gA7=zvc0xmS+7iejRrk0aRj+Rar69Zh1Qm1KqvsGA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: PublicationActions - use bit flags.  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Tue, Dec 21, 2021 at 11:56 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Greg Nancarrow <gregn4422@gmail.com> writes:
> > I've attached a patch which addresses that and replaces a couple of
> > memcpy()s with struct assignment, as suggested.
>
> Removing this is not good:
>
>         if (relation->rd_pubactions)
> -       {
>                 pfree(relation->rd_pubactions);
> -               relation->rd_pubactions = NULL;
> -       }
>
> If the subsequent palloc fails, you've created a problem where
> there was none before.
>
> I do wonder why we have to palloc a constant-size substructure in
> the first place, especially one that is likely smaller than the
> pointer that points to it.  Maybe the struct definition should be
> moved so that we can just declare it in-line in the relcache entry?
>

At the risk of flogging a dead horse, here is v2 of my original
bit-flag replacement for the PublicationActions struct.

This version introduces one more bit flag for the relcache status, and
by doing so means all that code for Relation cache PublicationActions
pointers and pallocs and context switches can just disappear...

------
Kind Regards,
Peter Smith.
Fujitsu Australia

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Thomas Munro
Дата:
Сообщение: Re: Documenting when to retry on serialization failure
Следующее
От: Thomas Munro
Дата:
Сообщение: Re: WIP: WAL prefetch (another approach)