Simon Riggs <simon@2ndQuadrant.com> writes:
> On Fri, Nov 18, 2011 at 2:47 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Well, it's expected given the current coding in the btree vacuum logic.
>> It's not clear to me why it was written like that, though.
> The code works as designed.
> _bt_delitems_vacuum() is only ever called with nitems == 0 when it is
> the last block of the relation with wal_level = hot standby
> As discussed in the comments we must issue a WAL record for the last
> block, whatever else has occurred.
> So the correct number of WAL records is emitted and I see no bug there.
What Thom's complaining about is that the buffer may be marked dirty
unnecessarily, ie when there has been no actual data change.
regards, tom lane