dblink()
呼び出し関数の結果として、upによって生成された結果のレコードを単純に渡すことは可能ですか?
create function execute_generic_sql_on_remote_databases(_sql text)
return set of record
language plpgsql
as $$
declare
r record; -- this is already not a real record
begin
-- get connections to several DBs
...
-- send _sql queries to the DBs
...
-- get results of query execution
loop through connections
for r in select MAGIC from dblink_get_results(conn, _sql) loop
return next r;
end loop;
end loop;
-- close connections
...
end;
$$;
この関数は、dblink
実際には次のように呼び出すことができます。
select * from execute_generic_sql_on_remote_databases('SELECT 1') as r(i int);
しかし、いくつか必要MAGIC
です。:(
を使えばplProxy
簡単にできますが、dblink
でできるのであれば でどうするかが問題ですplpgsql
。