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); }
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))); }
public override SqlExpression VisitInArray(PlSqlParser.InArrayContext context) { var exps = context.concatenationWrapper().Select(Visit).ToArray(); return(SqlExpression.Constant(SqlObject.Array(exps))); }
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); }