pub struct MfpPlan {
    mfp: SafeMfpPlan,
    lower_bounds: Vec<MirScalarExpr>,
    upper_bounds: Vec<MirScalarExpr>,
}
Expand description

Predicates partitioned into temporal and non-temporal.

Temporal predicates require some recognition to determine their structure, and it is best to do that once and re-use the results.

There are restrictions on the temporal predicates we currently support. They must directly constrain MzLogicalTimestamp from below or above, by expressions that do not themselves contain MzLogicalTimestamp. Conjunctions of such constraints are also ok.

Fields

mfp: SafeMfpPlan

Normal predicates to evaluate on &[Datum] and expect Ok(Datum::True).

lower_bounds: Vec<MirScalarExpr>

Expressions that when evaluated lower-bound MzLogicalTimestamp.

upper_bounds: Vec<MirScalarExpr>

Expressions that when evaluated upper-bound MzLogicalTimestamp.

Implementations

Partitions predicates into non-temporal, and lower and upper temporal bounds.

The first returned list is of predicates that do not contain mz_logical_timestamp. The second and third returned lists contain expressions that, once evaluated, lower and upper bound the validity interval of a record, respectively. These second two lists are populated only by binary expressions of the form

mz_logical_timestamp cmp_op expr

where cmp_op is a comparison operator and expr does not contain mz_logical_timestamp.

If any unsupported expression is found, for example one that uses mz_logical_timestamp in an unsupported position, an error is returned.

Indicates if the planned MapFilterProject emits exactly its inputs as outputs.

Attempt to convert self into a non-temporal MapFilterProject plan.

If that is not possible, the original instance is returned as an error.

Evaluate the predicates, temporal and non-, and return times and differences for data.

If self contains only non-temporal predicates, the result will either be (time, diff), or an evaluation error. If self contains temporal predicates, the results can be times that are greater than the input time, and may contain negated diff` values.

The row_builder is not cleared first, but emptied if the function returns an iterator with any Ok(_) element.

Trait Implementations

The type of parameters that arbitrary_with accepts for configuration of the generated Strategy. Parameters must implement Default. Read more

The type of Strategy used to generate values of type Self. Read more

Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more

Generates a Strategy for producing arbitrary values of type the implementing type (Self). Read more

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Convert a Self into a Proto value.

Consume and convert a Proto back into a Self value. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Attaches the provided Context to this type, returning a WithContext wrapper. Read more

Attaches the current Context to this type, returning a WithContext wrapper. Read more

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Wrap the input message T in a tonic::Request

Upcasts this ProgressEventTimestamp to Any. Read more

Returns the name of the concrete type of this object. Read more

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more