-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Milestone
Description
We wanted to change the following about the schema:
- Formally make it a collection of 'columns'.
- Turn metadata into an instance of
IRow
. - (maybe) introduce 'global metadata' in addition to 'column metadata'.
Below is the sketch of the new interface for schema:
public interface ISchema : IReadOnlyList<ISchemaColumn>
{
/// <summary>
/// Dataset-wide metadata.
/// </summary>
IRow Metadata { get; }
}
public interface ISchemaColumn
{
/// <summary>
/// The name of a column. This string should always be non-empty.
/// </summary>
string Name { get; }
/// <summary>
/// The type of the column.
/// </summary>
ColumnType Type { get; }
/// <summary>
/// The metadata for a column, or <c>null</c> if this column has no metadata.
/// </summary>
IRow Metadata { get; }
}
In addition, we might want to rework IRow
to not include the notion of 'Row ID' and 'active columns'. Maybe this calls for another interface, like IMovingRow
that would include these.
/cc @TomFinley