MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / eval_loop

Method eval_loop

src/expr/src/interpret.rs:1012–1027  ·  view source on GitHub ↗
(
                is_monotonic: bool,
                expr: &mut MirScalarExpr,
                args: &[ColumnSpec<'a>],
                index: usize,
                datum_map: &mut impl FnMut(&MirSc

Source from the content-addressed store, hash-verified

1010 ResultSpec::anything()
1011 } else {
1012 fn eval_loop<'a>(
1013 is_monotonic: bool,
1014 expr: &mut MirScalarExpr,
1015 args: &[ColumnSpec<'a>],
1016 index: usize,
1017 datum_map: &mut impl FnMut(&MirScalarExpr) -> ResultSpec<'a>,
1018 ) -> ResultSpec<'a> {
1019 if index >= args.len() {
1020 datum_map(expr)
1021 } else {
1022 args[index].range.flat_map(is_monotonic, |datum| {
1023 ColumnSpecs::set_argument(expr, index, datum);
1024 eval_loop(is_monotonic, expr, args, index + 1, datum_map)
1025 })
1026 }
1027 }
1028
1029 let mut fn_expr = MirScalarExpr::CallVariadic {
1030 func: func.clone(),

Callers

nothing calls this directly

Calls 2

lenMethod · 0.45
flat_mapMethod · 0.45

Tested by

no test coverage detected