diff --git a/examples/broadcast_cross_join.rs b/examples/broadcast_cross_join.rs new file mode 100644 index 000000000..cabb89b11 --- /dev/null +++ b/examples/broadcast_cross_join.rs @@ -0,0 +1,116 @@ +extern crate timely; +extern crate differential_dataflow; + +use std::ops::Mul; + +use timely::Data; +use timely::dataflow::channels::pact::Pipeline; +use timely::dataflow::operators::broadcast::Broadcast; +use timely::dataflow::operators::Operator; +use timely::dataflow::{Scope, Stream}; +use timely::order::TotalOrder; +use differential_dataflow::{Collection, AsCollection}; +use differential_dataflow::difference::Semigroup; +use differential_dataflow::input::Input; +use differential_dataflow::lattice::Lattice; +use differential_dataflow::operators::arrange::{Arrange, Arranged}; +use differential_dataflow::trace::{Cursor, BatchReader, TraceReader}; +use differential_dataflow::trace::implementations::ord::OrdKeySpineAbomArc; + +// This function is supposed to do one half of a cross join but its implementation is currently +// incorrect +// TODO: actually implement a half cross join +fn half_cross_join( + left: Arranged, + right: &Stream, +) -> Collection>::Output> +where + G: Scope, + G::Timestamp: Lattice + TotalOrder + Ord, + Tr1: TraceReader