diff --git a/Cargo.lock b/Cargo.lock index e5d1410829e7a..959e93fee731a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1973,7 +1973,7 @@ checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" [[package]] name = "differential-dataflow" version = "0.12.0" -source = "git+https://github.com/MaterializeInc/differential-dataflow.git#07ed40c3c44e6fc43efa5decdaa6e57ba9ce7fac" +source = "git+https://github.com/MaterializeInc/differential-dataflow.git#a3f0f31d280b41254fd98fe51ef614622addd949" dependencies = [ "abomonation", "abomonation_derive", @@ -2029,7 +2029,7 @@ checksum = "923dea538cea0aa3025e8685b20d6ee21ef99c4f77e954a30febbaac5ec73a97" [[package]] name = "dogsdogsdogs" version = "0.1.0" -source = "git+https://github.com/MaterializeInc/differential-dataflow.git#07ed40c3c44e6fc43efa5decdaa6e57ba9ce7fac" +source = "git+https://github.com/MaterializeInc/differential-dataflow.git#a3f0f31d280b41254fd98fe51ef614622addd949" dependencies = [ "abomonation", "abomonation_derive", @@ -9346,7 +9346,7 @@ dependencies = [ [[package]] name = "timely" version = "0.12.0" -source = "git+https://github.com/MaterializeInc/timely-dataflow.git#dfb4721ac698a3a26dcecf7826d8a3f4fd23952f" +source = "git+https://github.com/MaterializeInc/timely-dataflow.git#89bcb738c573f2b2b23ac3ec71d858c5afc54bb0" dependencies = [ "abomonation", "abomonation_derive", @@ -9363,12 +9363,12 @@ dependencies = [ [[package]] name = "timely_bytes" version = "0.12.0" -source = "git+https://github.com/MaterializeInc/timely-dataflow.git#dfb4721ac698a3a26dcecf7826d8a3f4fd23952f" +source = "git+https://github.com/MaterializeInc/timely-dataflow.git#89bcb738c573f2b2b23ac3ec71d858c5afc54bb0" [[package]] name = "timely_communication" version = "0.12.0" -source = "git+https://github.com/MaterializeInc/timely-dataflow.git#dfb4721ac698a3a26dcecf7826d8a3f4fd23952f" +source = "git+https://github.com/MaterializeInc/timely-dataflow.git#89bcb738c573f2b2b23ac3ec71d858c5afc54bb0" dependencies = [ "abomonation", "abomonation_derive", @@ -9384,7 +9384,7 @@ dependencies = [ [[package]] name = "timely_container" version = "0.12.0" -source = "git+https://github.com/MaterializeInc/timely-dataflow.git#dfb4721ac698a3a26dcecf7826d8a3f4fd23952f" +source = "git+https://github.com/MaterializeInc/timely-dataflow.git#89bcb738c573f2b2b23ac3ec71d858c5afc54bb0" dependencies = [ "columnation", "flatcontainer", @@ -9394,7 +9394,7 @@ dependencies = [ [[package]] name = "timely_logging" version = "0.12.0" -source = "git+https://github.com/MaterializeInc/timely-dataflow.git#dfb4721ac698a3a26dcecf7826d8a3f4fd23952f" +source = "git+https://github.com/MaterializeInc/timely-dataflow.git#89bcb738c573f2b2b23ac3ec71d858c5afc54bb0" [[package]] name = "tiny-keccak" diff --git a/misc/cargo-vet/audits.toml b/misc/cargo-vet/audits.toml index 57aa47a393ff4..3757357f5f93b 100644 --- a/misc/cargo-vet/audits.toml +++ b/misc/cargo-vet/audits.toml @@ -144,7 +144,7 @@ notes = "Reads and writes files under a prefix controlled by the caller." [[audits.differential-dataflow]] who = "Moritz Hoffmann " criteria = "safe-to-deploy" -version = "0.12.0@git:07ed40c3c44e6fc43efa5decdaa6e57ba9ce7fac" +version = "0.12.0@git:a3f0f31d280b41254fd98fe51ef614622addd949" [[audits.domain]] who = "Matt Jibson " @@ -480,22 +480,22 @@ version = "0.17.0" [[audits.timely]] who = "Moritz Hoffmann " criteria = "safe-to-deploy" -version = "0.12.0@git:dfb4721ac698a3a26dcecf7826d8a3f4fd23952f" +version = "0.12.0@git:89bcb738c573f2b2b23ac3ec71d858c5afc54bb0" [[audits.timely_bytes]] who = "Moritz Hoffmann " criteria = "safe-to-deploy" -version = "0.12.0@git:dfb4721ac698a3a26dcecf7826d8a3f4fd23952f" +version = "0.12.0@git:89bcb738c573f2b2b23ac3ec71d858c5afc54bb0" [[audits.timely_communication]] who = "Moritz Hoffmann " criteria = "safe-to-deploy" -version = "0.12.0@git:dfb4721ac698a3a26dcecf7826d8a3f4fd23952f" +version = "0.12.0@git:89bcb738c573f2b2b23ac3ec71d858c5afc54bb0" [[audits.timely_logging]] who = "Moritz Hoffmann " criteria = "safe-to-deploy" -version = "0.12.0@git:dfb4721ac698a3a26dcecf7826d8a3f4fd23952f" +version = "0.12.0@git:89bcb738c573f2b2b23ac3ec71d858c5afc54bb0" [[audits.tokio-postgres]] who = "Roshan Jobanputra " diff --git a/src/compute/src/compute_state.rs b/src/compute/src/compute_state.rs index 896612a954c49..232a2895e757f 100644 --- a/src/compute/src/compute_state.rs +++ b/src/compute/src/compute_state.rs @@ -1137,7 +1137,6 @@ impl IndexPeek { for<'a> Tr::Key<'a>: ToDatumIter, for<'a> Tr::Val<'a>: ToDatumIter, Tr::KeyOwned: Columnation + Data + FromDatumIter + ToDatumIter, - Tr::ValOwned: Columnation + Data + ToDatumIter, { let max_result_size = usize::cast_from(max_result_size); let count_byte_size = std::mem::size_of::(); diff --git a/src/compute/src/extensions/reduce.rs b/src/compute/src/extensions/reduce.rs index 74a1adf1ca4dc..643df0651f405 100644 --- a/src/compute/src/extensions/reduce.rs +++ b/src/compute/src/extensions/reduce.rs @@ -28,15 +28,20 @@ where G::Timestamp: Lattice + Ord, { /// Applies `reduce` to arranged data, and returns an arrangement of output data. - fn mz_reduce_abelian(&self, name: &str, logic: L) -> Arranged> + fn mz_reduce_abelian( + &self, + name: &str, + from: F, + logic: L, + ) -> Arranged> where T2: for<'a> Trace = T1::Key<'a>, Time = G::Timestamp> + 'static, - T2::ValOwned: Data, + V: Data, + F: Fn(T2::Val<'_>) -> V + 'static, T2::Diff: Abelian, T2::Batch: Batch, - T2::Builder: Builder, - L: FnMut(T1::Key<'_>, &[(T1::Val<'_>, T1::Diff)], &mut Vec<(T2::ValOwned, T2::Diff)>) - + 'static, + T2::Builder: Builder, + L: FnMut(T1::Key<'_>, &[(T1::Val<'_>, T1::Diff)], &mut Vec<(V, T2::Diff)>) + 'static, Arranged>: ArrangementSize; } @@ -48,20 +53,26 @@ where T1::Diff: Semigroup, { /// Applies `reduce` to arranged data, and returns an arrangement of output data. - fn mz_reduce_abelian(&self, name: &str, logic: L) -> Arranged> + fn mz_reduce_abelian( + &self, + name: &str, + from: F, + logic: L, + ) -> Arranged> where T2: for<'a> Trace = T1::Key<'a>, Time = G::Timestamp> + 'static, - T2::ValOwned: Data, + V: Data, + F: Fn(T2::Val<'_>) -> V + 'static, T2::Diff: Abelian, T2::Batch: Batch, - T2::Builder: Builder, - L: FnMut(T1::Key<'_>, &[(T1::Val<'_>, T1::Diff)], &mut Vec<(T2::ValOwned, T2::Diff)>) - + 'static, + T2::Builder: Builder, + L: FnMut(T1::Key<'_>, &[(T1::Val<'_>, T1::Diff)], &mut Vec<(V, T2::Diff)>) + 'static, Arranged>: ArrangementSize, { // Allow access to `reduce_abelian` since we're within Mz's wrapper and force arrangement size logging. #[allow(clippy::disallowed_methods)] - Arranged::<_, _>::reduce_abelian::<_, T2>(self, name, logic).log_arrangement_size() + Arranged::<_, _>::reduce_abelian::<_, _, _, T2>(self, name, from, logic) + .log_arrangement_size() } } @@ -76,10 +87,12 @@ where /// are produced as a result. The method is useful for reductions that need to present different /// output views on the same input data. An example is producing an error-free reduction output /// along with a separate error output indicating when the error-free output is valid. - fn reduce_pair( + fn reduce_pair( &self, name1: &str, name2: &str, + from1: F1, + from2: F2, logic1: L1, logic2: L2, ) -> (Arranged>, Arranged>) @@ -87,21 +100,21 @@ where T1: Trace + for<'a> TraceReader = Tr::Key<'a>, KeyOwned = Tr::KeyOwned, Time = G::Timestamp> + 'static, - T1::ValOwned: Data, T1::Diff: Abelian, T1::Batch: Batch, - T1::Builder: Builder, - L1: FnMut(Tr::Key<'_>, &[(Tr::Val<'_>, Tr::Diff)], &mut Vec<(T1::ValOwned, T1::Diff)>) - + 'static, + T1::Builder: Builder, + L1: FnMut(Tr::Key<'_>, &[(Tr::Val<'_>, Tr::Diff)], &mut Vec<(V1, T1::Diff)>) + 'static, + V1: Data, + F1: Fn(T1::Val<'_>) -> V1 + 'static, T2: Trace + for<'a> TraceReader = Tr::Key<'a>, KeyOwned = Tr::KeyOwned, Time = G::Timestamp> + 'static, - T2::ValOwned: Data, T2::Diff: Abelian, T2::Batch: Batch, - T2::Builder: Builder, - L2: FnMut(Tr::Key<'_>, &[(Tr::Val<'_>, Tr::Diff)], &mut Vec<(T2::ValOwned, T2::Diff)>) - + 'static, + T2::Builder: Builder, + L2: FnMut(Tr::Key<'_>, &[(Tr::Val<'_>, Tr::Diff)], &mut Vec<(V2, T2::Diff)>) + 'static, + V2: Data, + F2: Fn(T2::Val<'_>) -> V2 + 'static, Arranged>: ArrangementSize, Arranged>: ArrangementSize; } @@ -112,10 +125,12 @@ where Tr: TraceReader