On Wed, Jun 6, 2018 at 2:39 PM, Amit Kapila <amit.kapil...@gmail.com> wrote: > On Wed, Jun 6, 2018 at 10:18 AM, Michael Paquier <mich...@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#d90a5a6c612a39408103e6ecdd77b829408...@voyager.corporate.connx.com -- Thanks & Regards, Kuntal Ghosh EnterpriseDB: http://www.enterprisedb.com