Hi.

> All accesses are validated with asserts certainly.

Maybe I am missing something, but the extra asserts and wrapper
functions being proposed seem unnecessary for this purpose.
We know the total number of procs, so we just need to make this
available to all code paths that need to index by pgprocno.

If that calculation ever changes, code like multixact.c will not
need to care.

This can be done, as mentioned earlier, by defining the total
number of procs in proc.h, which can then be used by both
multixact.c and InitProcGlobal.

```
#define TOTAL_PROCS (MaxBackends + NUM_AUXILIARY_PROCS + max_prepared_xacts)
```

and to calculate where the prepared transaction procs start:

```
PreparedXactProcs = &procs[TOTAL_PROCS - max_prepared_xacts];
```

What do you think?

With regards to v3, I got a compilation warning that `GetOldestVisibleMXactId`
is an unused function.

--
Sami Imseih
Amazon Web Services (AWS)


Reply via email to