}
private void performPartition( PlannerContext plannerContext, RuleResult ruleResult, PlanPhase phase, Rule rule )
{
if( !( rule instanceof RulePartitioner ) )
throw new PlannerException( "unexpected rule: " + rule.getRuleName() );
RulePartitioner partitioner = (RulePartitioner) rule;
if( partitioner.getPartitionSource() == RulePartitioner.PartitionSource.PartitionParent )
handleParentPartitioning( plannerContext, ruleResult, phase, rule, partitioner );