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]
         }

Reply via email to