Async dblink functions require a named connection, and therefore should

use DBLINK_GET_NAMED_CONN rather than DBLINK_GET_CONN.
Problem found by Peter Eisentraut and patch by Fujii Masao.
This commit is contained in:
Joe Conway 2011-06-25 15:58:07 -07:00
parent eb03cff820
commit 8af3596d6b
1 changed files with 3 additions and 6 deletions

View File

@ -613,16 +613,13 @@ Datum
dblink_send_query(PG_FUNCTION_ARGS)
{
PGconn *conn = NULL;
char *connstr = NULL;
char *sql = NULL;
remoteConn *rconn = NULL;
char *msg;
bool freeconn = false;
int retval;
if (PG_NARGS() == 2)
{
DBLINK_GET_CONN;
DBLINK_GET_NAMED_CONN;
sql = text_to_cstring(PG_GETARG_TEXT_PP(1));
}
else
@ -711,13 +708,13 @@ dblink_record_internal(FunctionCallInfo fcinfo, bool is_async)
if (PG_NARGS() == 2)
{
/* text,bool */
DBLINK_GET_CONN;
DBLINK_GET_NAMED_CONN;
fail = PG_GETARG_BOOL(1);
}
else if (PG_NARGS() == 1)
{
/* text */
DBLINK_GET_CONN;
DBLINK_GET_NAMED_CONN;
}
else
/* shouldn't happen */