private void visitSelectCombiner(SelectCombiner combiner, string combinerToken) { bool needsParenthesis = level > 0; if (needsParenthesis) { writer.Write("("); } combiner.LeftHand.Accept(this); writer.Write(" "); writer.Write(combinerToken); writer.Write(" "); if (combiner.Distinct != DistinctQualifier.Default) { DistinctQualifierConverter converter = new DistinctQualifierConverter(); writer.Write(converter.ToString(combiner.Distinct)); writer.Write(" "); } combiner.RightHand.Accept(this); if (combiner.OrderBy.Any()) { writer.Write(" ORDER BY "); join(", ", combiner.OrderBy); } if (needsParenthesis) { writer.Write(")"); } }