Re: [HACKERS] Custom compression methods
Justin Pryzby <pryzby@telsasoft.com>
On Mon, Mar 08, 2021 at 03:26:04PM -0500, Robert Haas wrote: > On Mon, Mar 8, 2021 at 5:02 AM Dilip Kumar <dilipbalaut@gmail.com> wrote: > > So now only pending point is, how do we handle the upgrade when you > > are upgrading from --with-lz4 to --without-lz4 binary and a couple of > > options discussed here are > > a) Should we allow table creation with lz4 even if it is compiled > > --without-lz4? In case of xml we always allow table creation even if > > it is compiled --wthout-libxml > > b) Instead of allowing this always, only allow during binary upgrade. > It would be nice to have a way to force > anything compressed with the old method to be re-compressed with the > new method, but not having that doesn't preclude allowing the > parameter to be changed. Doesn't vacuum full/cluster/dump+restore do that ? > I think the pg_dump argument should be --no-toast-compression, not > --no-toast-compressions. I agree with Justin that pg_restore should > have the option also. I mentioned that this is hard to do, since the compression is stored inside the text blob that creates the whole table...Unless toast compression is a per-relation property rather than per-attribute. I don't think pg_restore should try to reverse-engineer the text output by pg_dump to elide the "COMPRESSION lz4". I think maybe CREATE shouldn't support COMPRESSION at all, and pg_dump/restore would use ALTER. That makes this very slightly less of an issue, as one can use pg_restore -f- |grep -v '^ALTER TABLE .* SET COMPRESSION' |psql -d, rather than sed 's/COMPRESSION lz4//' > Man, it would be really nice to be able to set the default for new > tables, rather than having all these places hard-coded to use > DefaultCompressionMethod. Surely lotsa people are going to want to set > toast_compression = lz4 in postgresql.conf and forget about it. I don't understand - isn't that what 0002 does ? Subject: [PATCH v32 2/4] Add default_toast_compression GUC -- Justin
Commits
-
docs: Update TOAST storage docs for configurable compression.
- e8c435a824e1 14.0 landed
-
Further tweaking of pg_dump's handling of default_toast_compression.
- 54bb91c30e39 14.0 landed
-
Fix interaction of TOAST compression with expression indexes.
- 5db1fd7823a1 14.0 landed
-
Tidy up more loose ends related to configurable TOAST compression.
- e5595de03ec6 14.0 landed
-
Short-circuit slice requests that are for more than the object's size.
- 063dd37ebc76 14.0 landed
-
Mostly-cosmetic adjustments of TOAST-related macros.
- aeb1631ed207 14.0 landed
-
Remove useless configure probe for <lz4/lz4.h>.
- 2c75f8a612b2 14.0 landed
-
Error on invalid TOAST compression in CREATE or ALTER TABLE.
- a4d5284a10b5 14.0 landed
-
docs: Fix omissions related to configurable TOAST compression.
- 24f0e395ac58 14.0 landed
-
More code cleanup for configurable TOAST compression.
- 226e2be3876d 14.0 landed
-
Bring configure support for LZ4 up to snuff.
- 4d399a6fbeb7 14.0 landed
-
Make compression.sql regression test independent of default.
- fd1ac9a54896 14.0 landed
-
Use valid compression method in brin_form_tuple
- 882b2cdc08c4 14.0 landed
-
Fix up pg_dump's handling of per-attribute compression options.
- aa25d1089ac0 14.0 landed
-
Allow configurable LZ4 TOAST compression.
- bbe0a81db69b 14.0 landed
-
Fix inconsistencies in the code
- 6b8548964bcc 13.0 cited
-
Mostly-cosmetic improvements in memory chunk header alignment coding.
- f65d21b25808 11.0 cited
-
Allow numeric to use a more compact, 2-byte header in many cases.
- 145343534c15 9.1.0 cited