Parent: #5765
Goal
Report bounded, monotonic progress for every asynchronous Calcite PPL query independently of whether partial rows are available.
Scope
- Add
progress.fraction_done to asynchronous submit and GET responses.
- Derive best-effort source progress from existing OpenSearch interfaces without requiring exact
track_total_hits=true.
- Cover single-request search, PIT-paged search, aggregation, Composite aggregation, and multi-source plans.
- Keep progress independent from partial-result publication.
Acceptance criteria
fraction_done is finite and always within [0.0, 1.0].
- Progress never decreases and never reaches
1.0 while status is RUNNING.
SUCCEEDED reports 1.0; failure and cancellation retain the last running value.
- Every supported query shape reports progress, including blocking coordinator plans that cannot publish rows early.
- Progress collection does not require an exact total-hit count and keeps performance comparable with the synchronous query.
- REST tests verify monotonicity, bounds, terminal behavior, and multi-source aggregation.
Parent: #5765
Goal
Report bounded, monotonic progress for every asynchronous Calcite PPL query independently of whether partial rows are available.
Scope
progress.fraction_doneto asynchronous submit and GET responses.track_total_hits=true.Acceptance criteria
fraction_doneis finite and always within[0.0, 1.0].1.0while status isRUNNING.SUCCEEDEDreports1.0; failure and cancellation retain the last running value.