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 (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to