diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c index 36a8e3eceb93460ece97872ab5d6e4e2e35ed00b..df1ff05a8fe339f88771d8d5ae803049ed0706a1 100644 --- a/contrib/dblink/dblink.c +++ b/contrib/dblink/dblink.c @@ -153,9 +153,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 \ { \ @@ -183,9 +184,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; \ @@ -598,6 +599,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; @@ -919,6 +921,7 @@ PG_FUNCTION_INFO_V1(dblink_is_busy); Datum dblink_is_busy(PG_FUNCTION_ARGS) { + char *conname = NULL; PGconn *conn = NULL; remoteConn *rconn = NULL; @@ -945,6 +948,7 @@ Datum dblink_cancel_query(PG_FUNCTION_ARGS) { int res = 0; + char *conname = NULL; PGconn *conn = NULL; remoteConn *rconn = NULL; PGcancel *cancel; @@ -979,6 +983,7 @@ Datum dblink_error_message(PG_FUNCTION_ARGS) { char *msg; + char *conname = NULL; PGconn *conn = NULL; remoteConn *rconn = NULL; @@ -1488,6 +1493,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 511dd5efcfbe1fc6bb663a3bcf1525530df69d88..1db153aeb1af861d776530d44b43b7d1ea05b4f9 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