Inheritance: BaseDataTable
Ejemplo n.º 1
0
        public async Task CreateNewFunctionTable()
        {
            var exp = SqlExpression.Equal(SqlExpression.Reference(ObjectName.Parse("tab1.a")),
                                          SqlExpression.Constant(SqlObject.Integer(2)));

            var cols = new[] {
                new FunctionColumnInfo(exp, "exp1", PrimitiveTypes.Integer())
            };

            var table = new FunctionTable(context, left, cols);

            Assert.NotNull(table.TableInfo);
            Assert.Equal(2, table.RowCount);

            var value = await table.GetValueAsync(0, 0);

            Assert.NotNull(value);
            Assert.True(value.IsFalse);
        }
Ejemplo n.º 2
0
        public async Task GroupMax()
        {
            var exp = SqlExpression.Equal(SqlExpression.Reference(ObjectName.Parse("tab1.a")),
                                          SqlExpression.Constant(SqlObject.Integer(2)));

            var cols = new[] {
                new FunctionColumnInfo(exp, "exp1", PrimitiveTypes.Integer())
            };

            var table = new FunctionTable(context, left, cols);

            var result = table.GroupMax(new ObjectName("b"));

            Assert.NotNull(result);

            var value1 = await result.GetValueAsync(0, 0);

            Assert.NotNull(value1);
            Assert.Equal(SqlObject.Integer(23), value1);
        }
Ejemplo n.º 3
0
 public override ITable Evaluate(IRequest context)
 {
     var childTable = Child.Evaluate(context);
     var funTable = new FunctionTable(childTable, Functions, Names, context);
     return funTable.MergeWith(null);
 }
Ejemplo n.º 4
0
        public override ITable Evaluate(IRequest context)
        {
            var childTable = Child.Evaluate(context);
            var funTable = new FunctionTable(childTable, Functions, Names, context);

            // If no columns then it is implied the whole table is the group.
            if (ColumnNames == null || ColumnNames.Length == 0) {
                funTable = funTable.AsGroup();
            } else {
                funTable = funTable.CreateGroupMatrix(ColumnNames);
            }

            return funTable.MergeWith(GroupMaxColumn);
        }
Ejemplo n.º 5
0
 public TableGroupResolver(FunctionTable table)
 {
     Table = table;
     GroupId = -1;
 }
Ejemplo n.º 6
0
        public static ITable ResultTable(IRequest context, SqlExpression expression)
        {
            var exp = new [] { expression };
            var names = new[] { "result" };
            var table = new FunctionTable(exp, names, context);

            return new SubsetColumnTable(table, new[]{0}, new []{new ObjectName("result") });
        }
Ejemplo n.º 7
0
 public TableGroupResolver(FunctionTable table)
 {
     Table   = table;
     GroupId = -1;
 }
Ejemplo n.º 8
0
        protected override void ExecuteStatement(ExecutionContext context)
        {
            var args = Arguments != null ? Arguments.ToArray() : new InvokeArgument[0];
            var invoke = new Invoke(ProcedureName, args);

            var procedure = context.DirectAccess.ResolveProcedure(invoke);
            if (procedure == null)
                throw new StatementException(String.Format("Could not retrieve the procedure '{0}': maybe not a procedure.", ProcedureName));

            //if (!context.User.CanExecuteProcedure(invoke,context.Request))
            //	throw new MissingPrivilegesException(context.User.Name, ProcedureName, Privileges.Execute);

            var result = procedure.Execute(Arguments, context.Request);

            if (result.HasOutputParameters) {
                var output = result.OutputParameters;
                var names = output.Keys.ToArray();
                var values = output.Values.Select(SqlExpression.Constant).Cast<SqlExpression>().ToArray();
                var resultTable = new FunctionTable(values, names, context.Request);
                context.SetResult(resultTable);
            }
        }