Tom Lane wrote:
> Michael Glaesemann <grzm@seespotcode.net> writes:
> > On Dec 26, 2006, at 18:39 , Mike Benoit wrote:
> >> ERROR: ORDER BY on a UNION/INTERSECT/EXCEPT result must be on one of
> >> the result columns
>
> > Even though state is a column in both tables, the order by is using
> > an expression, rather than a column.
> > ...
> > I'm not sure of the underlying reasons why your query doesn't work,
> > but give these a shot.
>
> There are some implementation reasons for not supporting expressions
> computed on a UNION result without an intervening sub-SELECT. It's too
> late at night for me to recall exactly what they are :-( --- one is that
> an Append plan node doesn't do any expression evaluation, but I think
> there are some more-subtle issues too. Suffice it to say that we could
> support this if we wanted to throw enough effort at it, but so far other
> problems have seemed more pressing.
>
> In the meantime, it seems like the above-quoted error message is not
> clear enough, since Mike failed to get the point that "the ORDER BY
> item has to be just a simple column name of the UNION output". Anyone
> have a suggestion for better wording?
I have updated the wording from
"ORDER BY on a UNION/INTERSECT/EXCEPT result must be on one of the result columns")));
to:
"ORDER BY on a UNION/INTERSECT/EXCEPT result must match existing result columns")));
The 'match' wording might help, rather then 'use'.
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +