diff --git a/src/db/iterator.rs b/src/db/iterator.rs index 25f50d18..7db5c037 100644 --- a/src/db/iterator.rs +++ b/src/db/iterator.rs @@ -11,14 +11,34 @@ use crate::relation::tuple::{CowSlice, CowTuple, OwnTuple, Tuple}; use crate::relation::value::Value; pub enum MegaTupleIt<'a> { - NodeIt { it: IteratorPtr<'a>, tid: u32 }, - EdgeIt { it: IteratorPtr<'a>, tid: u32 }, - EdgeKeyOnlyBwdIt { it: IteratorPtr<'a>, tid: u32 }, + NodeIt { + it: IteratorPtr<'a>, + tid: u32 + }, + EdgeIt { + it: IteratorPtr<'a>, + tid: u32 + }, + EdgeKeyOnlyBwdIt { + it: IteratorPtr<'a>, + tid: u32 + }, // EdgeBwdIt { it: IteratorPtr<'a>, sess: &'a Session<'a>, tid: u32 }, // IndexIt {it: ..} - KeySortedWithAssocIt { main: Box>, associates: Vec<(u32, IteratorPtr<'a>)> }, - CartesianProdIt { left: Box>, right: Box> }, - MergeJoinIt { left: Box>, right: Box>, left_keys: Vec<(TableId, ColId)>, right_keys: Vec<(TableId, ColId)> }, + KeySortedWithAssocIt { + main: Box>, + associates: Vec<(u32, IteratorPtr<'a>)> + }, + CartesianProdIt { + left: Box>, + right: Box> + }, + MergeJoinIt { + left: Box>, + right: Box>, + left_keys: Vec<(TableId, ColId)>, + right_keys: Vec<(TableId, ColId)> + }, OuterMergeJoinIt { left: Box>, right: Box>, @@ -29,11 +49,27 @@ pub enum MegaTupleIt<'a> { left_len: (usize, usize), right_len: (usize, usize), }, - KeyedUnionIt { left: Box>, right: Box> }, - KeyedDifferenceIt { left: Box>, right: Box> }, - FilterIt { it: Box>, filter: Value<'a> }, - EvalIt { it: Box>, keys: Vec>, vals: Vec>, prefix: u32 }, - BagsUnionIt { bags: Vec> }, + KeyedUnionIt { + left: Box>, + right: Box> + }, + KeyedDifferenceIt { + left: Box>, + right: Box> + }, + FilterIt { + it: Box>, + filter: Value<'a> + }, + EvalIt { + it: Box>, + keys: Vec>, + vals: Vec>, + out_prefix: u32 + }, + BagsUnionIt { + bags: Vec> + }, } impl<'a> MegaTupleIt<'a> { @@ -97,7 +133,7 @@ impl<'a> MegaTupleIt<'a> { filter, }) } - MegaTupleIt::EvalIt { it, keys, vals, prefix } => { + MegaTupleIt::EvalIt { it, keys, vals, out_prefix: prefix } => { Box::new(EvalIterator { it: it.iter(), keys,