This struct is used to convert a PhysicalExpr tree into a DAEG (i.e. an expression
DAG) by collecting identical expressions in one node. Caller specifies the node type
in the DAEG via the constructor argument, which constructs nodes in the DAEG from
the ExprTreeNode ancillary object.
Create a conjunction of the given predicates.
If the input is empty, return a literal true.
If the input contains a single predicate, return the predicate.
Otherwise, return a conjunction of the predicates (e.g. a AND b AND c).
Create a conjunction of the given predicates.
If the input is empty or the return None.
If the input contains a single predicate, return Some(predicate).
Otherwise, return a Some(..) of a conjunction of the predicates (e.g. Some(a AND b AND c)).