def get_cell_partition(expr, dim_sizes, child_idx): children = expr.children() children = [c.input.input for c in children] child_schemes = [c.scheme() for c in children] conditions = myrialang.convert_nary_conditions( expr.conditions, child_schemes) return myrialang.HCShuffleBeforeNaryJoin.get_cell_partition( dim_sizes, conditions, child_schemes, child_idx, children[child_idx].hashed_columns)
def get_cell_partition(expr, dim_sizes, child_idx): children = expr.children() children = [c.input.input for c in children] child_schemes = [c.scheme() for c in children] conditions = myrialang.convert_nary_conditions( expr.conditions, child_schemes) return myrialang.HCShuffleBeforeNaryJoin.get_cell_partition( dim_sizes, conditions, child_schemes, child_idx, children[child_idx].hashed_columns)
def get_work_load(expr, dim_sizes): children = expr.children() children = [c.input for c in children] child_schemes = [c.scheme() for c in children] conditions = myrialang.convert_nary_conditions( expr.conditions, child_schemes) HSClass = myrialang.HCShuffleBeforeNaryJoin r_index = HSClass.reversed_index(child_schemes, conditions) child_sizes = [len(cs) for cs in child_schemes] return HSClass.workload(dim_sizes, child_sizes, r_index)
def get_work_load(expr, dim_sizes): children = expr.children() children = [c.input for c in children] child_schemes = [c.scheme() for c in children] conditions = myrialang.convert_nary_conditions( expr.conditions, child_schemes) HSClass = myrialang.HCShuffleBeforeNaryJoin r_index = HSClass.reversed_index(child_schemes, conditions) child_sizes = [len(cs) for cs in child_schemes] return HSClass.workload(dim_sizes, child_sizes, r_index)