PostgreSQL assumes that top-level xid commit is atomic, along with all of its subtransactions. So the API having access to only Get/Set at the xid level would not work. We would need TransactionIdSetTreeStatus() rather than just SetStatus. GetStatus is not atomic.
XTM API has function SetTransactionStatus but it actually encapsulate TransactionIdSetTreeStatus.
OK, thanks.
At present, I can't tell whether you need subtrans and multixact calls in the API as well. I would imagine we probably do, though we might imagine an implementation that didn't support those concepts.
Postgres-XL doesn't support subtransactions. Neither did we at this moment. Support of subtransactions will be our next step.
OK. I guess it depends where we want to put the patch; discussion here means in-core, so for it to go in here, we do need subxacts etc.
--
Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services