/// <summary> /// Returns the <see cref="SchemaShape"/> of the schema which will be produced by the transformer. /// Used for schema propagation and verification in a pipeline. /// </summary> public override SchemaShape GetOutputSchema(SchemaShape inputSchema) { Host.CheckValue(inputSchema, nameof(inputSchema)); if (!Transformer.IgnoreMissing && !ColumnSelectingTransformer.IsSchemaValid(inputSchema.Select(x => x.Name), Transformer.SelectColumns, out IEnumerable <string> invalidColumns)) { throw Host.ExceptSchemaMismatch(nameof(inputSchema), "input", string.Join(",", invalidColumns)); } var columns = inputSchema.Where(c => _selectPredicate(c.Name)); return(new SchemaShape(columns)); }