pub fn reorder_partitioned_join_keys<F>(
join_plan: PlanContext<Vec<Arc<dyn PhysicalExpr>>>,
on: &[(Arc<dyn PhysicalExpr>, Arc<dyn PhysicalExpr>)],
sort_options: &[SortOptions],
join_constructor: &F,
) -> Result<PlanContext<Vec<Arc<dyn PhysicalExpr>>>, DataFusionError>where
F: Fn((Vec<(Arc<dyn PhysicalExpr>, Arc<dyn PhysicalExpr>)>, Vec<SortOptions>)) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>,