This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git
The following commit(s) were added to refs/heads/develop by this push:
new 73ac55f0 Fix CPP TsFile query with time filter error (#474)
73ac55f0 is described below
commit 73ac55f02a9d0c88a18c86646e4b0cb4632c12dc
Author: Haonan <[email protected]>
AuthorDate: Sun Apr 27 09:26:28 2025 +0800
Fix CPP TsFile query with time filter error (#474)
* Fix CPP TsFile query with time filter error
* fix test
---
cpp/src/reader/tsfile_series_scan_iterator.cc | 2 +-
cpp/test/cwrapper/c_release_test.cc | 2 +-
cpp/test/reader/table_view/tsfile_reader_table_test.cc | 10 +++++++---
3 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/cpp/src/reader/tsfile_series_scan_iterator.cc
b/cpp/src/reader/tsfile_series_scan_iterator.cc
index ee41231e..eb3bd1ed 100644
--- a/cpp/src/reader/tsfile_series_scan_iterator.cc
+++ b/cpp/src/reader/tsfile_series_scan_iterator.cc
@@ -79,7 +79,7 @@ int TsFileSeriesScanIterator::get_next(TsBlock *&ret_tsblock,
bool alloc,
if (alloc) {
ret_tsblock = alloc_tsblock();
}
- ret = chunk_reader_->get_next_page(ret_tsblock, oneshoot_filter,
+ ret = chunk_reader_->get_next_page(ret_tsblock, filter,
*data_pa_);
}
return ret;
diff --git a/cpp/test/cwrapper/c_release_test.cc
b/cpp/test/cwrapper/c_release_test.cc
index ef50f00b..86f1b697 100644
--- a/cpp/test/cwrapper/c_release_test.cc
+++ b/cpp/test/cwrapper/c_release_test.cc
@@ -322,7 +322,7 @@ TEST_F(CReleaseTest, TsFileWriterMultiDataType) {
}
row_num++;
}
- ASSERT_EQ(1000, row_num);
+ ASSERT_EQ(990, row_num);
free_tsfile_result_set(&result_set);
tsfile_reader_close(reader);
for (int i = 0; i < 6; i++) {
diff --git a/cpp/test/reader/table_view/tsfile_reader_table_test.cc
b/cpp/test/reader/table_view/tsfile_reader_table_test.cc
index 58288a23..d2f4a8a3 100644
--- a/cpp/test/reader/table_view/tsfile_reader_table_test.cc
+++ b/cpp/test/reader/table_view/tsfile_reader_table_test.cc
@@ -133,7 +133,7 @@ class TsFileTableReaderTest : public ::testing::Test {
return tablet;
}
- void test_table_model_query(uint32_t points_per_device = 10, uint32_t
device_num = 1) {
+ void test_table_model_query(uint32_t points_per_device = 10, uint32_t
device_num = 1, int64_t end_time = 1000000000000) {
auto table_schema = gen_table_schema(0);
auto tsfile_table_writer_ =
std::make_shared<TsFileTableWriter>(&write_file_, table_schema);
@@ -149,7 +149,7 @@ class TsFileTableReaderTest : public ::testing::Test {
ResultSet* tmp_result_set = nullptr;
ret = reader.query(table_schema->get_table_name(),
table_schema->get_measurement_names(), 0,
- 1000000000000, tmp_result_set);
+ end_time, tmp_result_set);
auto* table_result_set = (TableResultSet*)tmp_result_set;
char* literal = new char[std::strlen("device_id") + 1];
std::strcpy(literal, "device_id");
@@ -188,7 +188,7 @@ class TsFileTableReaderTest : public ::testing::Test {
ASSERT_EQ(table_result_set->get_value<int64_t>(1), row_num %
points_per_device);
row_num++;
}
- ASSERT_EQ(row_num, points_per_device * device_num);
+ ASSERT_EQ(row_num, std::min<int64_t>(points_per_device * device_num,
end_time + 1));
reader.destroy_query_data_set(table_result_set);
delete[] literal;
ASSERT_EQ(reader.close(), common::E_OK);
@@ -226,6 +226,10 @@ TEST_F(TsFileTableReaderTest, TableModelQueryMultiDevices)
{
g_config_value_.page_writer_max_point_num_ = prev_config;
}
+TEST_F(TsFileTableReaderTest, TableModelQueryWithTimeFilter) {
+ test_table_model_query(10, 1, 2);
+}
+
TEST_F(TsFileTableReaderTest, TableModelResultMetadata) {
auto table_schema = gen_table_schema(0);
auto tsfile_table_writer_ =