Re: Misleading CREATE TABLE error

Peter Eisentraut <peter_e@gmx.net>

From: Peter Eisentraut <peter_e@gmx.net>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Thom Brown <thom@linux.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2011-11-29T04:33:10Z
Lists: pgsql-hackers
On ons, 2011-11-09 at 12:00 -0500, Robert Haas wrote:
> On Tue, Nov 8, 2011 at 4:49 PM, Thom Brown <thom@linux.com> wrote:
> > I found the following error message misleading:
> >
> > test=# create table cows2 (LIKE cows);
> > ERROR:  inherited relation "cows" is not a table
> > STATEMENT:  create table cows2 (LIKE cows);
> >
> > I'm not trying to inherit a relation, I'm trying to base a table on
> > it.  As it happens, "cows" is a foreign table, which *is* a table,
> > just not a regular table.  It might be useful to add support to clone
> > foreign tables into regular tables, the use-case being that you may
> > wish to import all the data locally into a table of the same
> > structure.  But the gripe here is the suggestion that the relation
> > would have been inherited, which would actually be achieved using
> > INHERITS.
> 
> Interesting.  I agree that there's no obvious reason why that
> shouldn't be allowed to work.  Could be useful with views, too.

I recently came across a situation where LIKE with a composite type
might have been useful.