in src/Apache.IoTDB/DataStructure/Tablet.cs [117:178]
public Tablet(
string tableName,
List<string> columnNames,
List<ColumnCategory> columnCategories,
List<TSDataType> dataTypes,
List<List<object>> values,
List<long> timestamps)
{
if (timestamps.Count != values.Count)
{
throw new Exception(
$"Input error. Timestamps.Count({timestamps.Count}) does not equal to Values.Count({values.Count}).",
null);
}
if (columnNames.Count != dataTypes.Count)
{
throw new Exception(
$"Input error. ColumnNames.Count({columnNames.Count}) does not equal to DataTypes.Count({dataTypes.Count}).",
null);
}
if (columnNames.Count != columnCategories.Count)
{
throw new Exception(
$"Input error. ColumnNames.Count({columnNames.Count}) does not equal to ColumnCategories.Count({columnCategories.Count}).",
null);
}
if (!_utilFunctions.IsSorted(timestamps))
{
var sorted = timestamps
.Select((x, index) => (timestamp: x, values: values[index]))
.OrderBy(x => x.timestamp).ToList();
_timestamps = sorted.Select(x => x.timestamp).ToList();
_values = sorted.Select(x => x.values).ToList();
}
else
{
_values = values;
_timestamps = timestamps;
}
InsertTargetName = tableName;
Measurements = columnNames;
ColumnCategories = columnCategories;
DataTypes = dataTypes;
RowNumber = timestamps.Count;
ColNumber = columnNames.Count;
// reset bitmap
if (BitMaps != null)
{
foreach (var bitmap in BitMaps)
{
if (bitmap != null)
{
bitmap.reset();
}
}
}
}