protected virtual IQueryPlanNode VisitComposite(CompositeNode node)
{
var left = node.Left;
var right = node.Right;
if (left != null)
left = VisitNode(left);
if (right != null)
right = VisitNode(right);
return new CompositeNode(left, right, node.CompositeFunction, node.All);
}