Re: [HACKERS] Patching dblink.c to avoid warning about open - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: [HACKERS] Patching dblink.c to avoid warning about open
Date
Msg-id 200510071550.j97FoRp03730@candle.pha.pa.us
Whole thread Raw
In response to Re: [HACKERS] Patching dblink.c to avoid warning about open transaction  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [HACKERS] Patching dblink.c to avoid warning about open transaction
List pgsql-patches
Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > Well, as I said in the patch email:
>
> >     The reported problem is that dblink_open/dblink_close() (for cursor
> >     reads) do a BEGIN/COMMIT regardless of the transaction state of the
> >     remote connection.  There was code in dblink.c to track the remote
> >     transaction state (rconn), but it was not being maintained or used.
>
> You should lose the remoteXactOpen flag entirely, in favor of just
> testing PQtransactionStatus() on-the-fly when necessary.  Simpler,
> more reliable, not notably slower.
>
> With that change, the separate remoteConn struct could be dropped
> altogether in favor of just using the PGconn pointer.  This would
> make things notationally simpler, and in fact perhaps allow undoing
> the bulk of the edits in your patch.  As-is I think the patch is
> pretty risky to apply during beta.

The problem with not using rconn is that we are not saving the
transaction status at the _start_ of the cursor open.  If we don't do
that, we have no way of knowing on close if _we_ opened the transaction
or whether it was opened by the user.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-patches by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] Patching dblink.c to avoid warning about open transaction
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] Patching dblink.c to avoid warning about open transaction