On 08.07.2011 16:45, Kevin Grittner wrote:
Heikki Linnakangas<heikki.linnakan...@enterprisedb.com> wrote:
On 08.07.2011 15:22, Kevin Grittner wrote:
MaxTransactionId / OLDSERXID_ENTRIESPERPAGE
Hmm, that seems more correct to me anyway. We are trying to
calculate which page xid MaxTransactionId would be stored on, if
the SLRU didn't have a size limit. You calculate that with simply
MaxTransactionId / OLDSERXID_ENTRIESPERPAGE.
Good point. The old calculation was finding the page before the
page which would contain the first out-of-bound entry. As long as
these numbers are all powers of 2 that's the same, but (besides the
overflow issue) it's not as clear.
On the off chance that this saves someone any work, trivial patch
attached.
There was still one warning left after that:
.\src\backend\storage\lmgr\predicate.c(770): warning C4146: unary minus
operator applied to unsigned type, result still unsigned
It's coming from this line:
else if (diff < -((OLDSERXID_MAX_PAGE + 1) / 2))
I fixed that by adding a cast to int there, and committed.
--
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