Re: Loaded footgun open_datasync on Windows
Kuntal Ghosh <kuntalghosh.2007@gmail.com>
From: Kuntal Ghosh <kuntalghosh.2007@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>,
Laurenz Albe <laurenz.albe@cybertec.at>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2018-06-06T09:36:38Z
Lists: pgsql-hackers
On Wed, Jun 6, 2018 at 2:39 PM, Amit Kapila <amit.kapila16@gmail.com> wrote: > On Wed, Jun 6, 2018 at 10:18 AM, Michael Paquier <michael@paquier.xyz> > wrote: >> >> On Wed, Jun 06, 2018 at 09:58:34AM +0530, Amit Kapila wrote: >> >> >> It could be >> >> risky for existing callers of open() for tool maintainers, or on the >> >> contrary people could welcome a wrapper of open() which is >> >> concurrent-safe in their own tools. >> > >> > I am not sure if we can safely assume that because using these functions >> > would allow users to concurrently delete the files, but may be it is >> > okay >> > for all the FRONTEND modules. One another alternative could be that we >> > define open as pgwin32_open (for WIN32) wherever we need it. >> >> Which is what basically happens on any *nix platform, are you foreseeing >> anything bad here? >> >> > > Nothing apparent, but I think we should try to find out why at the first > place this has been made backend specific. > It seems the "#ifndef FRONTEND" restriction was added around pgwin32_open() for building libpq with Visual C++ or Borland C++. The restriction was added in commit 422d4819 to build libpq with VC++[1]. Later, in commit fd7c3f67e0bc4, the support for Borland C++ was also added. So, I'm not sure whether removing that restriction will work for all front-end modules. [1] https://www.postgresql.org/message-id/flat/D90A5A6C612A39408103E6ECDD77B829408D4F%40voyager.corporate.connx.com#D90A5A6C612A39408103E6ECDD77B829408D4F@voyager.corporate.connx.com -- Thanks & Regards, Kuntal Ghosh EnterpriseDB: http://www.enterprisedb.com
Commits
-
Allow concurrent-safe open() and fopen() in frontend code for Windows
- f02259fe93e7 11.0 landed
- 0ba06e0bfb8c 12.0 landed
-
Fix inclusions of c.h from .h files.
- a72f0365db41 10.0 cited
-
Allow borland compiles.
- fd7c3f67e0bc 8.0.0 cited
-
Corrects issues recently posted by Dann Corbit, allowing libpq/psql to
- 422d4819ee7c 8.0.0 cited