On Wed, 29 Jun 2011 13:55:58 +0200, Svetlin Manavski
<svetlin.manavski@gmail.com> wrote:
> Question: Is there a way to get the same result from within a PL/pgSQL
> function but running all the sub-queries in parallel? In case it is not
> directly available, which one would be the simplest way to implement it
> in
> my application? (I am very keen to avoid the obvious solution of an
> additional multi-threaded layer which would do it out of the RDBMS)
Have you tried dblink_send_query() + dblink_get_results() yet?
http://www.postgresql.org/docs/current/static/contrib-dblink-send-query.html
You'd have to do something like this to your queries [untested]:
select dblink_send_query('remote1','select * from
appqosfe.F_total_utilization(1306918800000000000::INT8, NULL,
60000000000::INT8, NULL)');
(select * from appqosfe.F_total_utilization(1306918800000000000::INT8,
NULL,
60000000000::INT8, NULL))
UNION ALL
(SELECT * from dblink_get_result('remote1') as T1(detectroid numeric,
timegroup numeric,
numbytes numeric, numpackets numeric))
order by timegroup asc;
i.e. start your remote query/-ies asynchronously, then collect the results
in the UNION query. At least in theory it should work...
Regards,
Marinos