On Tue, Nov 8, 2022 at 11:59 AM Amit Kapila <amit.kapil...@gmail.com> wrote:
>
> On Mon, Nov 7, 2022 at 3:17 PM rajesh singarapu <rajesh.rs0...@gmail.com> 
> wrote:
> >
> > In both TransactionGroupUpdateXidStatus and ProcArrayGroupClearXid
> > global MyProc is used. for consistency, replaced with a function local 
> > variable.
> >
>
> In ProcArrayGroupClearXid(), currently, we always pass MyProc as proc,
> so the change suggested by you will work but I think if in the future
> someone calls it with a different proc, then the change suggested by
> you won't work.

Well, yes. Do you have any thoughts around such future usages of
ProcArrayGroupClearXid()?

> The change in TransactionGroupUpdateXidStatus() looks
> good but If we don't want to change ProcArrayGroupClearXid() then I am
> not sure if there is much value in making the change in
> TransactionGroupUpdateXidStatus().

AFICS, there are many places in the code that use proc == MyProc (20
instances) or proc != MyProc (6 instances) sorts of things. I think
defining a macro, something like below, is better for readability.
However, I'm concerned that we might have to use it in 26 places.

#define IsPGPROCMine(proc) (proc != NULL && proc == MyProc)
or just
#define IsPGPROCMine(proc) (proc == MyProc)

--
Bharath Rupireddy
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com


Reply via email to