Example #1
0
            public Cursor(IChannelProvider provider, PartitionedFileLoader parent, IMultiStreamSource files, Func <int, bool> predicate, Random rand)
                : base(provider)
            {
                Contracts.AssertValue(parent);
                Contracts.AssertValue(files);
                Contracts.AssertValue(predicate);

                _parent = parent;

                _active    = Utils.BuildArray(Schema.Count, predicate);
                _subActive = _active.Take(SubColumnCount).ToArray();
                _colValues = new ReadOnlyMemory <char> [Schema.Count - SubColumnCount];

                _subGetters = new Delegate[SubColumnCount];
                _getters    = CreateGetters();

                _fileOrder = CreateFileOrder(rand).GetEnumerator();
            }
Example #2
0
            public Cursor(IChannelProvider provider, PartitionedFileLoader parent, IMultiStreamSource files, IEnumerable <DataViewSchema.Column> columnsNeeded, Random rand)
                : base(provider)
            {
                Contracts.AssertValue(parent);
                Contracts.AssertValue(files);

                _parent        = parent;
                _columnsNeeded = columnsNeeded;

                _active    = Utils.BuildArray(Schema.Count, columnsNeeded);
                _subActive = _active.Take(SubColumnCount).ToArray();
                _colValues = new ReadOnlyMemory <char> [Schema.Count - SubColumnCount];

                _subActivecolumnsNeeded = Schema.Where(x => (_subActive?.Length > x.Index) && _subActive[x.Index]);

                _subGetters = new Delegate[SubColumnCount];
                _getters    = CreateGetters();

                _fileOrder = CreateFileOrder(rand).GetEnumerator();
            }