提交 d1824a5c 编写于 作者: J Joe Conway

Fix regression in dblink_disconnect() reported by Eduardo Stern:

persistent_conn was left dangling after a disconnect in the
unnamed connection case, causing a subsequent disconnect to
crash the backend.
上级 dd01cfe1
......@@ -256,6 +256,8 @@ dblink_disconnect(PG_FUNCTION_ARGS)
deleteConnection(conname);
pfree(rcon);
}
else
persistent_conn = NULL;
PG_RETURN_TEXT_P(GET_TEXT("OK"));
}
......
......@@ -185,13 +185,11 @@ SELECT dblink_disconnect();
OK
(1 row)
-- should generate "no connection to the server" error
-- should generate "connection not available" error
SELECT *
FROM dblink('SELECT * FROM foo') AS t(a int, b text, c text[])
WHERE t.a > 7;
ERROR: sql error
DETAIL: no connection to the server
ERROR: connection not available
-- put more data into our slave table, first using arbitrary connection syntax
-- but truncate the actual return value so we can use diff to check for success
SELECT substr(dblink_exec('dbname=regression','INSERT INTO foo VALUES(10,''k'',''{"a10","b10","c10"}'')'),1,6);
......
......@@ -105,7 +105,7 @@ FROM dblink_fetch('rmt_foo_cursor',4) AS t(a int, b text, c text[]);
-- close the persistent connection
SELECT dblink_disconnect();
-- should generate "no connection to the server" error
-- should generate "connection not available" error
SELECT *
FROM dblink('SELECT * FROM foo') AS t(a int, b text, c text[])
WHERE t.a > 7;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册