public SessionDataSet()

in src/Apache.IoTDB/DataStructure/SessionDataSet.cs [36:93]


        public SessionDataSet(string sql, TSExecuteStatementResp resp, ConcurrentClientQueue clientQueue, long statementId)
        {
            _clientQueue = clientQueue;
            _sql = sql;
            _queryDataset = resp.QueryDataSet;
            _queryId = resp.QueryId;
            _statementId = statementId;
            _columnSize = resp.Columns.Count;
            _currentBitmap = new byte[_columnSize];
            _columnNames = new List<string>();
            _timeBuffer = new ByteBuffer(_queryDataset.Time);
            _columnNameIndexMap = new Dictionary<string, int>();
            _columnTypeLst = new List<string>();
            _duplicateLocation = new Dictionary<int, int>();
            _valueBufferLst = new List<ByteBuffer>();
            _bitmapBufferLst = new List<ByteBuffer>();
            // some internal variable
            _hasCatchedResult = false;
            _rowIndex = 0;
            RowCount = _queryDataset.Time.Length / sizeof(long);
            if (resp.ColumnNameIndexMap != null)
            {
                for (var index = 0; index < resp.Columns.Count; index++)
                {
                    _columnNames.Add("");
                    _columnTypeLst.Add("");
                }

                for (var index = 0; index < resp.Columns.Count; index++)
                {
                    var name = resp.Columns[index];
                    _columnNames[resp.ColumnNameIndexMap[name]] = name;
                    _columnTypeLst[resp.ColumnNameIndexMap[name]] = resp.DataTypeList[index];
                }
            }
            else
            {
                _columnNames = resp.Columns;
                _columnTypeLst = resp.DataTypeList;
            }

            for (int index = 0; index < _columnNames.Count; index++)
            {
                var columnName = _columnNames[index];
                if (_columnNameIndexMap.ContainsKey(columnName))
                {
                    _duplicateLocation[index] = _columnNameIndexMap[columnName];
                }
                else
                {
                    _columnNameIndexMap[columnName] = index;
                }

                _valueBufferLst.Add(new ByteBuffer(_queryDataset.ValueList[index]));
                _bitmapBufferLst.Add(new ByteBuffer(_queryDataset.BitmapList[index]));
            }

        }