public override ICloneableElement Clone(Dictionary <ICloneableElement, ICloneableElement> objectTree, Predicate <ICloneableElement> doClone) { var clone = new SqlSelectStatement(); if (SelectQuery != null) { clone.SelectQuery = (SelectQuery)SelectQuery.Clone(objectTree, doClone); } if (With != null) { clone.With = (SqlWithClause)With.Clone(objectTree, doClone); } objectTree.Add(this, clone); return(clone); }