Re: table inheritance versus column compression and storage settings

Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>

From: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
To: Peter Eisentraut <peter@eisentraut.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-03-21T11:16:29Z
Lists: pgsql-hackers
On Thu, Mar 21, 2024 at 3:19 PM Peter Eisentraut <peter@eisentraut.org>
wrote:

> 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.
>
>
I am fine with this. Should I mark the CF entry as RWF?

-- 
Best Wishes,
Ashutosh Bapat

Commits

  1. Revert "Improve compression and storage support with inheritance"

  2. Improve compression and storage support with inheritance

  3. Delay build of Memoize hash table until executor run

  4. Fix locking when fixing an incomplete split of a GIN internal page