1pub mod algos {
2 pub use kermit_algos::leapfrog_triejoin::LeapfrogTriejoin;
3}
4
5pub mod kvs {
6 pub use kermit_kvs::{anyvaltype::AnyValType, naivestore::NaiveStore};
7}
8
9pub mod ds {
10 pub use kermit_ds::{
11 ds::relation_trie::RelationTrie,
12 relation::{Builder, RelationBuilder},
13 };
14}
15
16pub mod db;
17
18use {kermit_algos::join_algo::JoinAlgo, kermit_ds::relation::Relation};
19
20pub fn compute_join<R, JA>(
21 input: Vec<Vec<Vec<R::KT>>>, variables: Vec<usize>, rel_variables: Vec<Vec<usize>>,
22) -> Vec<Vec<R::KT>>
23where
24 R: Relation,
25 JA: JoinAlgo<R>,
26{
27 let relations: Vec<_> = input
28 .into_iter()
29 .map(|tuples| R::from_tuples(tuples))
30 .collect();
31 let iterables = relations.iter().collect::<Vec<_>>();
32 JA::join(variables, rel_variables, iterables)
33}