alamb commented on a change in pull request #8503:
URL: https://github.com/apache/arrow/pull/8503#discussion_r513681082



##########
File path: rust/datafusion/src/physical_plan/merge.rs
##########
@@ -103,37 +105,56 @@ impl ExecutionPlan for MergeExec {
                 self.input.execute(0).await
             }
             _ => {
-                let tasks = (0..input_partitions).map(|part_i| {
+                let (sender, receiver) = 
mpsc::unbounded::<ArrowResult<RecordBatch>>();

Review comment:
       It is fairly astonishing that Rust has made streaming so hard. 
   
   However, I got it to compile and mostly work. Here is a commit (changes to 
this branch) with the approach that passes most of the the arrow and datafusion 
tests and also doesn't require waiting for all the input threads to complete:  
https://github.com/apache/arrow/commit/28075970d8d59fa87359ad38470669485f029578
   
   It still does not quite work in all cases (I need to port the normal 
aggregate over) but I'll finish that up.
   
   I am curious if you have any thoughts about the approach. I'll try and write 
it up coherently tomorrow morning, now I need to go take care of some other 
things.




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to