Re: Trying out libarchive for reading user-generated WAL tarballs
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-10T08:14:07Z
Lists: pgsql-hackers
Attachments
- v3-0001-Provide-astreamer_plain_reader-for-reading-files.patch (text/x-patch) patch v3-0001
- v3-0002-pg_waldump-Read-data-with-astreamer_plain_reader.patch (text/x-patch) patch v3-0002
- v3-0003-libarchive-Add-configure-and-meson-options.patch (text/x-patch) patch v3-0003
- v3-0004-libarchive-Provide-astreamer_libarchive_reader.patch (text/x-patch) patch v3-0004
- v3-0005-fixup-Use-more-efficient-zero-copy-API.patch (text/x-patch) patch v3-0005
- v3-0006-pg_waldump-Use-astreamer_libarchive_reader.patch (text/x-patch) patch v3-0006
On Fri, Apr 10, 2026 at 6:33 PM Thomas Munro <thomas.munro@gmail.com> wrote: > On Sun, Apr 5, 2026 at 2:42 PM Thomas Munro <thomas.munro@gmail.com> wrote: > > Perhaps that could be fixed if astreamer_file.c provided > > "astreamer_file_reader" with the same semantics, so that it could > > unconditionally call astreamer_pull(privateInfo->archive_streamer), > > instead of doing the read, push-into-stream itself? Just a thought. > > That seems to work. Added to open commitfest as https://commitfest.postgresql.org/patch/6665/. But I should have waited for CI before posting the last version, because it eventually reminded me that Windows needs: - streamer->file = fopen(pathname, "r"); + streamer->file = fopen(pathname, "rb");