Tom Lane wrote:
> Jan Wieck <janwieck@yahoo.com> writes:
> > Joep deVocht wrote:
> >> Is there a way to determine whether a transaction
> >> is started and not ended yet?
>
> > I think it's time to add a little boolean function, that
> > actually returns IsTransactionBlock(), and have a libpq side
> > wrapper around PQfn() calling it.
>
> If you're in TRANSACTION ABORT state, I do not think that will work.
Sort of, because that's the only moment when PQfn() will
result in something different than PGRES_COMMAND_OK :-)
>
> Offhand this seems more of a protocol issue. A straightforward solution
> would be to add a status indicator (with three states: out of
> transaction, in transaction, in aborted transaction) to the
> ReadyForQuery message, but we can't do that without a protocol change,
> which is probably more trouble than it's worth.
>
> It seems like it might be possible for libpq (or other clients) to keep
> track of the transaction state by paying attention to BEGIN, COMMIT,
> ABORT command-completion tags and ERROR messages, but I haven't worked
> through the details.
PQexec(c, "BEGIN; SELECT now()");
Will there even be a BEGIN command tag sent?
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck@Yahoo.com #
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com