/// <inheritdoc/> internal override void SetToRowTableDomain(int column, IList <long> rowSet, ITable ancestor) { if (ancestor == this) { return; } int tableNum = columnTable[column]; Table parentTable = referenceList[tableNum]; // Resolve the rows into the parents indices. (MANGLES row_set) ResolveAllRowsForTableAt(rowSet, tableNum); parentTable.SetToRowTableDomain(columnFilter[column], rowSet, ancestor); }
/// <inheritdoc/> internal override void SetToRowTableDomain(int column, IList <long> rowSet, ITable ancestor) { if (ancestor == this) { return; } int tableNum = vtTableInfo.IndexOfTable(column); Table parentTable = referenceList[tableNum]; // Resolve the rows into the parents indices. (MANGLES row_set) ResolveAllRowsForTableAt(rowSet, tableNum); parentTable.SetToRowTableDomain(vtTableInfo.AdjustColumnOffset(column), rowSet, ancestor); }
public static IList <long> OrdereddRows(this ITable table, int[] columns) { Table work = (Table)table.OrderBy(columns); // 'work' is now sorted by the columns, // Get the rows in this tables domain, long rowCount = table.RowCount; List <long> rowList = new List <long>((int)rowCount); IEnumerator <long> e = work.GetRowEnumerator(); while (e.MoveNext()) { rowList.Add(e.Current); } work.SetToRowTableDomain(0, rowList, table); return(rowList); }