Re: Assert in pageinspect with NULL pages

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Daria Lepikhova <d.lepikhova@postgrespro.ru>
Cc: rjuju123@gmail.com, exclusion@gmail.com, pgsql-hackers@postgresql.org
Date: 2022-04-14T06:27:59Z
Lists: pgsql-hackers
On Wed, Mar 16, 2022 at 05:43:48PM +0900, Michael Paquier wrote:
> So, I have looked at this second part of the thread, and concluded
> that we should not fail for empty pages.  First, we fetch pages from
> the buffer pool in normal mode, where empty pages are valid.  There is
> also a second point in favor of doing so: code paths dedicated to hash
> indexes already do that, marking such pages as simply "unused".  The
> proposal from Julien upthread sounds cleaner to me though in the long
> run, as NULL gives the user the possibility to do a full-table scan
> with simple clauses to filter out anything found as NULL.

It has been a couple of weeks, but I have been able to come back to
this set of issues for all-zero pages, double-checked the whole and
applied a set of fixes down to 10.  So we should be completely done
here.
--
Michael

Commits

  1. pageinspect: Fix handling of all-zero pages

  2. pageinspect: Add more sanity checks to prevent out-of-bound reads

  3. pageinspect: Fix handling of page sizes and AM types

  4. Teach pageinspect about nbtree deduplication.