public override SqlExpression VisitQuantifiedExpression(PlSqlParser.QuantifiedExpressionContext context)
        {
            SqlExpression arg;

            if (context.subquery() != null)
            {
                arg = Subquery.Form(context.subquery());
            }
            else if (context.expression_list() != null)
            {
                var elements = context.expression_list().expression().Select(Visit).ToArray();
                arg = SqlExpression.Constant(Field.Array(elements));
            }
            else
            {
                throw new ParseCanceledException("Invalid argument in a quantified expression.");
            }

            if (context.ALL() != null)
            {
                return(SqlExpression.All(arg));
            }
            if (context.ANY() != null ||
                context.SOME() != null)
            {
                return(SqlExpression.Any(arg));
            }

            return(base.VisitQuantifiedExpression(context));
        }
Example #2
0
        public override SqlExpression VisitQuantifiedExpression(PlSqlParser.QuantifiedExpressionContext context)
        {
            //SqlExpression arg;
            //if (context.subquery() != null) {
            //    arg = SqlParseSubquery.Form(context.subquery());
            //} else if (context.expression_list() != null) {
            //    var elements = context.expression_list().expression().Select(Visit).ToArray();
            //    arg = SqlExpression.Constant(SqlObject.Array(elements));
            //} else {
            //    throw new ParseCanceledException("Invalid argument in a quantified expression.");
            //}

            //if (context.ALL() != null) {
            //    return SqlExpression.All(arg);
            //}
            //if (context.ANY() != null ||
            //    context.SOME() != null) {
            //    return SqlExpression.Any(arg);
            //}

            //return base.VisitQuantifiedExpression(context);

            throw new NotImplementedException();
        }