aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/transam/xlogutils.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2014-02-03 21:30:05 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2014-02-03 21:30:28 -0500
commiteb3d350db3fe89e9f58aa82f6b490e2aa457028f (patch)
treea923a5c713ca599667ef67d2dfa753fb62c21222 /src/backend/access/transam/xlogutils.c
parent5203b6a752fedb771edc78e6b7b6b8f548de3032 (diff)
downloadpostgresql-eb3d350db3fe89e9f58aa82f6b490e2aa457028f.tar.gz
postgresql-eb3d350db3fe89e9f58aa82f6b490e2aa457028f.zip
Improve connection-failure error handling in contrib/postgres_fdw.
postgres_fdw tended to say "unknown error" if it tried to execute a command on an already-dead connection, because some paths in libpq just return a null PGresult for such cases. Out-of-memory might result in that, too. To fix, pass the PGconn to pgfdw_report_error, and look at its PQerrorMessage() string if we can't get anything out of the PGresult. Also, fix the transaction-exit logic to reliably drop a dead connection. It was attempting to do that already, but it assumed that only connection cache entries with xact_depth > 0 needed to be examined. The folly in that is that if we fail while issuing START TRANSACTION, we'll not have bumped xact_depth. (At least for the case I was testing, this fix masks the other problem; but it still seems like a good idea to have the PGconn fallback logic.) Per investigation of bug #9087 from Craig Lucas. Backpatch to 9.3 where this code was introduced.
Diffstat (limited to 'src/backend/access/transam/xlogutils.c')
0 files changed, 0 insertions, 0 deletions