protected virtual IQueryPlanNode VisitSingle(SingleQueryPlanNode node)
{
if (node is SimpleSelectNode)
return VisitSimpleSelect((SimpleSelectNode) node);
if (node is SimplePatternSelectNode)
return VisitSimplePatternSelect((SimplePatternSelectNode) node);
if (node is ExhaustiveSelectNode)
return VisitExhaustiveSelect((ExhaustiveSelectNode) node);
if (node is ConstantSelectNode)
return VisitConstantSelect((ConstantSelectNode) node);
if (node is RangeSelectNode)
return VisitRangeSelect((RangeSelectNode) node);
if (node is DistinctNode)
return VisitDistinct((DistinctNode) node);
if (node is LeftOuterJoinNode)
return VisitLeftOuterJoin((LeftOuterJoinNode) node);
if (node is CachePointNode)
return VisitCachePoint((CachePointNode) node);
if (node is MarkerNode)
return VisitMarker((MarkerNode) node);
if (node is SubsetNode)
return VisitSubset((SubsetNode) node);
if (node is GroupNode)
return VisitGroup((GroupNode) node);
if (node is SortNode)
return VisitSort((SortNode) node);
if (node is CreateFunctionsNode)
return VisitCreateFunctions((CreateFunctionsNode) node);
if (node is LimitNode)
return VisitLimit((LimitNode) node);
throw new NotSupportedException();
}