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 c56b94765 feat: add name() method to UserDefinedLogicalNode (#5450)
c56b94765 is described below
commit c56b947651d923d99f9756f09af9c013430fc9c0
Author: Ruihang Xia <[email protected]>
AuthorDate: Mon Mar 6 19:14:22 2023 +0800
feat: add name() method to UserDefinedLogicalNode (#5450)
Signed-off-by: Ruihang Xia <[email protected]>
---
datafusion/core/src/physical_plan/planner.rs | 4 ++++
datafusion/core/tests/user_defined_plan.rs | 4 ++++
datafusion/expr/src/logical_plan/extension.rs | 3 +++
datafusion/optimizer/src/push_down_filter.rs | 4 ++++
datafusion/optimizer/src/test/user_defined.rs | 4 ++++
datafusion/proto/src/logical_plan/mod.rs | 4 ++++
6 files changed, 23 insertions(+)
diff --git a/datafusion/core/src/physical_plan/planner.rs
b/datafusion/core/src/physical_plan/planner.rs
index 0a1ac4054..10b692748 100644
--- a/datafusion/core/src/physical_plan/planner.rs
+++ b/datafusion/core/src/physical_plan/planner.rs
@@ -2403,6 +2403,10 @@ Internal error: Optimizer rule 'type_coercion' failed
due to unexpected error: E
self
}
+ fn name(&self) -> &str {
+ "NoOp"
+ }
+
fn inputs(&self) -> Vec<&LogicalPlan> {
vec![]
}
diff --git a/datafusion/core/tests/user_defined_plan.rs
b/datafusion/core/tests/user_defined_plan.rs
index 02c8a1664..f1bd8e1ff 100644
--- a/datafusion/core/tests/user_defined_plan.rs
+++ b/datafusion/core/tests/user_defined_plan.rs
@@ -346,6 +346,10 @@ impl UserDefinedLogicalNode for TopKPlanNode {
self
}
+ fn name(&self) -> &str {
+ "TopK"
+ }
+
fn inputs(&self) -> Vec<&LogicalPlan> {
vec![&self.input]
}
diff --git a/datafusion/expr/src/logical_plan/extension.rs
b/datafusion/expr/src/logical_plan/extension.rs
index 57a8cac6b..5f147c217 100644
--- a/datafusion/expr/src/logical_plan/extension.rs
+++ b/datafusion/expr/src/logical_plan/extension.rs
@@ -31,6 +31,9 @@ pub trait UserDefinedLogicalNode: fmt::Debug + Send + Sync {
/// Return a reference to self as Any, to support dynamic downcasting
fn as_any(&self) -> &dyn Any;
+ /// Return the plan's name
+ fn name(&self) -> &str;
+
/// Return the logical plan's inputs
fn inputs(&self) -> Vec<&LogicalPlan>;
diff --git a/datafusion/optimizer/src/push_down_filter.rs
b/datafusion/optimizer/src/push_down_filter.rs
index f004e3d31..fa7090fc8 100644
--- a/datafusion/optimizer/src/push_down_filter.rs
+++ b/datafusion/optimizer/src/push_down_filter.rs
@@ -1085,6 +1085,10 @@ mod tests {
self
}
+ fn name(&self) -> &str {
+ "NoopPlan"
+ }
+
fn inputs(&self) -> Vec<&LogicalPlan> {
self.input.iter().collect()
}
diff --git a/datafusion/optimizer/src/test/user_defined.rs
b/datafusion/optimizer/src/test/user_defined.rs
index a1d5e4623..eb9257edc 100644
--- a/datafusion/optimizer/src/test/user_defined.rs
+++ b/datafusion/optimizer/src/test/user_defined.rs
@@ -50,6 +50,10 @@ impl UserDefinedLogicalNode for TestUserDefinedPlanNode {
self
}
+ fn name(&self) -> &str {
+ "TestUserDefined"
+ }
+
fn inputs(&self) -> Vec<&LogicalPlan> {
vec![&self.input]
}
diff --git a/datafusion/proto/src/logical_plan/mod.rs
b/datafusion/proto/src/logical_plan/mod.rs
index 2f4f83d89..2fd7ed725 100644
--- a/datafusion/proto/src/logical_plan/mod.rs
+++ b/datafusion/proto/src/logical_plan/mod.rs
@@ -1665,6 +1665,10 @@ mod roundtrip_tests {
self
}
+ fn name(&self) -> &str {
+ "TopK"
+ }
+
fn inputs(&self) -> Vec<&LogicalPlan> {
vec![&self.input]
}