Backport to 2.18.x: #7653: Push down orderby scankeys to Hypercore TAM #7670
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.
This is an automated backport of #7653: Push down orderby scankeys to Hypercore TAM.
The original issue is #7652.
This PR will be merged automatically after all the relevant CI checks pass. If this fix should not be backported, or will be backported manually, just close this PR. You can use the backport branch to add your changes, it won't be modified automatically anymore.
For more details, please see the documentation
Original description
Push down orderby scankeys to Hypercore TAM
Quals on orderby columns can be pushed down to Hypercore TAM and be transformed to the corresponding min/max scankeys on the compressed relation. Previously, only quals on non-compressed segmentby columns were pushed down as scankeys.
Pushing down orderby scan keys seem to give a good performance boost for columnar scans when no index exists.
The scankey push down can be disabled with a new GUC:
timescaledb.enable_hypercore_scankey_pushdown=false
Closes: #7652
Disable-check: approval-count