pub(crate) fn data_gen_fn<T>(
    description: ArgDataSet,
    inner_rel_tuples: Option<usize>,
    outer_rel_tuples: Option<usize>,
    data_distribution: DataDistribution,
    selectivity: Option<u32>
) -> (usize, usize, JoinDataGenFn<T>) where
    T: Copy + Send + KeyAttribute + FromPrimitive