On Fri, Apr 1, 2016 at 11:45 PM, Alvaro Herrera <alvhe...@2ndquadrant.com> wrote: > Kevin Grittner wrote: > >> Attached is what I think you're talking about for the first patch. >> AFAICS this should generate identical executable code to unpatched. >> Then the patch to actually implement the feature would, instead >> of adding 30-some lines with TestForOldSnapshot() would implement >> that as the behavior for the other enum value, and alter those >> 30-some BufferGetPage() calls. >> >> Álvaro and Michael, is this what you were looking for? > > Yes, this is what I was thinking, thanks.
A small thing: $ git diff master --check src/include/storage/bufmgr.h:181: trailing whitespace. +#define BufferGetPage(buffer, snapshot, relation, agetest) ((Page)BufferGetBlock(buffer)) - Page page = BufferGetPage(buf); + Page page = BufferGetPage(buf, NULL, NULL, BGP_NO_SNAPSHOT_TEST); Having a BufferGetPageExtended() with some flags and a default corresponding to NO_SNAPSHOT_TEST would reduce the diff impact. And as long as the check is integrated with BufferGetPage[Extended]() I would not complain, the patch as proposed being 174kB... -- Michael -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers