manuzhang opened a new pull request, #873: URL: https://github.com/apache/iceberg-cpp/pull/873
## What changed - add a fallible, pull-based `Iterator<T>` utility - stream manifest entries and file scan task planning without materializing all results - preserve scan metrics reporting for completed and partially consumed iterators - update the demo and add coverage for iterator lifetime and table scan planning ## Why The existing scan planning APIs materialize every manifest entry and file scan task before returning. Large tables can therefore require memory proportional to the full scan plan. The new iterator APIs process one manifest batch at a time and let callers consume tasks on demand while keeping the existing eager APIs compatible. ## User impact Callers can use `DataTableScan::PlanFilesIterator()` to bound planning memory and stop planning early. Existing `PlanFiles()` behavior remains available. Streaming planning is pull-based and does not eagerly submit manifest work to the configured planning executor. ## Validation - independent pre-commit review completed with no remaining findings - `git diff --cached --check` - local tests were not run, per repository agent instructions -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
