Ability to enable/disable indexes through GUC #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The patch introduces a new GUC parameter
disabled_indexes
that allows users to specify a comma-separated list of indexes to be ignored during query planning. Key aspects:isdisabled
attribute to theIndexOptInfo
structure.get_relation_info
inplancat.c
to skip disabled indexes entirely, thus reducing the number of places we need to check if an index is disabled or not.disabled_indexes
list is modified throughResetPlanCache()
I chose to modify the logic within
get_relation_info
as compared to, say, reducing the cost to make the planner not consider an index during planning, mostly to keep the number of changes being introduced to a minimum and also the logic itself being self-contained and easier to under perhaps (?).As mentioned before, this does not impact the building of the index. That still happens.
I have added regression tests for: