private void generateMorePlansForJoinTree ( JoinNode joinTree ) { assert ( joinTree != null ) ; // generate the access paths for all nodes generateAccessPaths ( joinTree ) ; List < JoinNode > nodes = joinTree . generateAllNodesJoinOrder ( ) ; generateSubPlanForJoinNodeRecursively ( joinTree , 0 , nodes ) ; }
Given a specific join order compute all possible sub - plan - graphs for that join order and add them to the deque of plans . If this doesn t add plans it doesn t mean no more plans can be generated . It s possible that the particular join order it got had no reasonable plans .