public GroupByNode(Bamboo.Query.Planning.Node node, System.Collections.IList groupBy, System.Collections.IList select) { this._node = node; int[] indexes = GetIndexes(groupBy, this._node.ColumnCoordinates); Bamboo.Query.Aggregators.Aggregator[] aggregators = GetAggregators(select); this._indexes = indexes; this._aggregators = aggregators; ColumnCoordinate[] columnCoordinates = new ColumnCoordinate[groupBy.Count + aggregators.Length]; int i; for (i = 0; i < groupBy.Count; i++) { Bamboo.Query.Query.Column column = (Bamboo.Query.Query.Column)groupBy[i]; columnCoordinates[i] = new ColumnCoordinate(column.Identifier, i); } foreach (Bamboo.Query.Query.Column column in select) { if (column.Identifier.IndexOf("(") != -1) { string identifier = column.Identifier; string function = identifier.Substring(0, identifier.IndexOf("(")); int start = identifier.IndexOf("(") + 1; string columnIdentifier = identifier.Substring(start, identifier.Length - (start + 1)); columnCoordinates[i] = new ColumnCoordinate(function + "(" + columnIdentifier + ")", i); i++; } } this._columnCoordinates = columnCoordinates; }
public SelectNode(Bamboo.Query.Planning.Node node, System.Collections.IList select) { this._node = node; this._indexes = GetIndexes(select, this._node.ColumnCoordinates); ColumnCoordinate[] columnCoordinates = new ColumnCoordinate[select.Count]; for (int i = 0; i < columnCoordinates.Length; i++) { Bamboo.Query.Query.Column column = (Bamboo.Query.Query.Column)select[i]; columnCoordinates[i] = new ColumnCoordinate(column.Identifier, i); } this._columnCoordinates = columnCoordinates; }
public static Bamboo.Query.Table Evaluate(object query, Bamboo.Query.Database database) { Bamboo.Query.Table T = new Bamboo.Query.Table(GetColumns(query)); Bamboo.Query.Planning.Node plan = Bamboo.Query.Planning.Planner.Plan(query, database); Bamboo.Query.Iterators.Iterator R = plan.CreateIterator(); R.Open(); System.Collections.IList r; while ((r = R.GetNext()) != null) { T.AddRow(r); } R.Close(); return(T); }
public OrderByNode(Bamboo.Query.Planning.Node node, Bamboo.Query.Query.OrderByClause orderBy) { this._node = node; this._expressions = orderBy.Expressions; System.Collections.ArrayList columns = new System.Collections.ArrayList(this._expressions.Count); this._ascendingOrder = new bool[this._expressions.Count]; for (int i = 0; i < this._expressions.Count; i++) { Bamboo.Query.Query.OrderByExpression orderByExpression = (Bamboo.Query.Query.OrderByExpression) this._expressions[i]; this._ascendingOrder[i] = orderByExpression.Ascending; columns.Add(orderByExpression.Column); } this._indexes = GetIndexes(columns, this._node.ColumnCoordinates); }
public JoinNode(Bamboo.Query.Planning.Node leftNode, Bamboo.Query.Planning.Node rightNode, Bamboo.Query.Query.Column leftColumn, Bamboo.Query.Query.Column rightColumn) { this._leftNode = leftNode; this._rightNode = rightNode; this._leftRowIndex = GetIndex(leftColumn, this._leftNode.ColumnCoordinates); this._rightRowIndex = GetIndex(rightColumn, this._rightNode.ColumnCoordinates); System.Collections.IEnumerable leftNodeColumnCoordinates = this._leftNode.ColumnCoordinates; System.Collections.IEnumerable rightNodeColumnCoordinates = this._rightNode.ColumnCoordinates; int length = 0; foreach (ColumnCoordinate columnCoordinate in leftNodeColumnCoordinates) { object ignore = columnCoordinate; length++; } foreach (ColumnCoordinate columnCoordinate in rightNodeColumnCoordinates) { object ignore = columnCoordinate; length++; } ColumnCoordinate[] columnCoordinates = new ColumnCoordinate[length]; int i = 0; foreach (ColumnCoordinate columnCoordinate in leftNodeColumnCoordinates) { columnCoordinates[i] = new ColumnCoordinate(columnCoordinate.Name, i); i++; } foreach (ColumnCoordinate columnCoordinate in rightNodeColumnCoordinates) { columnCoordinates[i] = new ColumnCoordinate(columnCoordinate.Name, i); i++; } this._columnCoordinates = columnCoordinates; }
public UnionNode(Bamboo.Query.Planning.Node leftNode, Bamboo.Query.Planning.Node rightNode) { this._leftNode = leftNode; this._rightNode = rightNode; }
public WhereNode(Bamboo.Query.Planning.Node node, Bamboo.Query.Query.WhereClause whereClause) { this._node = node; this._predicate = whereClause.Predicate; }