Re: Add dblink function to check if a named connection exists

From: Joe Conway <mail(at)joeconway(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Tommy Gildseth <tommy(dot)gildseth(at)usit(dot)uio(dot)no>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Add dblink function to check if a named connection exists
Date: 2008-06-02 00:14:13
Message-ID: 48433B55.30502@joeconway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tom Lane wrote:
> Tommy Gildseth <tommy(dot)gildseth(at)usit(dot)uio(dot)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;

contrib_regression=# SELECT dblink_exists('dtest1');
dblink_exists
---------------
f
(1 row)

I guess it might be worthwhile adding the SQL function definition to
dblink.sql.in as an enhancement in 8.4.

Joe

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David E. Wheeler 2008-06-02 03:53:25 Case-Insensitve Text Comparison
Previous Message David Fetter 2008-06-01 23:33:55 == PostgreSQL Weekly News - June 01 2008 ==