Re: getting rid of SnapshotNow
От | Bruce Momjian |
---|---|
Тема | Re: getting rid of SnapshotNow |
Дата | |
Msg-id | 20130805151708.GB1654@momjian.us обсуждение исходный текст |
Ответ на | Re: getting rid of SnapshotNow (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: getting rid of SnapshotNow
|
Список | pgsql-hackers |
On Thu, Jul 25, 2013 at 07:24:53PM -0400, Robert Haas wrote: > - /* Used by pre-9.0 binary upgrades */ > - if (tuple->t_infomask & HEAP_MOVED_OFF) > - { > - TransactionId xvac = HeapTupleHeaderGetXvac(tuple); > - > - if (TransactionIdIsCurrentTransactionId(xvac)) > - return false; > - if (!TransactionIdIsInProgress(xvac)) > - { > - if (TransactionIdDidCommit(xvac)) > - { > - SetHintBits(tuple, buffer, HEAP_XMIN_INVALID, > - InvalidTransactionId); > - return false; > - } > - SetHintBits(tuple, buffer, HEAP_XMIN_COMMITTED, > - InvalidTransactionId); > - } > - } > - /* Used by pre-9.0 binary upgrades */ > - else if (tuple->t_infomask & HEAP_MOVED_IN) > - { > - TransactionId xvac = HeapTupleHeaderGetXvac(tuple); > - > - if (!TransactionIdIsCurrentTransactionId(xvac)) > - { > - if (TransactionIdIsInProgress(xvac)) > - return false; > - if (TransactionIdDidCommit(xvac)) > - SetHintBits(tuple, buffer, HEAP_XMIN_COMMITTED, > - InvalidTransactionId); > - else > - { > - SetHintBits(tuple, buffer, HEAP_XMIN_INVALID, > - InvalidTransactionId); > - return false; > - } > - } > - } One interesting aspect of this patch is that the backend code is no longer even checking HEAP_MOVED_OFF and HEAP_MOVED_IN. However, we can't reuse those bits because they could be set from pre-9.0 rows. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
В списке pgsql-hackers по дате отправления: