Em dom., 25 de jul. de 2021 às 15:53, Tom Lane <t...@sss.pgh.pa.us> escreveu:

> Ranier Vilela <ranier...@gmail.com> writes:
> > I think int64 is in most cases the counterpart of *long* on Windows.
>
> I'm not particularly on board with s/long/int64/g as a universal
> solution.

Sure, not a universal solution, I mean a start point.
When I look for a type that is signed and size 8 bytes in Windows, I only
see int64.

I think that most of these usages are concerned with
> memory sizes and would be better off as "size_t".

Ok, but let's not forget that size_t is unsigned.

  We might need
> int64 in places where we're concerned with sums of memory usage
> across processes, or where the value needs to be allowed to be
> negative.  So it'll take case-by-case analysis to do it right.
>
Sure.


> BTW, one aspect of this that I'm unsure how to tackle is the
> common usage of "L" constants; in particular, "work_mem * 1024L"
> is a really common idiom that we'll need to get rid of.  Not sure
> that grep will be a useful aid for finding those.
>
I can see 30 matches in the head tree. (grep -d "1024L" *.c)

File backend\access\gin\ginfast.c:
        if (metadata->nPendingPages * GIN_PAGE_FREESIZE > cleanupSize *
1024L)
                         (accum.allocatedMemory >= workMemory * 1024L)))
Is it a good point to start?

or one more simple?
(src/backend/access/hash/hash.c) has one *long*.

regards,
Ranier Vilela

Reply via email to