In XidInMVCCSnapshot:
> if (snapshot->takenDuringRecovery)
> {
> /*
> * If the snapshot contains full subxact data, the fastest way
> to check
> * things is just to compare the given XID against both subxact
> XIDs and
> * top-level XIDs. If the snapshot overflowed, we have to
> use pg_subtrans
> * to convert a subxact XID to its parent XID, but then we need
> only look
> * at top-level XIDs not subxacts.
> */
...
> }
> else
> {
> int32 j;
>
> /*
> *
> * In recovery we store all xids in the subxact array because
> this
> * is by far the bigger array and we mostly don't know which
> xids
> * are top-level and which are subxacts. The xip array is empty.
> *
> * We start by searching subtrans, if we overflowed.
> */
...
> }
Hang on, isn't this 180 degrees backwards?
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers