This is an automated email from the ASF dual-hosted git repository. colinlee pushed a commit to branch colin_example_c_cpp in repository https://gitbox.apache.org/repos/asf/tsfile.git
commit 57b101e72bda8ab3c7d8bfb8d6463941ba9d96d2 Author: colin <shuoli...@163.com> AuthorDate: Wed Feb 26 20:54:34 2025 +0800 fix some error. --- cpp/src/common/schema.h | 2 +- cpp/src/cwrapper/tsfile_cwrapper.cc | 8 ++++++-- cpp/src/cwrapper/tsfile_cwrapper.h | 2 +- cpp/test/cwrapper/cwrapper_test.cc | 19 ++++++++++++++----- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/cpp/src/common/schema.h b/cpp/src/common/schema.h index 43cefbc8..3a67b7fa 100644 --- a/cpp/src/common/schema.h +++ b/cpp/src/common/schema.h @@ -184,7 +184,7 @@ class TableSchema { * in the table. */ TableSchema(const std::string &table_name, - const std::vector<common::ColumnSchema> &column_schemas) { + const std::vector<common::ColumnSchema> &column_schemas):table_name_(table_name) { to_lowercase_inplace(table_name_); for (const common::ColumnSchema &column_schema : column_schemas) { column_schemas_.emplace_back(std::make_shared<MeasurementSchema>( diff --git a/cpp/src/cwrapper/tsfile_cwrapper.cc b/cpp/src/cwrapper/tsfile_cwrapper.cc index 048b4dfa..220bb6f2 100644 --- a/cpp/src/cwrapper/tsfile_cwrapper.cc +++ b/cpp/src/cwrapper/tsfile_cwrapper.cc @@ -290,14 +290,14 @@ ERRNO tsfile_writer_write(TsFileWriter writer, Tablet tablet) { ResultSet tsfile_query_table(TsFileReader reader, const char *table_name, char **columns, uint32_t column_num, - Timestamp start_time, Timestamp end_time) { + Timestamp start_time, Timestamp end_time, ERRNO* err_code) { auto *r = static_cast<storage::TsFileReader *>(reader); storage::ResultSet *table_result_set = nullptr; std::vector<std::string> column_names; for (int i = 0; i < column_num; i++) { column_names.emplace_back(columns[i]); } - r->query(table_name, column_names, start_time, end_time, table_result_set); + *err_code = r->query(table_name, column_names, start_time, end_time, table_result_set); return table_result_set; } @@ -385,6 +385,10 @@ bool tsfile_result_set_is_null_by_index(const ResultSet result_set, ResultSetMetaData tsfile_result_set_get_metadata(ResultSet result_set) { auto *r = static_cast<storage::TableResultSet *>(result_set); + if (result_set == NULL) { + return ResultSetMetaData(); + } + ResultSetMetaData meta_data; std::shared_ptr<storage::ResultSetMetadata> result_set_metadata = r->get_metadata(); diff --git a/cpp/src/cwrapper/tsfile_cwrapper.h b/cpp/src/cwrapper/tsfile_cwrapper.h index fffb7b59..a10c2af0 100644 --- a/cpp/src/cwrapper/tsfile_cwrapper.h +++ b/cpp/src/cwrapper/tsfile_cwrapper.h @@ -313,7 +313,7 @@ ERRNO tsfile_writer_write(TsFileWriter writer, Tablet tablet); */ ResultSet tsfile_query_table(TsFileReader reader, const char* table_name, char** columns, uint32_t column_num, - Timestamp start_time, Timestamp end_time); + Timestamp start_time, Timestamp end_time, ERRNO* err_code); // ResultSet tsfile_reader_query_device(TsFileReader reader, // const char* device_name, // char** sensor_name, uint32_t sensor_num, diff --git a/cpp/test/cwrapper/cwrapper_test.cc b/cpp/test/cwrapper/cwrapper_test.cc index 85429af7..52b631ef 100644 --- a/cpp/test/cwrapper/cwrapper_test.cc +++ b/cpp/test/cwrapper/cwrapper_test.cc @@ -64,7 +64,7 @@ TEST_F(CWrapperTest, WriterFlushTabletAndReadData) { for (int i = 2; i < column_num; i++) { schema.column_schemas[i] = ColumnSchema{ strdup(("s" + std::to_string(i)).c_str()), TS_DATATYPE_INT32, - TS_COMPRESSION_UNCOMPRESSED, TS_ENCODING_PLAIN, TAG}; + TS_COMPRESSION_UNCOMPRESSED, TS_ENCODING_PLAIN, FIELD}; } TsFileWriter writer = tsfile_writer_new( "cwrapper_write_flush_and_read.tsfile", &schema, &code); @@ -91,6 +91,10 @@ TEST_F(CWrapperTest, WriterFlushTabletAndReadData) { data_types[0] = TS_DATATYPE_STRING; data_types[1] = TS_DATATYPE_STRING; Tablet tablet = tablet_new(column_names, data_types, column_num, max_rows); + for(int i = 2; i < column_num; i++) { + free(column_names[i]); + } + free(column_names); for (int i = 0; i < max_rows; i++) { code = tablet_add_timestamp(tablet, i, static_cast<Timestamp>(i * 10)); @@ -117,15 +121,20 @@ TEST_F(CWrapperTest, WriterFlushTabletAndReadData) { char** sensor_list = static_cast<char**>(malloc(4 * sizeof(char*))); sensor_list[0] = "id1"; sensor_list[1] = "id2"; - sensor_list[2] = "s1"; - sensor_list[3] = "s2"; + sensor_list[2] = "s3"; + sensor_list[3] = "s4"; ResultSet result_set = - tsfile_query_table(reader, "table1", sensor_list, 4, 0, 100); + tsfile_query_table(reader, "table1", sensor_list, 4, 0, 100, &code); ResultSetMetaData metadata = tsfile_result_set_get_metadata(result_set); ASSERT_EQ(metadata.column_num, 4); ASSERT_EQ(std::string(metadata.column_names[3]), - std::string("s2")); + std::string("s4")); ASSERT_EQ(metadata.data_types[3], TS_DATATYPE_INT32); + while(tsfile_result_set_next(result_set, &code) && code == E_OK) { + std::cout<< tsfile_result_set_is_null_by_index(result_set, 1); + } + + } } // namespace cwrapper \ No newline at end of file