Splits execution plan building into discrete steps
Merge pull request #1110 from systay/phases

Splits execution plan building into discrete steps