This is an automated email from the ASF dual-hosted git repository.
houqp pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git
The following commit(s) were added to refs/heads/master by this push:
new fe1a9e2 Add additional docstring comments to from_plan (#1168)
fe1a9e2 is described below
commit fe1a9e2c55392b934c85098430f78a26ef71380e
Author: Andrew Lamb <[email protected]>
AuthorDate: Sat Oct 23 14:49:28 2021 -0400
Add additional docstring comments to from_plan (#1168)
---
datafusion/src/optimizer/utils.rs | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/datafusion/src/optimizer/utils.rs
b/datafusion/src/optimizer/utils.rs
index b27de4b..1da584b 100644
--- a/datafusion/src/optimizer/utils.rs
+++ b/datafusion/src/optimizer/utils.rs
@@ -111,7 +111,25 @@ pub fn optimize_children(
from_plan(plan, &new_exprs, &new_inputs)
}
-/// Returns a new logical plan based on the original one with inputs and
expressions replaced
+/// Returns a new logical plan based on the original one with inputs
+/// and expressions replaced.
+///
+/// The exprs correspond to the same order of expressions returned by
+/// `LogicalPlan::expressions`. This function is used in optimizers in
+/// the following way:
+///
+/// ```text
+/// let new_inputs = optimize_children(..., plan, props);
+///
+/// // get the plans expressions to optimize
+/// let exprs = plan.expressions();
+///
+/// // potentially rewrite plan expressions
+/// let rewritten_exprs = rewrite_exprs(exprs);
+///
+/// // create new plan using rewritten_exprs in same position
+/// let new_plan = from_plan(&plan, rewritten_exprs, new_inputs);
+/// ```
pub fn from_plan(
plan: &LogicalPlan,
expr: &[Expr],