Re: BUG #17884: gist_page_items() crashes for a non-leaf page of an index with non-key columns

From: Alexander Lakhin <exclusion(at)gmail(dot)com>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org, Andrey Borodin <amborodin86(at)gmail(dot)com>
Subject: Re: BUG #17884: gist_page_items() crashes for a non-leaf page of an index with non-key columns
Date: 2023-05-12 10:00:01
Message-ID: 92873f8d-a9b1-0ee8-5753-ee4a1664fb0e@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

04.04.2023 16:00, PG Bug reporting form sent:
> The following bug has been logged on the website:
>
> Bug reference: 17884
>
> ...
>
> Here gist_page_items() tries to decode a tuple using a descriptor of the
> index (defining 3 columns), but in fact non-leaf page items contain no
> non-key data ...

Please look at the patch attached, that makes gist_page_items() process items
on leaf and non-leaf pages differently, accounting for their contents.
I've decided to move away from BuildIndexValueDescription(), but borrow some
of it's code, for two reasons:
that function outputs only key columns;
it checks permissions for a table/index, but this is not needed for pageinspect
(firstly, because a user already has all the data do decode;
secondly, because gist_page_items() requires a superuser role anyway).

Best regards,
Alexander

Attachment Content-Type Size
v1-01-fix-gist_page_items-for-index-with-INCLUDE.patch text/x-patch 16.3 KB

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Olivier Chédru 2023-05-12 13:02:11 Re: BUG #17930: Regression in DISABLE TRIGGER ALL
Previous Message PG Bug reporting form 2023-05-12 07:52:13 BUG #17930: Regression in DISABLE TRIGGER ALL