From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | Daria Lepikhova <d(dot)lepikhova(at)postgrespro(dot)ru> |
Cc: | rjuju123(at)gmail(dot)com, exclusion(at)gmail(dot)com, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Assert in pageinspect with NULL pages |
Date: | 2022-03-16 08:43:48 |
Message-ID: | YjGjRMxZpCU8TpHb@paquier.xyz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Feb 23, 2022 at 12:09:02PM +0500, Daria Lepikhova wrote:
> And one more addition. In the previous version of the patch, I forgot to add
> tests for the gist index, but the described problem is also relevant for it.
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.
Painting more PageIsNew() across the place requires a bit more work
than a simple ereport(ERROR) in get_page_from_raw(), of course, but
the gain is the portability of the functions.
(One can have a lot of fun playing with random inputs and breaking
most code paths, but that's not new.)
--
Michael
Attachment | Content-Type | Size |
---|---|---|
pageinspect-zeros-v2.patch | text/x-diff | 13.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Maxim Orlov | 2022-03-16 08:53:33 | Re: Add 64-bit XIDs into PostgreSQL 15 |
Previous Message | Kyotaro Horiguchi | 2022-03-16 08:36:18 | Re: Possible corruption by CreateRestartPoint at promotion |