761417898 commented on code in PR #192:
URL: https://github.com/apache/tsfile/pull/192#discussion_r1714810136
##########
cpp/test/writer/tsfile_writer_test.cc:
##########
@@ -215,31 +326,183 @@ TEST_F(TsFileWriterTest,
FlushWithoutWriteAfterRegisterTS) {
}
*/
-TEST_F(TsFileWriterTest, MultiFlush) {
- std::string device_path = "device1";
- std::string measurement_name = "temperature";
+TEST_F(TsFileWriterTest, WriteAlignedTimeseries) {
+ int measurement_num = 100, row_num = 150;
+ std::string device_name = "device";
+ std::vector<std::string> measurement_names;
+ for (int i = 0; i < measurement_num; i++) {
+ measurement_names.emplace_back("temperature" + to_string(i));
+ }
+
common::TSDataType data_type = common::TSDataType::INT32;
common::TSEncoding encoding = common::TSEncoding::PLAIN;
common::CompressionType compression_type =
common::CompressionType::UNCOMPRESSED;
- ASSERT_EQ(tsfile_writer_->register_timeseries(device_path,
measurement_name,
- data_type, encoding,
- compression_type),
- E_OK);
- for (int i = 1; i < 2000; i++) {
- TsRecord record(i, device_path);
- DataPoint point(measurement_name, i);
- record.append_data_point(point);
- ASSERT_EQ(tsfile_writer_->write_record(record), E_OK);
+ for (const auto &measurement_name : measurement_names) {
+ tsfile_writer_->register_aligned_timeseries(device_name,
+ measurement_name,
data_type,
+ encoding,
compression_type);
}
- ASSERT_EQ(tsfile_writer_->flush(), E_OK);
- for (int i = 2000; i < 4000; i++) {
- TsRecord record(i, device_path);
- DataPoint point(measurement_name, i);
- record.append_data_point(point);
- ASSERT_EQ(tsfile_writer_->write_record(record), E_OK);
+ for (int i = 0; i < row_num; ++i) {
+ TsRecord record(1622505600000 + i * 1000, device_name);
+ for (const auto &measurement_name : measurement_names) {
+ DataPoint point(measurement_name, (int32_t)i);
+ record.append_data_point(point);
+ }
+ ASSERT_EQ(tsfile_writer_->write_record_aligned(record), E_OK);
}
+
ASSERT_EQ(tsfile_writer_->flush(), E_OK);
tsfile_writer_->close();
+
+ std::vector<storage::Path> select_list;
+ for (int i = 0; i < measurement_num; ++i) {
+ std::string measurement_name = "temperature" + to_string(i);
+ storage::Path path(device_name, measurement_name);
+ select_list.push_back(path);
+ }
+ storage::QueryExpression *query_expr =
+ storage::QueryExpression::create(select_list, nullptr);
+
+ storage::TsFileReader reader;
+ int ret = reader.open(file_name_);
+ ASSERT_EQ(ret, common::E_OK);
+ storage::QueryDataSet *tmp_qds = nullptr;
+
+ ret = reader.query(query_expr, tmp_qds);
+ auto *qds = (QDSWithoutTimeGenerator *)tmp_qds;
Review Comment:
fixed: `reader.destroy_query_data_set(qds);`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]