aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/dblink/dblink.c12
-rw-r--r--contrib/dblink/expected/dblink.out4
2 files changed, 11 insertions, 5 deletions
diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index 0812a3b2b56..98a1cc055f1 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -167,9 +167,10 @@ typedef struct remoteConnHashEnt
do { \
char *conname_or_str = text_to_cstring(PG_GETARG_TEXT_PP(0)); \
rconn = getConnectionByName(conname_or_str); \
- if(rconn) \
+ if (rconn) \
{ \
conn = rconn->conn; \
+ conname = conname_or_str; \
} \
else \
{ \
@@ -197,9 +198,9 @@ typedef struct remoteConnHashEnt
#define DBLINK_GET_NAMED_CONN \
do { \
- char *conname = text_to_cstring(PG_GETARG_TEXT_PP(0)); \
+ conname = text_to_cstring(PG_GETARG_TEXT_PP(0)); \
rconn = getConnectionByName(conname); \
- if(rconn) \
+ if (rconn) \
conn = rconn->conn; \
else \
DBLINK_CONN_NOT_AVAIL; \
@@ -612,6 +613,7 @@ PG_FUNCTION_INFO_V1(dblink_send_query);
Datum
dblink_send_query(PG_FUNCTION_ARGS)
{
+ char *conname = NULL;
PGconn *conn = NULL;
char *sql = NULL;
remoteConn *rconn = NULL;
@@ -933,6 +935,7 @@ PG_FUNCTION_INFO_V1(dblink_is_busy);
Datum
dblink_is_busy(PG_FUNCTION_ARGS)
{
+ char *conname = NULL;
PGconn *conn = NULL;
remoteConn *rconn = NULL;
@@ -959,6 +962,7 @@ Datum
dblink_cancel_query(PG_FUNCTION_ARGS)
{
int res = 0;
+ char *conname = NULL;
PGconn *conn = NULL;
remoteConn *rconn = NULL;
PGcancel *cancel;
@@ -993,6 +997,7 @@ Datum
dblink_error_message(PG_FUNCTION_ARGS)
{
char *msg;
+ char *conname = NULL;
PGconn *conn = NULL;
remoteConn *rconn = NULL;
@@ -1502,6 +1507,7 @@ PG_FUNCTION_INFO_V1(dblink_get_notify);
Datum
dblink_get_notify(PG_FUNCTION_ARGS)
{
+ char *conname = NULL;
PGconn *conn = NULL;
remoteConn *rconn = NULL;
PGnotify *notify;
diff --git a/contrib/dblink/expected/dblink.out b/contrib/dblink/expected/dblink.out
index 511dd5efcfb..1db153aeb1a 100644
--- a/contrib/dblink/expected/dblink.out
+++ b/contrib/dblink/expected/dblink.out
@@ -371,7 +371,7 @@ SELECT *
FROM dblink('myconn','SELECT * FROM foobar',false) AS t(a int, b text, c text[])
WHERE t.a > 7;
NOTICE: relation "foobar" does not exist
-CONTEXT: Error occurred on dblink connection named "unnamed": could not execute query.
+CONTEXT: Error occurred on dblink connection named "myconn": could not execute query.
a | b | c
---+---+---
(0 rows)
@@ -494,7 +494,7 @@ SELECT dblink_close('myconn','rmt_foo_cursor');
-- this should fail because there is no open transaction
SELECT dblink_exec('myconn','DECLARE xact_test CURSOR FOR SELECT * FROM foo');
ERROR: DECLARE CURSOR can only be used in transaction blocks
-CONTEXT: Error occurred on dblink connection named "unnamed": could not execute command.
+CONTEXT: Error occurred on dblink connection named "myconn": could not execute command.
-- reset remote transaction state
SELECT dblink_exec('myconn','ABORT');
dblink_exec