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)