I was trying to avoid copying the children list -- I meant to remove it.
AbstractPlanNode does not export its children as a list that you can iterate over -- it only supports getChild(i), so I needed "i".
I will do a quick search of how  getChild is typically used and see if it might make sense to migrate to a new List<AbstractPlanNode> getChildren() function.
Otherwise, I will keep it this way and not add that function just for this case -- I THINK that most child node iteration might be happening with private access inside AbstractPlanNode.