Bruce Momjian wrote: > Here the column result is an expression, and you reference that. > Updated wording: > > test=> select * from test union select * from test order by x is null; > ERROR: A UNION/INTERSECT/EXCEPT ORDER BY cannot use expressions or functions, only result column names This seems at odds with our message style guidelines. I'd suggest putting the actual error message in errmsg() and the rest as a errhint, maybe (errmsg("invalid UNION/INTERSECT/EXCEPT ORDER BY clause"), errhint("You may specify only output result column names in the ORDER BY clauses.")) or something like that. -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support