]> granicus.if.org Git - postgresql/commit
Centralize libpq's low-level code for dropping a connection.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 7 Sep 2012 20:02:23 +0000 (16:02 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 7 Sep 2012 20:02:23 +0000 (16:02 -0400)
commit210eb9b743c0645df05e5c8be4490ba4f09fc871
tree8bd3c4d225a794eada3f8537f221b50fc6cafa11
parentdda589c96b89320446933108ca946e7e6b8eb9d2
Centralize libpq's low-level code for dropping a connection.

Create an internal function pqDropConnection that does the physical socket
close and cleans up closely-associated state.  This removes a bunch of ad
hoc, not always consistent closure code.  The ulterior motive is to have a
single place to wait for a spawned child backend to exit, but this seems
like good cleanup even if that never happens.

I went back and forth on whether to include "conn->status = CONNECTION_BAD"
in pqDropConnection's actions, but for the moment decided not to.  Only a
minority of the call sites actually want that, and in any case it's
arguable that conn->status is slightly higher-level state, and thus not
part of this function's purview.
src/interfaces/libpq/fe-connect.c
src/interfaces/libpq/fe-misc.c
src/interfaces/libpq/fe-protocol3.c
src/interfaces/libpq/libpq-int.h