Re: [COMMITTERS] pgsql: Fix traversal of half-frozen update chains
От | Peter Geoghegan |
---|---|
Тема | Re: [COMMITTERS] pgsql: Fix traversal of half-frozen update chains |
Дата | |
Msg-id | CAH2-Wz=vhurcDjg_u_JgqNmp5_Ge2nRJwMHdbP=dGgfzd50pTA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [COMMITTERS] pgsql: Fix traversal of half-frozen update chains (Peter Geoghegan <pg@bowt.ie>) |
Список | pgsql-committers |
On Tue, Oct 17, 2017 at 12:23 PM, Peter Geoghegan <pg@bowt.ie> wrote: > On Tue, Oct 17, 2017 at 3:40 AM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote: >> Peter Geoghegan wrote: >> >>> Wouldn't this last "if" test, to cover the pg_upgrade case, be better >>> targeted by comparing *raw* xmin to FrozenTransactionId? You're using >>> the potentially distinct xmin value returned by >>> HeapTupleHeaderGetXmin() for the test here. I think we should be >>> directly targeting tuples frozen on or before 9.4 (prior to >>> pg_upgrade) instead. >> >> I also realized we can stop checking (i.e. don't compare xmin to >> frozenxid) if the XMIN_FROZEN bits are set -- because in that case the >> tuple cannot possibly come from 9.3 frozen. So I think this should do >> it. >> >> (New HeapTupleUpdateXmaxMatchesXmin() implementation) > > Yeah, this is what I had in mind, too. BTW, seems worth fixing this old comment above heap_prepare_freeze_tuple() while you're at it: * NB: It is not enough to set hint bits to indicate something is* committed/invalid -- they might not be set on a standby,or after crash* recovery. We really need to remove old xids. -- Peter Geoghegan -- Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers
В списке pgsql-committers по дате отправления: