(
&'a self,
datums: &mut Vec<Datum<'a>>,
temp_storage: &'a RowArena,
row: &'row mut Row,
)
| 66 | /// Applies per-row filtering and logic. |
| 67 | #[inline(always)] |
| 68 | pub fn apply<'a, 'row>( |
| 69 | &'a self, |
| 70 | datums: &mut Vec<Datum<'a>>, |
| 71 | temp_storage: &'a RowArena, |
| 72 | row: &'row mut Row, |
| 73 | ) -> Result<Option<&'row Row>, mz_expr::EvalError> { |
| 74 | for exprs in self.ready_equivalences.iter() { |
| 75 | // Each list of expressions should be equal to the same value. |
| 76 | let val = exprs[0].eval(&datums[..], temp_storage)?; |
| 77 | for expr in exprs[1..].iter() { |
| 78 | if expr.eval(datums, temp_storage)? != val { |
| 79 | return Ok(None); |
| 80 | } |
| 81 | } |
| 82 | } |
| 83 | self.before.evaluate_into(datums, temp_storage, row) |
| 84 | } |
| 85 | |
| 86 | /// Construct an instance of the closure from available columns. |
| 87 | /// |
no test coverage detected