Re: dblink question please
| От | Joe Conway |
|---|---|
| Тема | Re: dblink question please |
| Дата | |
| Msg-id | 3E4B1CB7.90309@joeconway.com обсуждение исходный текст |
| Ответ на | dblink question please ("Frankie Lam" <frankie@ucr.com.hk>) |
| Список | pgsql-sql |
Frankie Lam wrote:
> Does anyone know if there's a simple way that let dblink function calls in a
> plpgsql function wouldn't raise exception, in case there's sth wrong.
> (e.g. cannot connect to the remote host ......)
Not without hacking dblink.c.
At quick glance it looks like it might be reasonably safe to use
dblink_connect with the lines:
8<---------------------------------
if (PQstatus(persistent_conn) == CONNECTION_BAD)
{ msg = pstrdup(PQerrorMessage(persistent_conn)); PQfinish(persistent_conn); persistent_conn = NULL;
elog(ERROR,"dblink_connect: connection error: %s", msg);
}
8<---------------------------------
changed to something like (untested)
8<---------------------------------
if (PQstatus(persistent_conn) == CONNECTION_BAD)
{ msg = pstrdup(PQerrorMessage(persistent_conn)); PQfinish(persistent_conn); persistent_conn = NULL;
elog(NOTICE,"dblink_connect: connection error: %s", msg); result_text = DatumGetTextP(DirectFunctionCall1(textin,
CStringGetDatum("ERROR"))); PG_RETURN_TEXT_P(result_text);
}
8<---------------------------------
It would be more complex if you want to not use the persistent connection.
HTH,
Joe
В списке pgsql-sql по дате отправления: