Follow-up to #23036, which tracked the broader Sort Pushdown effort across DataFusion v52 → v55. The bulk of that epic is now complete — the optimizer-rule framework and Exact / Inexact / Unsupported classifier, reverse iteration, statistics-based file/RG reorder, multi-partition BufferExec, and the runtime RG-level early stop (#22450, merged) have all landed. This issue tracks the remaining open follow-ups so #23036 can be closed as substantially done.
See #23036 for the full architecture, phase history, and benchmark results.
Remaining open items
Statistics-based reorder follow-ups
Multi-partition / BufferExec follow-ups
Runtime RG-level early stop follow-ups (Phase 4 landed via #22450)
Future — Exact reverse path (blocked on arrow-rs page-level reverse)
Follow-up to #23036, which tracked the broader Sort Pushdown effort across DataFusion v52 → v55. The bulk of that epic is now complete — the optimizer-rule framework and
Exact / Inexact / Unsupportedclassifier, reverse iteration, statistics-based file/RG reorder, multi-partitionBufferExec, and the runtime RG-level early stop (#22450, merged) have all landed. This issue tracks the remaining open follow-ups so #23036 can be closed as substantially done.See #23036 for the full architecture, phase history, and benchmark results.
Remaining open items
Statistics-based reorder follow-ups
ORDER BYEnforceDistributionlosesfetch(LIMIT) fromCoalescePartitionsExec/SortPreservingMergeExecExecutionPlannodes to support sort pushdownMulti-partition / BufferExec follow-ups
SortPreservingMergeExecafter sort eliminationBufferExecsizing: row limit + memory capDynamicFilterPhysicalExpr.fetcha shared reference toSortExec.fetchRuntime RG-level early stop follow-ups (Phase 4 landed via #22450)
fully_matchedRowFilter skip · needs arrow-rs#10158 (peek_next_row_group) #23067 — Per-RGfully_matchedRowFilterskip on top of feat(parquet): intra-file early stopping via statistics + dynamic filters #22450 (PR perf(parquet): skip RowFilter on statically fully-matched row groups #23696, in review)PhysicalExprSimplifierfoldsDynamicFilterPhysicalExprwrapper, breaking the live link to TopK updatesFuture —
Exactreverse path (blocked on arrow-rs page-level reverse)ReverseSerializedPageReader(unlocks strictly-DESC output →Exactsort pushdown)