| From: | Bruno Wolff III <bruno(at)wolff(dot)to> | 
|---|---|
| To: | Dennis Bjorklund <db(at)zigo(dot)dhs(dot)org> | 
| Cc: | Justin Clift <jc(at)telstra(dot)net>, PostgreSQL Hackers Mailing List <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: Bug with view definitions? | 
| Date: | 2004-07-01 16:30:53 | 
| Message-ID: | 20040701163053.GB1438@wolff.to | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Thu, Jul 01, 2004 at 15:19:32 +0200,
  Dennis Bjorklund <db(at)zigo(dot)dhs(dot)org> wrote:
> 
> Looking again at the doc and the example I now know why it can't parse 
> it. The example when simplified is:
> 
> SELECT *
>   FROM (select 1 ORDER BY 1
>         UNION ALL
>         select 2) AS x;
> 
> and it does not parse since the there is an ORDER BY in the first query. 
> If we look at the doc page then the UNION comes before the ORDER BY, so it 
> is in fact an invalid query (I've not checke the standard, just the select 
> doc page).
> 
> If you put a () around the first (inner) select it all works. But why 
> is the order by there at all? The order of the rows from the UNION ALL can 
> (in theory) be random anyway, right?
If DISTINCT ON or LIMIT was used in inner select, then the ORDER BY would
be relevant; so you can't just blindly remove ORDER BY when it is part of
a union.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dennis Bjorklund | 2004-07-01 16:32:30 | Re: Bug with view definitions? | 
| Previous Message | Justin Clift | 2004-07-01 15:04:55 | Re: Bug with view definitions? |