Skip to main content

arrange_sink_input

Function arrange_sink_input 

Source
fn arrange_sink_input<'scope>(
    sink_render: &dyn SinkRender<'scope>,
    collection: VecCollection<'scope, Timestamp, Row, Diff>,
) -> StreamVec<'scope, Timestamp, <TraceAgent<OrdValSpine<Option<Row>, Row, Timestamp, Diff>> as TraceReader>::Batch>
Expand description

Extract the sink’s key column(s) from each row, arrange the resulting (Option<Row>, Row) collection by key, and return just the stream of batches — dropping the trace reader.

Prefers the user-specified sink key, falling back to any natural key of the underlying relation. When neither exists, a synthetic per-row hash is used purely to distribute work across workers — in that case the sink should treat the key as absent (key_is_synthetic).

Partial-moving arranged.stream lets the surrounding Arranged (and the TraceAgent it holds) drop, releasing the spine’s compaction holds so the arrange operator can compact batch state as it’s emitted.