in src/Apache.IoTDB/DataStructure/SessionDataSet.cs [169:234]
private void ConstructOneRow()
{
List<object> fieldLst = new List<Object>();
for (int i = 0; i < _columnSize; i++)
{
if (_duplicateLocation.ContainsKey(i))
{
var field = fieldLst[_duplicateLocation[i]];
fieldLst.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:
localField = columnValueBuffer.GetInt();
break;
case TSDataType.INT64:
localField = columnValueBuffer.GetLong();
break;
case TSDataType.FLOAT:
localField = columnValueBuffer.GetFloat();
break;
case TSDataType.DOUBLE:
localField = columnValueBuffer.GetDouble();
break;
case TSDataType.TEXT:
localField = columnValueBuffer.GetStr();
break;
default:
string err_msg = "value format not supported";
throw new TException(err_msg, null);
}
fieldLst.Add(localField);
}
else
{
localField = null;
fieldLst.Add(DBNull.Value);
}
}
}
long timestamp = _timeBuffer.GetLong();
_rowIndex += 1;
_cachedRowRecord = new RowRecord(timestamp, fieldLst, _columnNames);
}