Re: pg_dump/pg_restore: Fix stdin/stdout handling of custom format on Win32

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

From: Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>
To: Daniel Watzinger <daniel.watzinger@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, Daniel Gustafsson <daniel@yesql.se>, pgsql-hackers@postgresql.org
Date: 2023-03-14T12:47:09Z
Lists: pgsql-hackers
Please, don't top post.

On Tue, Mar 14, 2023 at 12:30 PM Daniel Watzinger <
daniel.watzinger@gmail.com> wrote:

> I'm sorry I couldn't contribute to the discussion in time. The fix of the
> fstat() Win32 port looks good to me. I agree that there's a need for
> multiple fseek() ports to address the shortcomings of the MSVC
> functionality.
>
> The documentation event states that "on devices incapable of seeking, the
> return value is undefined". A simple wrapper using GetFileType() or the new
> fstat(), to filter non-seekable devices before delegation, will probably
> suffice.
>
>
> https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/fseek-fseeki64?view=msvc-170
>

I have just posted a patch to enforce the detection of unseekable streams
in the fseek() calls [1], please feel free to review it.

[1]
https://www.postgresql.org/message-id/CAC%2BAXB26a4EmxM2suXxPpJaGrqAdxracd7hskLg-zxtPB50h7A%40mail.gmail.com

Regards,

Juan José Santamaría Flecha

Commits

  1. Improve WIN32 port of fstat() to detect more file types