Async dblink functions require a named connection, and therefore should
authorJoe Conway <[email protected]>
Sat, 25 Jun 2011 22:58:07 +0000 (15:58 -0700)
committerJoe Conway <[email protected]>
Sat, 25 Jun 2011 22:58:07 +0000 (15:58 -0700)
use DBLINK_GET_NAMED_CONN rather than DBLINK_GET_CONN.
Problem found by Peter Eisentraut and patch by Fujii Masao.

contrib/dblink/dblink.c

index 19b98fb73d1d28e052648b75db48978be816f97f..b8d0342085d6fc539a4f09f5de1f373bfd4aca47 100644 (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 */