Dear All,

I have several tables containing data sorted by 2 keys (neither are keys in db 
terms (not unique), however). I would like to retrieve all rows from all tables 
sorted by the same keys, essentially merging the contents of the tables 
together. While I am completely aware of sort order not being a (fundamental) 
property of an RDBMS table, I am also aware of indices and clustering (in fact, 
data is inserted into the tables into the correct order, and not consequently 
modified in any way). I have a union query like this one:

select a,b,c,d,e from table1 union all
select a,b,c,d,e from table2 union all
etc...
select a,b,c,d,e from tablen order by a,b;

Is there a way to prevent PostgreSQL from doing a full sort on the result set 
after the unions have been completed? Even if I write

(select a,b,c,d,e from table1 order by a,b) union all
(select a,b,c,d,e from table2 order by a,b)  union all
etc...
(select a,b,c,d,e from tablen order by a,b)  order by a,b;

PostgreSQL does not seem to realise (maybe it should not be able to do this 
trick anyway) that the last "order by" clause is merely a final merge step on 
the ordered data sets.

Is there a workaround for this within PostgreSQL (another type of query, 
parameter tuning, stored procedure, anything) or should I use my back-up plan 
of making separate queries and merging the results in the target language?

Thanks a lot,
Ambrus

--
Wagner, Ambrus (IJ/ETH/GBD)
Tool Designer
GSDC Hungary

Location: Science Park, A2 40 008
Phone: +36 1 439 5282 

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to