On Fri, 2019-10-04 at 10:26 +0200, Tomas Vondra wrote: > On Fri, Oct 04, 2019 at 12:36:01AM -0400, Tom Lane wrote: > > So ... why exactly did this patch define > > MemoryContextData.mem_allocated > > as int64? That seems to me to be doubly wrong: it is not the right > > width > > on 32-bit machines, and it is not the right signedness anywhere. I > > think > > that field ought to be of type Size (a/k/a size_t, but memnodes.h > > always > > calls it Size). > > > > Yeah, I think that's an oversight. Maybe there's a reason why Jeff > used > int64, but I can't think of any.
I had chosen a 64-bit value to account for the situation Tom mentioned: that, in theory, Size might not be large enough to represent all allocations in a memory context. Apparently, that theoretical situation is not worth being concerned about. The patch has been floating around for a very long time, so I don't remember exactly why I chose a signed value. Sorry. Regards, Jeff Davis