> On Aug 13, 2026, at 05:56, Zsolt Parragi <[email protected]> wrote: > > I have two minor comment for v5, otherwise it looks good to me:
Hi Zsolt,
Thanks a lot for reviewing.
>
> +typedef enum
> +{
> + STREAM_NEW,
> + STREAM_HAS_DATA,
> + STREAM_FINISHED,
> +} pg_stream_state;
> +
>
> This is duplicated in two files, wouldn't be astreamer.h a better place for
> it?
I think this makes sense. Plus your second comment, this enum can be shared by
all 3 astreamers. I moved it to astreamer.h and renamed it to
astreamer_decompression_state.
>
> + if (!mystreamer->stream_finished)
> + pg_fatal("could not decompress data: compressed stream is incomplete");
> +
>
> The other two checks distinguish empty from incomplete, is this
> difference intended?
I do not think that is intentional. My initial implementation did not check for
an empty stream, and gzip uses a different pattern from zstd and LZ4, which is
probably why Daniel initially added the empty-stream check only to zstd and lz4.
I have now added the same check to gzip so that all three astreamers are
consistent.
PFA v6: addressed Zsolt’s comments.
Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/
v6-0001-Fix-detection-of-truncated-compressed-backups.patch
Description: Binary data
