18 using System.Collections.Generic;
22 namespace Deveel.Data.Sql.Tables {
30 protected ITable Parent {
get;
private set; }
33 return Parent.GetEnumerator();
44 public override int RowCount {
45 get {
return Parent.RowCount; }
48 public override void Lock() {
57 return Parent.GetRawTableInfo(rootInfo);
61 if (columnIndices == null) {
62 columnIndices =
new ColumnIndex[Parent.ColumnCount()];
66 var index = columnIndices[column];
75 index = Parent.
GetIndex(column, originalColumn, t);
77 columnIndices[column] = index;
86 return index.
GetSubset(table, originalColumn);
92 protected override IEnumerable<int>
ResolveRows(
int column, IEnumerable<int> rowSet,
ITable ancestor) {
93 if (ancestor ==
this || ancestor == Parent)
96 return Parent.ResolveRows(column, rowSet, ancestor);
100 return Parent.GetValue(rowNumber, columnOffset);
104 return Parent.GetResolvedColumnName(column);
override IEnumerator< Row > GetEnumerator()
ColumnIndex[] columnIndices
Defines the contract to access the data contained into a table of a database.
TableInfo(ObjectName tableName)
Constructs the object with the given table name.
FilterTable(ITable parent)
override RawTableInfo GetRawTableInfo(RawTableInfo rootInfo)
override DataObject GetValue(long rowNumber, int columnOffset)
Gets a single cell within the table that is located at the given column offset and row...
Describes the name of an object within a database.
override ColumnIndex GetIndex(int column, int originalColumn, ITable table)
override IEnumerable< int > ResolveRows(int column, IEnumerable< int > rowSet, ITable ancestor)
Represents a dynamic object that encapsulates a defined SqlType and a compatible constant ISqlObject ...
Defines the metadata properties of a table existing within a database.
virtual ColumnIndex GetSubset(ITable subsetTable, int subsetColumn)
ColumnIndex GetIndex(int columnOffset)
Gets an index for given column that can be used to select values from this table. ...
override ObjectName GetResolvedColumnName(int column)