internal override StringBuilder AsEsql(
            StringBuilder builder,
            bool isTopLevel,
            int indentLevel)
        {
            StringUtil.IndentNewLine(builder, indentLevel);
            builder.Append("SELECT ");
            if (isTopLevel)
            {
                builder.Append("VALUE ");
            }
            builder.Append("-- Constructing ").Append(this.m_caseSlotInfo.OutputMember.LeafName);
            CqlBlock child = this.Children[0];

            this.GenerateProjectionEsql(builder, child.CqlAlias, true, indentLevel, isTopLevel);
            builder.Append("FROM (");
            child.AsEsql(builder, false, indentLevel + 1);
            StringUtil.IndentNewLine(builder, indentLevel);
            builder.Append(") AS ").Append(child.CqlAlias);
            if (!BoolExpression.EqualityComparer.Equals(this.WhereClause, BoolExpression.True))
            {
                StringUtil.IndentNewLine(builder, indentLevel);
                builder.Append("WHERE ");
                this.WhereClause.AsEsql(builder, child.CqlAlias);
            }
            return(builder);
        }