On Fri, Mar 19, 2021 at 6:22 PM Alvaro Herrera <alvhe...@alvh.no-ip.org> wrote: > Do you mean the column storage strategy, attstorage? I don't think > that's really related, because the difference there is not a GUC setting > but a compiled-in default for the type. In the case of compression, I'm > not sure it makes sense to do it like that, but I can see the clutter > argument: if we dump compression for all columns, it's going to be super > noisy.
I agree. > (At least, for binary upgrade surely you must make sure to apply the > correct setting regardless of defaults on either system). It's not critical from a system integrity point of view; the catalog state just dictates what happens to new data. You could argue that if, in a future release, we change the default to lz4, it's good for pg_upgrade to migrate users to a set of column definitions that will use that for new data. > Maybe it makes sense to dump the compression clause if it is different > from pglz, regardless of the default on the source server. Then, if the > target server has chosen lz4 as default, *all* columns are going to end > up as lz4, and if it hasn't, then only the ones that were lz4 in the > source server are going to. That seems reasonable behavior. Also, if > some columns are lz4 in source, and target does not have lz4, then > everything is going to work out to not-lz4 with just a bunch of errors > in the output. Well, I really do hope that some day in the bright future, pglz will no longer be the thing we're shipping as the postgresql.conf default. So we'd just be postponing the noise until then. I think we need a better idea than that. -- Robert Haas EDB: http://www.enterprisedb.com