On Fri, Nov 13, 2015 at 08:24:02PM -0500, Bruce Momjian wrote:
> Thank you for the report. This is embarrassing, but the code was
> testing for the wrong return value on Windows. We used a macro to
> define the same symbol on Windows and Unix (pg_copy_file), but for
> Windows, we should have been testing for zero, while the code only
> tested for a -1 return failure. You can see the Windows failure zero
> return value defined here:
>
> https://msdn.microsoft.com/en-us/library/windows/desktop/aa363851%28v=vs.85%29.aspx
>
> Return value
>
> If the function succeeds, the return value is nonzero.
> If the function fails, the return value is zero. To get extended error
> information, call GetLastError.
>
> We do something similar for hard links, but we create a wrapper function
> to return the proper value (-1), and we call it twice, so it seems wise
> to keep that unchanged.
>
> The attached patch fixes this and will be applied to all active branches
> in the next minor release. Sorry for the bug.
Patch applied and backpatched through 9.1.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ As you are, so once was I. As I am, so you will be. +
+ Roman grave inscription +