Ejemplo n.º 1
0
        protected DataColumnAndSchema MakeDataColumnAndSchema()
        {
            // Make a copy of the Remembering reader that later can be discarded
            // This to avoid to read in all tables in memory at the same time.
            var fullReader = new RememberingFullTableReader(_reader);

            fullReader.LoadAll();

            var dataDict = fullReader.Data;

            var fields   = new List <Field>();
            var datacols = new List <DataColumn>();

            var numCol = _colInfos.Count;

            for (var i = 0; i < numCol; i++)
            {
                var        colInfo  = _colInfos[i];
                var        dataName = colInfo.Name;
                var        dataArr  = dataDict[dataName];
                DataColumn column;
                switch (dataArr)
                {
                case bool[] _:
                    column = new DataColumn(new DataField <bool>(dataName), dataArr);
                    break;

                case byte[] _:
                    column = new DataColumn(new DataField <byte>(dataName), dataArr);
                    break;

                case int[] _:
                    column = new DataColumn(new DataField <int>(dataName), dataArr);
                    break;

                case long[] _:
                    column = new DataColumn(new DataField <long>(dataName), dataArr);
                    break;

                case float[] _:
                    column = new DataColumn(new DataField <float>(dataName), dataArr);
                    break;

                case double[] _:
                    column = new DataColumn(new DataField <double>(dataName), dataArr);
                    break;

                case string[] _:
                    column = new DataColumn(new DataField <string>(dataName), dataArr);
                    break;

                default:
                    continue;
                }
                fields.Add(column.Field);
                datacols.Add(column);
            }

            return(new DataColumnAndSchema(datacols, new Schema(fields)));
        }
Ejemplo n.º 2
0
        public RememberingFullTableReader(RememberingFullTableReader rftr)
        {
            // Make a copy of existing data and reader
            _importBase = rftr._importBase;

            if (rftr.Data != null)
            {
                Data = new Dictionary <string, Array>(rftr.Data);
            }
        }
Ejemplo n.º 3
0
 protected ImportTableBase()
 {
     _reader = new RememberingFullTableReader(this);
 }