xanderbailey opened a new pull request, #3108: URL: https://github.com/apache/iceberg-rust/pull/3108
## Which issue does this PR close? <!-- We generally require a GitHub issue to be filed for all bug fixes and enhancements and this helps us generate change logs for our releases. You can link an issue to this PR using the GitHub syntax. For example `Closes #123` indicates that this PR will close issue #123. --> - Closes #. ## What changes are included in this PR? Previously `PlanContext` only held a snapshot reference which makes it very hard to be extended for incremental append scans since they require multiple manifest lists so we introduce `ManifestSource` as a way to represent a source of `ManifestFile`. We're also refactoring the actual planning in `Table` scan out into a reusable `plan.rs` such that we can directly use it in an append scan. There are alternatives here for the reviewer to consider: 1. `build_manifest_file_contexts` could take Vec<ManifestFile> but you'd still need to generalize the `PlanContext` to remove the `get_manifest_list` since this only makes sense for a single snapshot scan. 2. `PlanContext` could store a list of manifest files but that involves resolving them when we build the table scan rather than we ask for the plan, this would make `TableScanBuilder::build` async and eagerly resolve the manifest files which I don't think is desirable. <!-- Provide a summary of the modifications in this PR. List the main changes such as new features, bug fixes, refactoring, or any other updates. --> ## Are these changes tested? <!-- Specify what test covers (unit test, integration test, etc.). If tests are not included in your PR, please explain why (for example, are they covered by existing tests)? --> ## AI Disclosure <!-- https://iceberg.apache.org/contribute/#guidelines-for-ai-assisted-contributions --> -- 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]
