/// <inheritdoc/> public override DataObject GetValue(int column, long row) { int tableNum = JoinedTableInfo.IndexOfTable(column); Table parentTable = ReferenceTables[tableNum]; if (row >= outerRowCount) { row = ReferenceRows[tableNum][(int)row - outerRowCount]; return(parentTable.GetValue(JoinedTableInfo.AdjustColumnOffset(column), row)); } if (outerRows[tableNum] == null) { // Special case, handling outer entries (NULL) return(new DataObject(TableInfo[column].DataType, null)); } row = outerRows[tableNum][(int)row]; return(parentTable.GetValue(JoinedTableInfo.AdjustColumnOffset(column), row)); }
private void CallInit(Table[] tables) { vtTableInfo = new JoinedTableInfo(new ObjectName("#VIRTUAL TABLE#"), tables.Select(x => x.TableInfo).ToArray()); Init(tables); }