Re: BufFileWrite across MAX_PHYSICAL_FILESIZE boundary

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Kurt Harriman" <kharriman(at)greenplum(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: BufFileWrite across MAX_PHYSICAL_FILESIZE boundary
Date: 2007-05-07 21:45:38
Message-ID: 19107.1178574338@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

"Kurt Harriman" <kharriman(at)greenplum(dot)com> writes:
> Just noticed buffile.c:292 doesn't look quite right where
> BufFileDumpBuffer calls FileWrite:
> bytestowrite = FileWrite(thisfile, file->buffer, bytestowrite);
> It looks as though it would write the same data each time the
> loop is iterated. Would this be better?
> bytestowrite = FileWrite(thisfile, file->buffer + wpos, bytestowrite);

Yeah, I think you're right. We've probably not seen this because in
most usages the buffer is always block-aligned, but it looks possible
for tuplestore.c to get out of alignment if its concurrent write/read
feature is exercised just so. Do you want to try demonstrating the bug
with a smaller-than-normal setting of MAX_PHYSICAL_FILESIZE?

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2007-05-07 21:56:05 Re: pg_type
Previous Message Andrew Dunstan 2007-05-07 21:27:05 pg_type