VortexDataSource::open consumes DataSourceScan::partitions() with try_flatten_unordered even when ScanRequest.ordered is true. It also forwards fetch as ScanRequest.limit without enforcing the limit across partition output.
A DataSource should be able to expose independent partitions in a deterministic order. When ordering is requested, v2 should emit their results in partition order. Otherwise, it should retain concurrent consumption. V2 should enforce fetch across all returned batches, slice the final batch if needed, and stop polling once the limit is met.
Please clarify the ScanRequest.limit contract so sources do not need their own cross-partition coordinator. Add a regression test with a delayed first partition that checks ordered output and a global fetch = 1.
VortexDataSource::open consumes DataSourceScan::partitions() with try_flatten_unordered even when ScanRequest.ordered is true. It also forwards fetch as ScanRequest.limit without enforcing the limit across partition output.
A DataSource should be able to expose independent partitions in a deterministic order. When ordering is requested, v2 should emit their results in partition order. Otherwise, it should retain concurrent consumption. V2 should enforce fetch across all returned batches, slice the final batch if needed, and stop polling once the limit is met.
Please clarify the ScanRequest.limit contract so sources do not need their own cross-partition coordinator. Add a regression test with a delayed first partition that checks ordered output and a global fetch = 1.