On Wed, Apr 13, 2011 at 11:46:45PM -0400, Tom Lane wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
> > If we adopt the elsewhere-proposed approach of forbidding the use of
> > rowtypes to create typed tables, the circularity-checking logic here
> > can become simpler. I think it's not actually water-tight right now:
>
> > rhaas=# create table a (x int);
> > CREATE TABLE
> > rhaas=# create table b of a;
> > CREATE TABLE
> > rhaas=# create table c () inherits (b);
> > CREATE TABLE
> > rhaas=# create table d of c;
> > CREATE TABLE
> > rhaas=# alter table a of d;
> > ALTER TABLE
>
> "alter table a of d"? What the heck does that mean, and why would it be
> a good idea?
CREATE TABLE a ...; ...; ALTER TABLE a OF d; = CREATE TABLE a OF d;
It's a good idea as a heavy lifter for `pg_dump --binary-upgrade'. See the rest
of this thread for the full background.