Skip to content

Commit 1902602

Browse files
committed
add docs
1 parent cd678e7 commit 1902602

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

datafusion/physical-plan/src/execution_plan.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -535,8 +535,21 @@ pub trait ExecutionPlan: Debug + DisplayAs + Send + Sync {
535535
/// and [`ChildPushdownResult::self_filters`] is discarded.
536536
///
537537
/// The default implementation is a no-op that passes the result of pushdown from the children to its parent.
538+
///
539+
/// When returning filters via [`FilterPushdownPropagation`] the order of the filters need not match
540+
/// the order they were passed in via `child_pushdown_result`, but preserving the order may be beneficial
541+
/// for debugging and reasoning about the resulting plans so it is recommended to preserve the order.
542+
///
543+
/// There are various helper methods to make implementing this method easier, see:
544+
/// - [`FilterPushdownPropagation::unsupported`]: to indicate that the node does not support filter pushdown at all.
545+
/// - [`FilterPushdownPropagation::transparent`]: to indicate that the node supports filter pushdown but does not involve itself in it,
546+
/// instead if simply transmits the result of pushdown into its children back up to its parent.
547+
/// - [`PredicateSupports::new_with_supported_check`]: takes a callback that returns true / false for each filter to indicate pushdown support.
548+
/// This can be used alongside [`FilterPushdownPropagation::with_filters`] and [`FilterPushdownPropagation::with_updated_node`]
549+
/// to dynamically build a result with a mix of supported and unsupported filters.
538550
///
539551
/// [`PredicateSupport::Supported`]: crate::filter_pushdown::PredicateSupport::Supported
552+
/// [`PredicateSupports::new_with_supported_check`]: crate::filter_pushdown::PredicateSupports::new_with_supported_check
540553
fn handle_child_pushdown_result(
541554
&self,
542555
child_pushdown_result: ChildPushdownResult,

0 commit comments

Comments
 (0)