Subject: Re: PublicationActions - use bit flags.

From: Greg Nancarrow <[email-masked]>
Date: Fri, 21 Jan 2022 11:05:55 +1100

On Tue, Dec 21, 2021 at 12:55 PM Greg Nancarrow <[email-masked]> wrote:
>
> On Tue, Dec 21, 2021 at 11:56 AM Tom Lane <[email-masked]> wrote:
> >
> > 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.
> >
>
> Oops, yeah, I got carried away; if palloc() failed and called exit(),
> then it would end up crashing when trying to use/pfree rd_pubactions
> again.
> Better leave that line in ...
>

Attaching an updated patch to fix that oversight.
This patch thus fixes the original palloc issue in a minimal way,
keeping the same relcache structure.

Regards,
Greg Nancarrow
Fujitsu Australia

---

From: Peter Eisentraut <[email-masked]>
Date: Mon, 24 Jan 2022 21:31:17 +0100

> keeping the same relcache structure.

Why can't GetRelationPublicationActions() have the PublicationActions as 
a return value, instead of changing it to an output argument?