public void Visit(LimitStatement statement) { var executedTables = _scope.FetchAllExecutedTablesSameLevel(); Array.ForEach(executedTables, (e) => { e.Rows = e.Rows.Take(statement.Count).ToArray(); }); }
public override Element VisitLimitStatementExp(LimitStatementExpContext context) { var limit = new LimitStatement(CreateParseInfo(context)); limit.Count = int.Parse(context.c.Text); if (context.o != null) { limit.Offset = int.Parse(context.o.Text); } return(limit); }
protected sealed override void LimitQuery(LimitStatement statement) { if (statement != null) { QueryArgs.Add(new EqualQueryArg() { Variable = "offset", PropertyValue = new PropertyValue(statement.Offset) }); QueryArgs.Add(new EqualQueryArg() { Variable = "howMany", PropertyValue = new PropertyValue(statement.Count) }); } }
public sealed override ExecutedTable Execute(LimitStatement statement) { LimitQuery(statement); ValidateArgs(); var args = new HttpExecuteArg() { Variables = QueryArgs.Args.Select(x => new HttpQueryVariabels() { Variable = x.Variable, Value = x.PropertyValue.Value.ToString() }), TableName = TableName }; return(ExecuteCore(args)); }
public override ExecutedTable Execute(LimitStatement statement) { return(this); }
public abstract ExecutedTable Execute(LimitStatement limit);
protected virtual void LimitQuery(LimitStatement statement) { }