Re: Different compression methods for FPI

Justin Pryzby <pryzby@telsasoft.com>

From: Justin Pryzby <pryzby@telsasoft.com>
To: Michael Paquier <michael@paquier.xyz>
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-22T00:19:27Z
Lists: pgsql-hackers
On Tue, Jun 22, 2021 at 09:11:26AM +0900, Michael Paquier wrote:
> On Sun, Jun 20, 2021 at 11:15:08PM +0500, Andrey Borodin wrote:
> > I have some small questions.
> > 
> > 1.
> > +			report_invalid_record(record, "image at %X/%X compressed with %s not supported, block %d",
> > +								  (uint32) (record->ReadRecPtr >> 32),
> > +								  (uint32) record->ReadRecPtr,
> > +								  "lz4",
> > +								  block_id);
> > Can we point out to user that the problem is in the build?
> 
> What about the following error then?  Say:
> "image at %X/%X compressed with LZ4 not supported by build, block
> %d".

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");

-- 
Justin



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.