You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by al...@apache.org on 2024/01/06 14:46:20 UTC

(arrow-datafusion) branch main updated: Minor: Improve library docs to mention TreeNode, ExprSimplifier, PruningPredicate and cp_solver (#8749)

This is an automated email from the ASF dual-hosted git repository.

alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git


The following commit(s) were added to refs/heads/main by this push:
     new 4dd09f3f5d Minor: Improve library docs to mention TreeNode, ExprSimplifier, PruningPredicate and cp_solver (#8749)
4dd09f3f5d is described below

commit 4dd09f3f5d0a3228bd7a0c684c19885c5ee58c5f
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Sat Jan 6 09:46:14 2024 -0500

    Minor: Improve library docs to mention TreeNode, ExprSimplifier, PruningPredicate and cp_solver (#8749)
    
    * Minor: Improve library docs to mention TreeNode, ExprSimplifier, PruningPredicate and cp_solver
    
    * fix link
---
 datafusion/core/src/lib.rs | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/datafusion/core/src/lib.rs b/datafusion/core/src/lib.rs
index b3ebbc6e36..8fc724a224 100644
--- a/datafusion/core/src/lib.rs
+++ b/datafusion/core/src/lib.rs
@@ -285,37 +285,38 @@
 //!
 //! ### Logical Plans
 //! Logical planning yields [`LogicalPlan`] nodes and [`Expr`]
-//! expressions which are [`Schema`] aware and represent statements
+//! representing expressions which are [`Schema`] aware and represent statements
 //! independent of how they are physically executed.
 //! A [`LogicalPlan`] is a Directed Acyclic Graph (DAG) of other
 //! [`LogicalPlan`]s, each potentially containing embedded [`Expr`]s.
 //!
-//! Examples of working with and executing `Expr`s can be found in the
+//! [`Expr`]s can be rewritten using the  [`TreeNode`] API and simplified using
+//! [`ExprSimplifier`]. Examples of working with and executing `Expr`s can be found in the
 //! [`expr_api`.rs] example
 //!
+//! [`TreeNode`]: datafusion_common::tree_node::TreeNode
+//! [`ExprSimplifier`]: crate::optimizer::simplify_expressions::ExprSimplifier
 //! [`expr_api`.rs]: https://github.com/apache/arrow-datafusion/blob/main/datafusion-examples/examples/expr_api.rs
 //!
 //! ### Physical Plans
 //!
 //! An [`ExecutionPlan`] (sometimes referred to as a "physical plan")
 //! is a plan that can be executed against data. It a DAG of other
-//! [`ExecutionPlan`]s each potentially containing expressions of the
-//! following types:
+//! [`ExecutionPlan`]s each potentially containing expressions that implement the
+//! [`PhysicalExpr`] trait.
 //!
-//! 1. [`PhysicalExpr`]: Scalar functions
-//!
-//! 2. [`AggregateExpr`]: Aggregate functions
-//!
-//! 2. [`WindowExpr`]: Window functions
-//!
-//! Compared to a [`LogicalPlan`], an [`ExecutionPlan`] has concrete
+//! Compared to a [`LogicalPlan`], an [`ExecutionPlan`] has additional concrete
 //! information about how to perform calculations (e.g. hash vs merge
 //! join), and how data flows during execution (e.g. partitioning and
 //! sortedness).
 //!
+//! [cp_solver] performs range propagation analysis on [`PhysicalExpr`]s and
+//! [`PruningPredicate`] can prove certain boolean [`PhysicalExpr`]s used for
+//! filtering can never be `true` using additional statistical information.
+//!
+//! [cp_solver]: crate::physical_expr::intervals::cp_solver
+//! [`PruningPredicate`]: crate::physical_optimizer::pruning::PruningPredicate
 //! [`PhysicalExpr`]: crate::physical_plan::PhysicalExpr
-//! [`AggregateExpr`]: crate::physical_plan::AggregateExpr
-//! [`WindowExpr`]: crate::physical_plan::WindowExpr
 //!
 //! ## Execution
 //!