[PATCH] Check that index can return in get_actual_variable_range() - Mailing list pgsql-hackers

From Maxime Schoemans
Subject [PATCH] Check that index can return in get_actual_variable_range()
Date
Msg-id 20ED852A-C2D9-41EB-8671-8C8B9D418BE9@enterprisedb.com
Whole thread Raw
Responses Re: [PATCH] Check that index can return in get_actual_variable_range()
List pgsql-hackers
Hi all,

Some recent changes were made to remove the explicit dependency on btree indexes in some parts of the code. One of
thesechanges was made in commit 9ef1851685b, which allows non-btree indexes to be used in get_actual_variable_range().
Afollow-up commit ee1ae8b99f9 fixes the cases where an index doesn’t have a sortopfamily as this is a prerequisite to
beused in get_actual_variable_range(). However, I found out recently that indices that have ‘amcanorder = true’ but do
notallow index-only-scans (amcanreturn returns false or is NULL) will pass all of the conditions, while they should be
rejectedsince get_actual_variable_range() uses the index-only-scan machinery in get_actual_variable_endpoint(). 

Attached is a small patch that adds a check in get_actual_variable_range() to reject indices that do not allow
index-onlyscans. 

Regards,
Maxime Schoemans


Attachment

pgsql-hackers by date:

Previous
From: Andrey Borodin
Date:
Subject: Re: Make TID Scans recalculate the TIDs less often
Next
From: David Rowley
Date:
Subject: Re: Make TID Scans recalculate the TIDs less often