On Tue, Nov 13, 2018 at 10:13 PM Thomas Munro
<thomas.munro@enterprisedb.com> wrote:
> On Tue, Oct 30, 2018 at 4:15 AM Peter Geoghegan <pg@bowt.ie> wrote:
> > > ERROR: could not determine size of temporary file "0"
>
> filesize = BufFileSize(file);
> if (filesize < 0)
> ereport(ERROR,
> (errcode_for_file_access(),
> errmsg("could not determine
> size of temporary file \"%s\"", filename)));
>
> Ahh. I think we may be overflowing a 32 bit off_t on this platform.
I think using pgoff_t would fix the problem on Windows, but on other
systems where it maps directly to off_t it might also be 32 bits, so
I'm not entirely sure what pgoff_t is for. Perhaps we should just use
int64 directly for this? Like in the attached draft patch. I don't
have a Windows system to test it on. A separate bug report that came
in today[1] has repro steps that could be used to validate it.
[1] https://www.postgresql.org/message-id/flat/CAHDGBJP_GsESbTt4P3FZA8kMUKuYxjg57XHF7NRBoKnR%3DCAR-g%40mail.gmail.com
--
Thomas Munro
http://www.enterprisedb.com