On Thu, Sep 12, 2024 at 01:37:52PM +0000, Bertrand Drouvot wrote: > There is also some manipulation around the 2 new uint32 fields (objid_hi and > objid_lo) in the xactdesc.c and pgstat_xact.c files that look good to me.
Thanks for the reviews. The high and low manipulations are still kind
of OK to me as a solution for the record constructions.
> But now we end up having functions that accept Oid as parameters to call
> functions that accept uint64 as parameter (for the exact same parameter), for
> example:
>
> "
> void
> pgstat_create_function(Oid proid)
> {
> pgstat_create_transactional(PGSTAT_KIND_FUNCTION,
> MyDatabaseId,
> proid);
> }
> "
>
> as pgstat_create_transactional is now:
>
> -pgstat_create_transactional(PgStat_Kind kind, Oid dboid, Oid objoid)
> +pgstat_create_transactional(PgStat_Kind kind, Oid dboid, uint64 objid)
>
> That's not an issue as both are unsigned and as we do those calls in that
> order (Oid -> uint64).
Yes, that's intentional. All the pgstats routines associated to a
particular object that depends on an OID should still use an OID, and
anything that's generic enough to be used for all stats kinds had
better use a uint64. I was wondering if it would be better hiding
that behind a dedicated type, but decided to stick with uint64.
--
Michael
signature.asc
Description: PGP signature
