private void ConstructOneRow()

in src/Apache.IoTDB/DataStructure/SessionDataSet.cs [190:266]


        private void ConstructOneRow()
        {
            List<object> fieldList = new List<Object>();

            for (int i = 0; i < _columnSize; i++)
            {
                if (_duplicateLocation.ContainsKey(i))
                {
                    var field = fieldList[_duplicateLocation[i]];
                    fieldList.Add(field);
                }
                else
                {
                    var columnValueBuffer = _valueBufferLst[i];
                    var columnBitmapBuffer = _bitmapBufferLst[i];

                    if (_rowIndex % 8 == 0)
                    {
                        _currentBitmap[i] = columnBitmapBuffer.GetByte();
                    }

                    object localField;
                    if (!IsNull(i, _rowIndex))
                    {
                        var columnDataType = GetDataTypeFromStr(_columnTypeLst[i]);


                        switch (columnDataType)
                        {
                            case TSDataType.BOOLEAN:
                                localField = columnValueBuffer.GetBool();
                                break;
                            case TSDataType.INT32:
                                // case TSDataType.DATE:
                                localField = columnValueBuffer.GetInt();
                                break;
                            case TSDataType.DATE:
                                localField = Utils.ParseIntToDate(columnValueBuffer.GetInt());
                                break;
                            case TSDataType.INT64:
                            case TSDataType.TIMESTAMP:
                                localField = columnValueBuffer.GetLong();
                                break;
                            case TSDataType.FLOAT:
                                localField = columnValueBuffer.GetFloat();
                                break;
                            case TSDataType.DOUBLE:
                                localField = columnValueBuffer.GetDouble();
                                break;
                            case TSDataType.TEXT:
                            case TSDataType.STRING:
                                // case TSDataType.BLOB:
                                localField = columnValueBuffer.GetStr();
                                break;
                            case TSDataType.BLOB:
                                localField = columnValueBuffer.GetBinary();
                                break;
                            // TODO
                            default:
                                string err_msg = "value format not supported";
                                throw new TException(err_msg, null);
                        }

                        fieldList.Add(localField);
                    }
                    else
                    {
                        localField = null;
                        fieldList.Add(DBNull.Value);
                    }
                }
            }

            long timestamp = _timeBuffer.GetLong();
            _rowIndex += 1;
            _cachedRowRecord = new RowRecord(timestamp, fieldList, _columnNames);
        }