Skip to content

Commit

Permalink
add some uts.
Browse files Browse the repository at this point in the history
  • Loading branch information
ColinLeeo committed Jan 23, 2025
1 parent efc0f05 commit 33cdf89
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 14 deletions.
45 changes: 45 additions & 0 deletions cpp/src/cwrapper/tsfile_cwrapper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -391,6 +391,25 @@ TableSchema tsfile_reader_get_table_schema(TsFileReader reader,
return schema;
}

DeviceSchema tsfile_reader_get_timeseries_schema(TsFileReader reader,
const char *device_id) {
auto *r = static_cast<storage::TsFileReader *>(reader);
std::vector<storage::MeasurementSchema> measurement_schemas;
r->get_timeseries_schema(std::make_shared<storage::StringArrayDeviceID>(device_id), measurement_schemas);
DeviceSchema schema;
schema.device_name = strdup(device_id);
schema.timeseries_num = measurement_schemas.size();
schema.timeseries_schema = static_cast<TimeseriesSchema *>(malloc(sizeof(TimeseriesSchema)* schema.timeseries_num));
for (uint32_t i = 0; i < schema.timeseries_num; i++) {
schema.timeseries_schema[i].name = strdup(measurement_schemas[i].measurement_name_.c_str());
schema.timeseries_schema[i].data_type = static_cast<TSDataType>(measurement_schemas[i].data_type_);
schema.timeseries_schema[i].compression = static_cast<CompressionType>(measurement_schemas[i].compression_type_);
schema.timeseries_schema[i].encoding = static_cast<TSEncoding>(measurement_schemas[i].encoding_);
}
return schema;
}


TableSchema *tsfile_reader_get_all_table_schemas(TsFileReader reader,
const char *table_name,
uint32_t *num) {
Expand Down Expand Up @@ -431,3 +450,29 @@ ERRNO destroy_tablet(Tablet tablet) {
}
return common::E_OK;
}

void destroy_tsfile_result_set(ResultSet result_set) {
if (result_set != nullptr) {
delete static_cast<storage::ResultSet *>(result_set);
}
}
void destroy_device_schema(DeviceSchema schema) {
free(schema.device_name);
for (int i = 0; i < schema.timeseries_num; i++) {
destroy_timeseries_schema(schema.timeseries_schema[i]);
}
free(schema.timeseries_schema);
}
void destroy_timeseries_schema(TimeseriesSchema schema) {
free(schema.name);
}
void destroy_table_schema(TableSchema schema) {
free(schema.table_name);
for (int i = 0; i < schema.column_num; i++) {
destroy_column_schema(schema.column_schemas[i]);
}
free(schema.column_schemas);
}
void destroy_column_schema(ColumnSchema schema) {
free(schema.column_name);
}
7 changes: 7 additions & 0 deletions cpp/src/cwrapper/tsfile_cwrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -221,14 +221,21 @@ bool tsfile_result_set_is_null_by_index(ResultSet result_set,

ResultSetMetaData tsfile_result_set_get_metadata(ResultSet result_set);


// Desc Table Schema

TableSchema tsfile_reader_get_table_schema(TsFileReader reader,
const char* table_name);
DeviceSchema tsfile_reader_get_timeseries_schema(TsFileReader reader, const char* device_id);

// destroy pointer
ERRNO destroy_tsfile_ts_record(TsRecord record);
ERRNO destroy_tablet(Tablet tablet);
void destroy_tsfile_result_set(ResultSet result_set);
void destroy_device_schema(DeviceSchema schema);
void destroy_timeseries_schema(TimeseriesSchema schema);
void destroy_table_schema(TableSchema schema);
void destroy_column_schema(ColumnSchema schema);

#ifdef __cplusplus
}
Expand Down
21 changes: 7 additions & 14 deletions cpp/test/cwrapper/cwrapper_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ TEST_F(CWrapperTest, WriterFlushTabletAndReadData) {
tablet_add_timestamp(tablet, row, 16225600 + row);
}
for (int row = 0; row < max_rows; row++) {
tablet_add_value_by_index_int64_t(tablet, row, j, static_cast<int64_t>(row));
tablet_add_value_by_index_int64_t(tablet, row, j, static_cast<int64_t>(row + j));
}
}
code = tsfile_writer_write_tablet(writer, tablet);
Expand All @@ -116,21 +116,14 @@ TEST_F(CWrapperTest, WriterFlushTabletAndReadData) {
for (int i = 0; i < measurement_num - 1; i++) {
ASSERT_TRUE(tsfile_result_set_has_next(result_set));
ASSERT_FALSE(tsfile_result_set_is_null_by_index(result_set,i));
ASSERT_EQ(tsfile_result_set_get_value_by_index_int64_t(result_set, i), i);
ASSERT_EQ(tsfile_result_set_get_value_by_name_int64_t(result_set, std::string("measurement" + std::to_string(i)).c_str()), i);
ASSERT_EQ(tsfile_result_set_get_value_by_index_int64_t(result_set, i), i*2);
ASSERT_EQ(tsfile_result_set_get_value_by_name_int64_t(result_set, std::string("measurement" + std::to_string(i)).c_str()), i*2);
}
destroy_tsfile_result_set(result_set);












// DeviceSchema schema = tsfile_reader_get_timeseries_schema(reader, "device4");
// ASSERT_EQ(schema.timeseries_num, 1);
// ASSERT_EQ(schema.timeseries_schema->name, std::string("measurement4"));
}

} // namespace cwrapper

0 comments on commit 33cdf89

Please sign in to comment.