Re: BUG #17288: PSQL bug with COPY command (Windows)

Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>

From: Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>
To: Dmitry Koval <d.koval@postgrespro.ru>
Cc: Michael Paquier <michael@paquier.xyz>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2021-11-19T11:44:14Z
Lists: pgsql-bugs
On Fri, Nov 19, 2021 at 11:45 AM Dmitry Koval <d.koval@postgrespro.ru>
wrote:

>  >We can check for redirection without calling
>  >GetFileInformationByHandle(), please consider the attached patch.
>
> There are doubts:
>
> 1) we always use system function (GetFinalPathNameByHandleA or
> GetFileInformationByHandle); sometimes we use these two calls
> GetFinalPathNameByHandleA + GetFileInformationByHandle
> together (in freopen() case);
>
> 2) function GetFinalPathNameByHandleA is slower than
> GetFileInformationByHandle (2-4 times).
> Might be exist a cheaper way than GetFinalPathNameByHandleA?
>
> I don't understand why this way better than using one call
> GetFileInformationByHandle...
>
> Personally, I think it is more readable, although a comment should explain
what we are checking.

GetFinalPathNameByHandleA() is slower when there is redirection, when there
is no redirection it's similar or faster than GetFileInformationByHandle(),
and that should be the most common case.

Regards,

Juan José Santamaría Flecha

Commits

  1. Fix compatibility thinko for fstat() on standard streams in win32stat.c

  2. Fix fstat() emulation on Windows with standard streams