Assume the predicate is in the form of CNF, split the predicate to a Vec of PhysicalExprs. For example, split "a1 = a2 AND b1 <= b2 AND c1 != c2" into ["a1 = a2", "b1 <= b2", "c1 != c2"]
(
predicate: &Arc<dyn PhysicalExpr>,
)
| 41 | /// |
| 42 | /// For example, split "a1 = a2 AND b1 <= b2 AND c1 != c2" into ["a1 = a2", "b1 <= b2", "c1 != c2"] |
| 43 | pub fn split_conjunction( |
| 44 | predicate: &Arc<dyn PhysicalExpr>, |
| 45 | ) -> Vec<&Arc<dyn PhysicalExpr>> { |
| 46 | split_impl(Operator::And, predicate, vec![]) |
| 47 | } |
| 48 | |
| 49 | impl ConstExpr { |
| 50 | /// Collects predicate-derived constants from equality conjunctions. |
no test coverage detected
searching dependent graphs…