ethan-tyler opened a new pull request, #20369: URL: https://github.com/apache/datafusion/pull/20369
## Which issue does this PR close? - Closes #13614 ## Rationale for this change `LazyMemoryExec` currently uses generator closures (`LazyBatchGenerator`) as its partition interface. This replaces with a `LazyPartition` trait that gives partitions a proper abstraction while keeping the old generator path working through a legacy adapter. `generate_series`/`range` are migrated to native `LazyPartition` as the first consumer. Proto roundtrip is updated to handle both native and legacy forms. ## What changes are included in this PR? - `LazyPartition` trait as the native partition interface for `LazyMemoryExec` - `LazyBatchGeneratorPartition` adapter allowing existing generator to work - Deprecated compatibility APIs preserved: `LazyMemoryExec::try_new`, `LazyMemoryExec::generators`, `GenerateSeriesTable::as_generator`. - `generate_series`/`range` migrated to native `GenerateSeriesPartition` - Shared helper for generate series state construction (dedupes native and deprecated paths) - Proto roundtrip updated for native `GenerateSeriesPartition` with legacy adapter fallback - Core coop test helper updated to use `LazyPartition` - Proto regression test coverage added ## Are these changes tested? yes - `cargo test -p datafusion-physical-plan lazy_memory_tests --lib` - `cargo test -p datafusion-functions-table generate_series_tests --lib` - `cargo test -p datafusion-proto roundtrip_generate_series --test proto_integration` - `cargo test -p datafusion execution::coop --test core_integration` - `cargo check -p datafusion-physical-plan -p datafusion-functions-table -p datafusion-proto -p datafusion` ## Are there any user-facing changes? No. `LazyBatchGenerator` and existing public APIs remain available (deprecated) -- 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]
