Function dataflow::render::upsert::upsert [−][src]
pub(crate) fn upsert<G>(
source_name: &str,
stream: &Stream<G, DecodeResult>,
as_of_frontier: Antichain<Timestamp>,
operators: &mut Option<LinearOperator>,
key_arity: usize,
source_arity: usize,
persist_config: Option<PersistentUpsertConfig<Result<Row, DecodeError>, Result<Row, DecodeError>>>
) -> (Stream<G, (Row, Timestamp, Diff)>, Stream<G, (DataflowError, Timestamp, Diff)>) where
G: Scope<Timestamp = Timestamp>,
Expand description
Entrypoint to the upsert-specific transformations involved in rendering a stream that came from an upsert source. Upsert-specific operators are different from the rest of the rendering pipeline in that their input is a stream with two components instead of one, and the second component can be null or empty.
When persist_config
is Some
this will write upsert state to the configured persistent
collection and restore state from it. This does now, however, seal the backing collection. It
is the responsibility of the caller to ensure that the collection is sealed up.