When a cursor is opened using dblink_open, only start a transaction
Joe Conway <mail@joeconway.com>
When a cursor is opened using dblink_open, only start a transaction if there isn't one already open. Upon dblink_close, only commit the open transaction if it was started by dblink_open, and only then when all cursors opened by dblink_open are closed. The transaction accounting is done individually for all named connections, plus the persistent unnamed connection.
Files
| Path | Change | +/− |
|---|---|---|
| contrib/dblink/dblink.c | modified | +75 −39 |
| contrib/dblink/expected/dblink.out | modified | +82 −0 |
| contrib/dblink/sql/dblink.sql | modified | +36 −0 |