Hannu Krosing wrote:
> Ühel kenal päeval, K, 2006-05-24 kell 09:40, kirjutas Tom Lane:
> > Simon Riggs <simon@2ndquadrant.com> writes:
> > > On Wed, 2006-05-24 at 11:17 +0300, Hannu Krosing wrote:
> > >> Why "never set back again" ? I'd guess that it should be set back to
> > >> true when it is not an inherited column anymore, that is when its
> > >> attinhcount reaches zero.
> >
> > > Because you have no record of whether it was created locally or
> > > inherited when originally created. And: do you care? Why?
> >
> > The invariant is supposed to be that every attribute has attislocal
> > true or attinhcount > 0 (or both).
>
> In what case does it have both ?
create table parent (foo int);
create table child (foo int) inherits (parent);
In the child, the column is local but it's also inherited from parent.
So if you drop the column from the parent, it should be kept in the
child.
> > Otherwise it has no justification
> > to exist. I see in the regression database that someone has broken
> > this invariant; it looks like LIKE inheritance is misimplemented.
>
> I don't think that LIKE inheritance is inheritance at all, rather it is
> a create-time macro.
In that case the columns should be marked attislocal.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.