diff --git a/differential-dataflow/src/columnar/arrangement/mod.rs b/differential-dataflow/src/columnar/arrangement/mod.rs index d998d37a6..45de3ce99 100644 --- a/differential-dataflow/src/columnar/arrangement/mod.rs +++ b/differential-dataflow/src/columnar/arrangement/mod.rs @@ -255,18 +255,12 @@ impl timely::container::ContainerBuilder for T pub mod batcher { //! Batcher trait stubs required to plug `UpdatesTyped` into DD's merge batcher. - use columnar::Len; use timely::progress::frontier::{Antichain, AntichainRef}; use crate::trace::implementations::merge_batcher::container::InternalMerge; use super::super::layout::ColumnarUpdate as Update; use super::super::updates::UpdatesTyped; - impl timely::container::SizableContainer for UpdatesTyped { - fn at_capacity(&self) -> bool { self.view().diffs.values.len() >= crate::columnar::LINK_TARGET } - fn ensure_capacity(&mut self, _stash: &mut Option) { } - } - /// Required by `reduce_abelian`'s bound `Builder::Input: InternalMerge`. /// Not called at runtime — our batcher uses `TrieMerger` instead. /// TODO: Relax the bound in DD's reduce to remove this requirement. diff --git a/differential-dataflow/src/trace/implementations/merge_batcher.rs b/differential-dataflow/src/trace/implementations/merge_batcher.rs index aa41300fb..533ae4799 100644 --- a/differential-dataflow/src/trace/implementations/merge_batcher.rs +++ b/differential-dataflow/src/trace/implementations/merge_batcher.rs @@ -238,7 +238,7 @@ pub mod container { /// A container that supports the operations needed by the merge batcher: /// merging sorted chains and extracting updates by time. - pub trait InternalMerge: Accountable + SizableContainer + Default { + pub trait InternalMerge: Accountable + Default { /// The owned time type, for maintaining antichains. type TimeOwned; @@ -457,7 +457,7 @@ pub mod container { fn default() -> Self { Self { _marker: PhantomData } } } - impl InternalMerger where MC: InternalMerge { + impl InternalMerger where MC: InternalMerge + SizableContainer { #[inline] fn empty(&self, stash: &mut Vec) -> MC { stash.pop().unwrap_or_else(|| { @@ -503,7 +503,7 @@ pub mod container { impl Merger for InternalMerger where - MC: InternalMerge + 'static, + MC: InternalMerge + SizableContainer + 'static, { type Time = MC::TimeOwned; type Chunk = MC;