Tom Lane wrote:
> Oliver Jowett <oliver@opencloud.com> writes:
>
>>Tom Lane wrote:
>>
>>>I haven't looked at JDBC, but at least in the libpq code, what we could
>>>safely do is extend the existing no transaction/in transaction/in failed
>>>transaction field to provide a five-way distinction: those three cases
>>>plus in subtransaction/in failed subtransaction.
>
>
>>This will break the existing JDBC driver in nonobvious ways: the current
>>code silently ignores unhandled transaction states in ReadyForQuery,
>
>
> Drat. Scratch that plan then. (Still, silently ignoring unrecognized
> states probably wasn't a good idea for the JDBC code...)
True, but the alternative (screaming and yelling) would also have
broken, just more obviously.
Actually, thinking about it, that behaviour only changed recently, and
from memory the older code completely ignored the transaction state in
ReadyForQuery. The new driver probably hasn't spread too far yet. I'll
sort out a patch so the driver breaks more obviously if it gets
something unexpected.
I still don't think that knowing you're in a subtransaction is very
useful unless you also know the nesting level.
-O