pepijnve commented on code in PR #16398:
URL: https://github.com/apache/datafusion/pull/16398#discussion_r2152852677


##########
datafusion/physical-plan/src/execution_plan.rs:
##########
@@ -743,6 +733,38 @@ pub enum EmissionType {
     Both,
 }
 
+/// Represents whether an operator's `Stream` has been implemented to actively 
cooperate with the
+/// Tokio scheduler or not.
+#[derive(Debug, Clone, Copy, PartialEq, Eq)]
+pub enum SchedulingType {
+    /// The stream generated by [`execute`](ExecutionPlan::execute) does not 
actively participate in
+    /// cooperative scheduling. This means the implementation of the `Stream` 
returned by
+    /// [`ExecutionPlan::execute`] does not contain explicit cooperative yield 
points.
+    Blocking,
+    /// The stream generated by [`execute`](ExecutionPlan::execute) actively 
participates in
+    /// cooperative scheduling by consuming task budget when it was able to 
produce a
+    /// [`RecordBatch`]. Please refer to the [`coop`](crate::coop) module for 
more details.
+    Cooperative,
+}
+
+/// Represents how an operator's `Stream` implementation generates 
`RecordBatch`es.
+///
+/// Most operators in DataFusion generate `RecordBatch`es when asked to do so 
by a call to
+/// `Stream::poll_next`. This is known as demand-driven or lazy evaluation.
+///
+/// Some operators like `Repartition` need to drive `RecordBatch` generation 
themselves though. This
+/// is known as data-driven or eager evaluation.
+#[derive(Debug, Clone, Copy, PartialEq, Eq)]
+pub enum EvaluationType {
+    /// The stream generated by [`execute`](ExecutionPlan::execute) only 
generates `RecordBatch`
+    /// instances when it is demanded by invoking `Stream::poll_next`.

Review Comment:
   Examples added for both variants



-- 
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: github-unsubscr...@datafusion.apache.org

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


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to