From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
Cc: | Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>, Jesper Pedersen <jesper(dot)pedersen(at)redhat(dot)com>, Magnus Hagander <magnus(at)hagander(dot)net>, Oskari Saarenmaa <os(at)ohmu(dot)fi>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Tobias Oberstein <tobias(dot)oberstein(at)gmail(dot)com> |
Subject: | Re: pread() and pwrite() |
Date: | 2018-11-05 17:23:52 |
Message-ID: | 1791.1541438632@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> writes:
> On 2018-Nov-04, Thomas Munro wrote:
>> Here's a patch to add Windows support by supplying
>> src/backend/port/win32/pread.c. Thoughts?
> Hmm, so how easy is to detect that somebody runs read/write on fds where
> pread/pwrite have occurred? I guess for data files it's easy to detect
> since you'd quickly end up with corrupted files, but what about other
> kinds of files? I wonder if we should be worrying about using this
> interface somewhere other than fd.c and forgetting about the limitation.
Yeah. I think the patch as presented is OK; it uses pread/pwrite only
inside fd.c, which is a reasonably non-leaky abstraction. But there's
definitely a hazard of somebody submitting a patch that depends on
using pread/pwrite elsewhere, and then that maybe not working.
What I suggest is that we *not* try to make this a completely transparent
substitute. Instead, make the functions exported by src/port/ be
"pg_pread" and "pg_pwrite", and inside fd.c we'd write something like
#ifdef HAVE_PREAD
#define pg_pread pread
#endif
and then refer to pg_pread/pg_pwrite in the body of that file. That
way, if someone refers to pread and expects standard functionality
from it, they'll get a failure on platforms not supporting it.
FWIW, I tested the given patches on HPUX 10.20; they compiled cleanly
and pass the core regression tests.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2018-11-05 17:48:20 | Re: New vacuum option to do only freezing |
Previous Message | Fabien COELHO | 2018-11-05 17:08:18 | Re: Timeout parameters |