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

alamb 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 ddf96ca26 CSE unit test for duplicate field (#2747)
ddf96ca26 is described below

commit ddf96ca26e5dd0a1f92c5ce4ca67afba43fcfff4
Author: Ruihang Xia <[email protected]>
AuthorDate: Sat Jun 18 19:39:36 2022 +0800

    CSE unit test for duplicate field (#2747)
    
    Signed-off-by: Ruihang Xia <[email protected]>
---
 .../optimizer/src/common_subexpr_eliminate.rs       | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/datafusion/optimizer/src/common_subexpr_eliminate.rs 
b/datafusion/optimizer/src/common_subexpr_eliminate.rs
index 182c580ee..cc859c1c4 100644
--- a/datafusion/optimizer/src/common_subexpr_eliminate.rs
+++ b/datafusion/optimizer/src/common_subexpr_eliminate.rs
@@ -868,4 +868,25 @@ mod test {
 
         Ok(())
     }
+
+    #[test]
+    fn redundant_project_fields() {
+        let table_scan = test_table_scan().unwrap();
+        let affected_id: HashSet<Identifier> =
+            ["c+a".to_string(), "d+a".to_string()].into_iter().collect();
+        let expr_set = [
+            ("c+a".to_string(), (col("c+a"), 1, DataType::UInt32)),
+            ("d+a".to_string(), (col("d+a"), 1, DataType::UInt32)),
+        ]
+        .into_iter()
+        .collect();
+        let project =
+            build_project_plan(table_scan, affected_id.clone(), 
&expr_set).unwrap();
+        let project_2 = build_project_plan(project, affected_id, 
&expr_set).unwrap();
+
+        let mut field_set = HashSet::new();
+        for field in project_2.schema().fields() {
+            assert!(field_set.insert(field.qualified_name()));
+        }
+    }
 }

Reply via email to