On 1/14/26 2:56 AM, Japin Li wrote:

Hi, hackers,

While working on pageinspect [0], I noticed that brin_page_items() and
gist_page_items() only checked the access method (IS_BRIN/IS_GIST) but did
not verify that the passed relation is actually an index relation.

To make the check more robust and consistent with other pageinspect index
functions (like btreefuncs.c, hashfuncs.c, etc.), the attached patch:

1. Defines a local helper macro IS_INDEX(r) in both brinfuncs.c and gistfuncs.c.

2. Updates the error check to require both: the relation must be an index and
    use the expected access method.

The change is very small, low-risk, and only affects two functions in
contrib/pageinspect.

Since the two functions you touch are gist_page_items() and brin_page_items() is there actually any harm from being able to use the index definition from a partitioned when parsing the page? Seems unnecessary to prevent people from doing so unless I am missing something. It is not like we have any way to prevent the wrong index from being used when parsing page the page so why prevent partitioned indexes specifically?

Andreas



Reply via email to