On Mon, Mar 8, 2021 at 3:59 PM Justin Pryzby <pry...@telsasoft.com> wrote:
> > 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 ?

Well, dump and restore will do it, certainly, but I don't think VACUUM
FULL or CLUSTER will. I haven't tested it, though, so maybe I'm wrong.

> > 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".

Oh, yeah. I guess we have to leave that out then.

> 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//'

TBH, that doesn't seem very nice to me. I think it's usually better to
create objects with the right properties initially rather than
creating them wrong and then fixing them afterwards.

> > 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 ?

Oh, man, you want me to look at all the patches and not just the first one? :-)

-- 
Robert Haas
EDB: http://www.enterprisedb.com


Reply via email to