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