Re: No error checking when reading from file using zstd in pg_dump - Mailing list pgsql-hackers

From Tom Lane
Subject Re: No error checking when reading from file using zstd in pg_dump
Date
Msg-id 1448707.1750944836@sss.pgh.pa.us
Whole thread Raw
In response to Re: No error checking when reading from file using zstd in pg_dump  (Evgeniy Gorbanev <gorbanyoves@basealt.ru>)
List pgsql-hackers
Daniel Gustafsson <daniel@yesql.se> writes:
> On 25 Jun 2025, at 17:58, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> It doesn't return true anymore.  Should be more like
>> + * Returns nothing.  Exits via pg_fatal for all error conditions.

> Instead of this I changed the write_func signature to return the number of
> bytes written as size_t.  The API is loosely modelled around the libc stream API so
> going to void seemed less justifiable than size_t, even if the actual
> returnvalue is fairly useless due to erroring out via pg_fatal.

Hm.  My one concern about that is that using "void" ensures that the
compiler will catch any write_funcs or callsites that we missed
updating, whereas replacing bool with size_t probably prevents that
detection.

Of course this is now moot for the in-core code since we presumably
caught everything already.  But I wonder about patches (say to
support an additional compression method) that might be in the
pipeline, or in use in some local fork somewhere.  There's no
certainty that they'd get the word, especially since any tests
that didn't exercise failure conditions would still work.

So on the whole I prefer the "void" approach.  I'm not dead
set on that though, it's just a niggling worry.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Melanie Plageman
Date:
Subject: Re: Simplify VM counters in vacuum code
Next
From: Daniil Davydov
Date:
Subject: Bug with concurrent CREATE OR REPLACE (?)