Ejemplo n.º 1
0
        public async Task NonCorrelatedSelect(string column, SqlExpressionType op, SqlExpressionType subOp, object value1, object value2, long expected)
        {
            var columnName = new ObjectName(left.TableInfo.TableName, column);
            var exp1       = SqlExpression.Constant(SqlObject.New(SqlValueUtil.FromObject(value1)));
            var exp2       = SqlExpression.Constant(SqlObject.New(SqlValueUtil.FromObject(value2)));
            var array      = SqlExpression.Constant(SqlObject.Array(new SqlArray(new[] { exp1, exp2 })));
            var result     = await left.SelectNonCorrelatedAsync(null, columnName, op, subOp, array);

            Assert.NotNull(result);
            Assert.Equal(expected, result.RowCount);
        }
Ejemplo n.º 2
0
        public override SqlExpression VisitExpressionOrVector(PlSqlParser.ExpressionOrVectorContext context)
        {
            var exp    = Visit(context.expression());
            var vector = context.vectorExpression();

            if (vector == null)
            {
                return(exp);
            }

            var exps = vector.expression().Select(Visit).ToArray();

            if (exps.Length == 0)
            {
                return(exp);
            }

            var array = new SqlExpression[exps.Length + 1];

            array[0] = exp;
            Array.Copy(exps, 0, array, 1, exps.Length);

            return(SqlExpression.Constant(SqlObject.Array(array)));
        }
Ejemplo n.º 3
0
        public override SqlExpression VisitInArray(PlSqlParser.InArrayContext context)
        {
            var exps = context.concatenationWrapper().Select(Visit).ToArray();

            return(SqlExpression.Constant(SqlObject.Array(exps)));
        }
Ejemplo n.º 4
0
        public static void VisitQuantify()
        {
            var exp = SqlExpression.Quantify(SqlExpressionType.All,
                                             SqlExpression.Equal(SqlExpression.Constant(SqlObject.BigInt(43)),
                                                                 SqlExpression.Constant(SqlObject.Array(SqlObject.BigInt(33), SqlObject.Integer(1222)))));

            Visit(exp);
        }