private RawTableInfo GetRawTableInfo(RawTableInfo info, BigList <long> rows) { if (this is IRootTable) { info.Add((IRootTable)this, CalculateTableRows()); } else { for (int i = 0; i < Tables.Length; ++i) { // Resolve the rows into the parents indices. var newRowSet = ResolveTableRows(rows, i).ToBigList(); var table = Tables[i]; if (table is IRootTable) { info.Add((IRootTable)table, newRowSet); } else if (table is JoinedTable) { ((JoinedTable)table).GetRawTableInfo(info, newRowSet); } } } return(info); }
protected override RawTableInfo GetRawTableInfo(RawTableInfo rootInfo) { var rows = this.Select(row => row.Number).ToBigList(); rootInfo.Add(this, rows); return(rootInfo); }