Re: Problems with UNION ALL and ORDER BY - Mailing list pgsql-sql

From Tom Lane
Subject Re: Problems with UNION ALL and ORDER BY
Date
Msg-id 12126.1091466582@sss.pgh.pa.us
Whole thread Raw
In response to Re: Problems with UNION ALL and ORDER BY  (Kaloyan Iliev Iliev <news1@faith.digsys.bg>)
List pgsql-sql
Kaloyan Iliev Iliev <news1@faith.digsys.bg> writes:
> As I say in my previous letter I am using 7.2.3. If you wish I can show 
> you the query and the result to see for yourself, that there is 
> something wrong. It just don't order the overall result but the separate 
> results of the both subqueries.

Quite honestly, I don't believe it.  In 7.2 I get

regression=# explain select * from tenk1 a union all select * from tenk1 b order by unique1;
NOTICE:  QUERY PLAN:

Sort  (cost=3128.28..3128.28 rows=20000 width=148) ->  Append  (cost=0.00..760.00 rows=20000 width=148)       ->
SubqueryScan *SELECT* 1  (cost=0.00..380.00 rows=10000 width=148)             ->  Seq Scan on tenk1 a
(cost=0.00..380.00rows=10000 width=148)       ->  Subquery Scan *SELECT* 2  (cost=0.00..380.00 rows=10000 width=148)
        ->  Seq Scan on tenk1 b  (cost=0.00..380.00 rows=10000 width=148)
 

EXPLAIN

and as you can see there's only one sort step being applied to the union
result.

Now if EXPLAIN shows you a different sorting structure for your query,
then I'd be interested to see the exact query and the EXPLAIN output.
But what I think is that you are misinterpreting the sorting result you
get.  If you are using a non-C locale you may be seeing some pretty
weird sorting rules :-(
        regards, tom lane


pgsql-sql by date:

Previous
From: Gaetano Mendola
Date:
Subject: Re: Problems with UNION ALL and ORDER BY
Next
From: Kaloyan Iliev Iliev
Date:
Subject: Problems with UNION ALL and ORDER BY