|
13 | 13 | using Xtensive.Tuples; |
14 | 14 | using Tuple = Xtensive.Tuples.Tuple; |
15 | 15 | using Xtensive.Tuples.Transform; |
16 | | -using System.Linq; |
17 | 16 | using Xtensive.Reflection; |
18 | 17 |
|
19 | 18 | namespace Xtensive.Orm.Rse.Providers |
@@ -53,27 +52,26 @@ public sealed class IncludeProvider: UnaryProvider, |
53 | 52 | /// </summary> |
54 | 53 | public Expression<Func<ParameterContext, IEnumerable<Tuple>>> FilterDataSource { get; private set; } |
55 | 54 |
|
56 | | - public MapTransform FilteredColumnsExtractionTransform { get; private set; } |
57 | | - |
58 | | - public ConcatTransform ResultTransform { get; private set; } |
| 55 | + public TupleDescriptor FilteredTupleDescriptor { get; private set; } |
59 | 56 |
|
60 | 57 | private static readonly TupleDescriptor BoolTupleDescriptor = TupleDescriptor.Create(new[] {WellKnownTypes.Bool}); |
61 | 58 |
|
62 | 59 | /// <inheritdoc/> |
63 | 60 | protected override RecordSetHeader BuildHeader() |
64 | 61 | { |
65 | | - var newHeader = Source.Header.Add(new SystemColumn(ResultColumnName, 0, WellKnownTypes.Bool)); |
| 62 | + return Source.Header.Add(new SystemColumn(ResultColumnName, 0, WellKnownTypes.Bool)); |
| 63 | + } |
| 64 | + |
| 65 | + protected override void Initialize() |
| 66 | + { |
| 67 | + base.Initialize(); |
66 | 68 | var fieldTypes = new Type[FilteredColumns.Count]; |
67 | 69 | for (var index = 0; index < fieldTypes.Length; index++) { |
68 | | - fieldTypes[index] = newHeader.Columns[FilteredColumns[index]].Type; |
| 70 | + fieldTypes[index] = Header.Columns[FilteredColumns[index]].Type; |
69 | 71 | } |
70 | | - var tupleDescriptor = TupleDescriptor.Create(fieldTypes); |
71 | | - FilteredColumnsExtractionTransform = new MapTransform(true, tupleDescriptor, FilteredColumns); |
72 | | - ResultTransform = new ConcatTransform(true, Source.Header.TupleDescriptor, BoolTupleDescriptor); |
73 | | - return newHeader; |
| 72 | + FilteredTupleDescriptor = TupleDescriptor.Create(fieldTypes); |
74 | 73 | } |
75 | 74 |
|
76 | | - |
77 | 75 | // Constructors |
78 | 76 |
|
79 | 77 | /// <summary> |
|
0 commit comments