@Override
public PlanWithProperties visitSort(SortNode node, StreamPreferredProperties parentPreferences)
{
if (isDistributedSortEnabled(session)) {
PlanWithProperties sortPlan = planAndEnforceChildren(node, fixedParallelism(), fixedParallelism());
if (!sortPlan.getProperties().isSingleStream()) {
return deriveProperties(
mergingExchange(
idAllocator.getNextId(),
LOCAL,
sortPlan.getNode(),
node.getOrderingScheme()),
sortPlan.getProperties());
}
return sortPlan;
}
return planAndEnforceChildren(node, singleStream(), defaultParallelism(session));
}