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

Method push_unmaterializable

src/expr/src/interpret.rs:839–845  ·  view source on GitHub ↗

Restrict the set of possible values a given unmaterializable func might return. (By intersecting it with the existing spec.)

(&mut self, func: UnmaterializableFunc, update: ResultSpec<'a>)

Source from the content-addressed store, hash-verified

837 /// Restrict the set of possible values a given unmaterializable func might return. (By
838 /// intersecting it with the existing spec.)
839 pub fn push_unmaterializable(&mut self, func: UnmaterializableFunc, update: ResultSpec<'a>) {
840 let range = self
841 .unmaterializables
842 .entry(func.clone())
843 .or_insert_with(|| ResultSpec::has_type(&func.output_type(), true));
844 *range = range.clone().intersect(update);
845 }
846
847 fn eval_result<'b, E>(&self, result: Result<Datum<'b>, E>) -> ResultSpec<'a> {
848 match result {

Callers 4

filter_resultFunction · 0.80
test_eval_rangeFunction · 0.80
test_inequalityFunction · 0.80
may_match_mfpMethod · 0.80

Calls 4

intersectMethod · 0.80
entryMethod · 0.45
cloneMethod · 0.45
output_typeMethod · 0.45

Tested by 2

test_eval_rangeFunction · 0.64
test_inequalityFunction · 0.64