Re: Add dblink function to check if a named connection exists
От | Tommy Gildseth |
---|---|
Тема | Re: Add dblink function to check if a named connection exists |
Дата | |
Msg-id | 484506AD.7050102@usit.uio.no обсуждение исходный текст |
Ответ на | Re: Add dblink function to check if a named connection exists (Joe Conway <mail@joeconway.com>) |
Список | pgsql-hackers |
Joe Conway wrote: > Tom Lane wrote: >> Tommy Gildseth <tommy.gildseth@usit.uio.no> writes: >>> One obvious disadvantage of this approach, is that I need to connect >>> and disconnect in every function. A possible solution to this, would >>> be having a function f.ex dblink_exists('connection_name') that >>> returns true/false depending on whether the connection already exists. >> >> Can't you do this already? >> >> SELECT 'myconn' = ANY (dblink_get_connections()); >> >> A dedicated function might be a tad faster, but it probably isn't going >> to matter compared to the overhead of sending a remote query. > > I agree. The above is about as simple as > SELECT dblink_exists('dtest1'); > and probably not measurably slower. If you still think a dedicated > function is needed, please send the output of some performance testing > to justify it. > > If you really want the notational simplicity, you could use an SQL > function to wrap it: > > CREATE OR REPLACE FUNCTION dblink_exists(text) > RETURNS bool AS $$ > SELECT $1 = ANY (dblink_get_connections()) > $$ LANGUAGE sql; dblink_get_connections() returns null if there are no connections though, so the above will fail if you haven't already established a connection, unless you also check for null, and not just false. I guess you could rewrite the above function to something like: CREATE OR REPLACE FUNCTION dblink_exists(text) RETURNS bool AS $$ SELECT COALESCE($1 = ANY (dblink_get_connections()), false) $$ LANGUAGE sql; -- Tommy Gildseth
В списке pgsql-hackers по дате отправления: