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.