Thread: select ... inherits?

select ... inherits?

From
Chris Travers
Date:
I came across a query someone posted in the form of:

SELECT * 
FROM [table_list]
INHERITS ([table_list]);

Naturally, never having seen this before I consulted the docs and there was nothing there that I could find.  So I ran some tests and the syntax seems supported.

It seems according to my tests that this does something rather unexpected, in that it overrides the default column names returned with whatever is in the inherits list, but only when you have a from clause.  

Is this a bug, a feature, or undefined behavior?
--
Best Wishes,
Chris Travers

Efficito:  Hosted Accounting and ERP.  Robust and Flexible.  No vendor lock-in.

Re: select ... inherits?

From
Tom Lane
Date:
Chris Travers <chris.travers@gmail.com> writes:
> I came across a query someone posted in the form of:
> SELECT *
> FROM [table_list]
> INHERITS ([table_list]);

> Naturally, never having seen this before I consulted the docs and there was
> nothing there that I could find.  So I ran some tests and the syntax seems
> supported.

There's no such syntax in Postgres.  It's hard to be sure without seeing
the query you actually ran, but I'm betting the parser thought that
INHERITS was a table alias and the stuff inside parens column aliases.
(Whoever decided that AS should be optional in SQL aliases was a fool.)

            regards, tom lane