On 07.03.24 17:54, Ashutosh Bapat wrote:
> The pg_dump problems arise because we throw an error when parents have
> conflicting compression and storage properties. The patch that got
> reverted, changed this slightly by allowing a child to override parent's
> properties even when they conflict. It still threw an error when child
> didn't override and parents conflicted. I guess, MergeAttributes()
> raises error when it encounters parents with conflicting properties
> because it can not decide which of the conflicting properties the child
> should inherit. Instead it could just set the DEFAULT properties when
> parent properties conflict but child doesn't override. Thus when
> compression conflicts, child's compression would be set to default and
> when storage conflicts it will be set to the type's default storage.
> Child's properties when specified explicitly would override always. This
> will solve all the pg_dump bugs we saw with the reverted patch and also
> existing bug I reported earlier.
>
> This change would break backward compatibility but I don't think anybody
> would rely on error being thrown when parent properties conflict.
>
> What do you think?
At this point in the development cycle, I would rather not undertake
such changes. We have already discovered with the previous attempt that
there are unexpected pitfalls and lacking test coverage. Also, there
isn't even a patch yet. I suggest we drop this for now, or reconsider
it for PG18, as you wish.