This is an automated email from the ASF dual-hosted git repository.

haonan pushed a commit to branch fix_cpp_query_with_timefilter
in repository https://gitbox.apache.org/repos/asf/tsfile.git

commit be69acb173fd78fd882479aebd60d2a3adf80290
Author: HTHou <[email protected]>
AuthorDate: Fri Apr 25 17:45:26 2025 +0800

    Fix CPP TsFile query with time filter error
---
 cpp/src/reader/tsfile_series_scan_iterator.cc          |  2 +-
 cpp/test/reader/table_view/tsfile_reader_table_test.cc | 10 +++++++---
 2 files changed, 8 insertions(+), 4 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/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_ =

Reply via email to