Re: Different compression methods for FPI

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Justin Pryzby <pryzby@telsasoft.com>
Cc: Andrey Borodin <x4mmm@yandex-team.ru>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, Heikki Linnakangas <hlinnaka@iki.fi>, pgsql-hackers@postgresql.org, Thomas Munro <thomas.munro@gmail.com>, Peter Geoghegan <pg@bowt.ie>, Andres Freund <andres@anarazel.de>
Date: 2021-06-22T01:13:12Z
Lists: pgsql-hackers
On Mon, Jun 21, 2021 at 07:19:27PM -0500, Justin Pryzby wrote:
> The two similar, existing messages are:
> 
> +#define NO_LZ4_SUPPORT() \
> +       ereport(ERROR, \
> +                       (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), \
> +                        errmsg("unsupported LZ4 compression method"), \
> +                        errdetail("This functionality requires the server to be built with lz4 support."), \
> +                        errhint("You need to rebuild PostgreSQL using --with-lz4.")))
> 
> src/bin/pg_dump/pg_backup_archiver.c:                           fatal("cannot restore from compressed archive (compression not supported in this installation)");
> src/bin/pg_dump/pg_backup_archiver.c:           pg_log_warning("archive is compressed, but this installation does not support compression -- no data will be available");
> src/bin/pg_dump/pg_dump.c:              pg_log_warning("requested compression not available in this installation -- archive will be uncompressed");

The difference between the first message and the rest is that the
backend has much more room in terms of error verbosity while
xlogreader.c needs to worry also about the frontend.  In this case, we
need to worry about the block involved and its LSN.  Perhaps you have
a suggestion?
--
Michael

Commits

  1. Add more error context to RestoreBlockImage() and consume it

  2. Add support for LZ4 with compression of full-page writes in WAL

  3. Extended statistics on expressions

  4. Be clear about whether a recovery pause has taken effect.

  5. Add GUC to enable compression of full page images stored in WAL.