macro_rules! define_star_join_flatmap {
($n:literal) => { ... };
}Expand description
Generate a star_join_flatmapN function.
Call this macro for every number N in order to generate an N-way star join flatmap operator.
This operator is only available for RootCircuit. See define_inner_star_join_flatmap for a
star join flatmap operator that works for NestedCircuit.
The operator computes an incremental join of multiple streams on the same key using a
user-provided join function that can return 0 or more output values for each input tuple.
The saturate flag for each input stream (except the first one) controls whether to compute
an outer or inner join for that stream.
Example generated function signature:
impl<K, V1> Stream<RootCircuit, OrdIndexedZSet<K, V1>>
where
K: DBData,
V1: DBData,
{
pub fn star_join_flatmap4<V2, V3, V4, OV, It>(
&self,
(stream2, saturate2): (
&Stream<RootCircuit, OrdIndexedZSet<K, V2>>,
bool,
),
(stream3, saturate3): (
&Stream<RootCircuit, OrdIndexedZSet<K, V3>>,
bool,
),
(stream4, saturate4): (
&Stream<RootCircuit, OrdIndexedZSet<K, V4>>,
bool,
),
join_func: impl Fn(&K, &V1, &V2, &V3, &V4) -> It + Clone + 'static,
) -> Stream<RootCircuit, OrdZSet<OV>>