On 23 March 2017 at 02:08, Simon Riggs <si...@2ndquadrant.com> wrote:
> And of course, we might return "subcommitted" also, which could > technically also be an abort in some cases, so we'd need to do a wait > loop on that. Users generally don't see subxact IDs, so it wasn't something I was overly concerned by. Most notably, txid_current() doesn't report them. Users who want to know the commit status of an xact that had a commit in-flight when they lost access to it due to server crash, network loss, etc aren't going to care about subxacts. If you lose your connection after a RELEASE SAVEPOINT you know the outer xact will get aborted or the state of the individual subxacts. They're visible in heap tuples, but you can only see uncommitted heap tuples from your own top-level xid. For anything else, if you can see the xid in xmin you know it committed. There isn't really any reason you'd be looking up tuple xids with txid_status anyway, and if you did you'd have to pay attention to mess like multixacts in xmax ... but you can't tell from the xid alone if it's a multixact or not, so this doesn't make sense with xids that could be multis anyway. If we're going to handle subxacts specially, we should probably report them as "sub-committed" if we find that the current xid is a committed subxact member of an outer xact that is still in-progress. But IMO it's pretty pointless since you won't be dealing with subxact IDs in the application anyway. > Which makes me think it would be confusing to say "in progress" for > when it is our current xid, since the user might wait until it is > complete and then wait forever. Prefer it if it said "in progress - > current transaction" I'm fine with "current transaction". Though I think it's kind of a moot point as I don't see any reason for an application to ever be doing the equivalent of txid_status(txid_current()) in the first place. But it's harmless enough. -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers