David Rowley <dgrowle...@gmail.com> writes: > I noticed the incremental sort code makes use of the long datatype a > few times, e.g in TuplesortInstrumentation and > IncrementalSortGroupInfo. (64-bit windows machines have sizeof(long) > == 4). I understand that the values are in kilobytes and it would > take 2TB to cause them to wrap. Never-the-less, I think it would be > better to choose a better-suited type. work_mem is still limited to > 2GB on 64-bit Windows machines, so perhaps there's some argument that > it does not matter about fields that related to in-memory stuff, but > the on-disk fields are wrong. The in-memory fields likely raise the > bar further for fixing the 2GB work_mem limit on Windows.
> Maybe Size would be better for the in-memory fields and uint64 for the > on-disk fields? There is a fairly widespread issue that memory-size-related GUCs and suchlike variables are limited to represent sizes that fit in a "long". Although Win64 is the *only* platform where that's an issue, maybe it's worth doing something about. But we shouldn't just fix the sort code, if we do do something. (IOW, I don't agree with doing a fix that doesn't also fix work_mem.) regards, tom lane