@@ -30,13 +30,18 @@ public interface ISchemaBindableMapper
3030 /// This interface is used to map a schema from input columns to output columns. The <see cref="ISchemaBoundMapper"/> should keep track
3131 /// of the input columns that are needed for the mapping.
3232 /// </summary>
33- public interface ISchemaBoundMapper : ISchematized
33+ public interface ISchemaBoundMapper
3434 {
3535 /// <summary>
3636 /// The <see cref="RoleMappedSchema"/> that was passed to the <see cref="ISchemaBoundMapper"/> in the binding process.
3737 /// </summary>
3838 RoleMappedSchema InputRoleMappedSchema { get ; }
3939
40+ /// <summary>
41+ /// Gets schema of this mapper's output.
42+ /// </summary>
43+ Schema OutputSchema { get ; }
44+
4045 /// <summary>
4146 /// A property to get back the <see cref="ISchemaBindableMapper"/> that produced this <see cref="ISchemaBoundMapper"/>.
4247 /// </summary>
@@ -53,6 +58,11 @@ public interface ISchemaBoundMapper : ISchematized
5358 /// </summary>
5459 public interface ISchemaBoundRowMapper : ISchemaBoundMapper , IRowToRowMapper
5560 {
61+ /// <summary>
62+ /// There are two schemas from <see cref="ISchemaBoundMapper"/> and <see cref="IRowToRowMapper"/>.
63+ /// Since the two parent schema's are identical in all derived classes, we merge them into <see cref="OutputSchema"/>.
64+ /// </summary>
65+ new Schema OutputSchema { get ; }
5666 }
5767
5868 /// <summary>
@@ -61,15 +71,20 @@ public interface ISchemaBoundRowMapper : ISchemaBoundMapper, IRowToRowMapper
6171 /// return a subset of the input columns.
6272 /// This interface is similar to <see cref="ISchemaBoundRowMapper"/>, except it does not have any input role mappings,
6373 /// so to rebind, the same input column names must be used.
64- /// Implementing of this object are typically created using a definie input <see cref="ISchema "/>.
74+ /// Implementations of this interface are typically created over defined input <see cref="Schema "/>.
6575 /// </summary>
66- public interface IRowToRowMapper : ISchematized
76+ public interface IRowToRowMapper
6777 {
6878 /// <summary>
6979 /// Mappers are defined as accepting inputs with this very specific schema.
7080 /// </summary>
7181 Schema InputSchema { get ; }
7282
83+ /// <summary>
84+ /// Gets an instance of <see cref="Schema"/> which describes the columns' names and types in the output generated by this mapper.
85+ /// </summary>
86+ Schema OutputSchema { get ; }
87+
7388 /// <summary>
7489 /// Given a predicate specifying which columns are needed, return a predicate indicating which input columns are
7590 /// needed. The domain of the function is defined over the indices of the columns of <see cref="ISchema.ColumnCount"/>
@@ -82,9 +97,9 @@ public interface IRowToRowMapper : ISchematized
8297 /// The active columns are those for which <paramref name="active"/> returns true. Getting values on inactive
8398 /// columns of the returned row will throw. Null predicates are disallowed.
8499 ///
85- /// The <see cref="ISchematized .Schema"/> of <paramref name="input"/> should be the same object as
100+ /// The <see cref="IRow .Schema"/> of <paramref name="input"/> should be the same object as
86101 /// <see cref="InputSchema"/>. Implementors of this method should throw if that is not the case. Conversely,
87- /// the returned value must have the same schema as <see cref="ISchematized.Schema "/>.
102+ /// the returned value must have the same schema as <see cref="OutputSchema "/>.
88103 ///
89104 /// This method creates a live connection between the input <see cref="IRow"/> and the output <see
90105 /// cref="IRow"/>. In particular, when the getters of the output <see cref="IRow"/> are invoked, they invoke the
0 commit comments