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

zouxinyi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 9c65b7ab96 [improvement](column_reader) move load once to index reader 
to reduce (#23537)
9c65b7ab96 is described below

commit 9c65b7ab96a84025eb6b43d08ac977e1a9d8a250
Author: Yongqiang YANG <[email protected]>
AuthorDate: Tue Aug 29 09:34:27 2023 +0800

    [improvement](column_reader) move load once to index reader to reduce 
(#23537)
    
    memory footprint of column reader
---
 .../olap/rowset/segment_v2/bitmap_index_reader.cpp | 17 ++++++++++++----
 .../olap/rowset/segment_v2/bitmap_index_reader.h   | 14 +++++++------
 .../segment_v2/bloom_filter_index_reader.cpp       |  7 +++++++
 .../rowset/segment_v2/bloom_filter_index_reader.h  |  5 +++++
 be/src/olap/rowset/segment_v2/column_reader.cpp    | 23 +++++++---------------
 be/src/olap/rowset/segment_v2/column_reader.h      |  6 ------
 .../olap/rowset/segment_v2/ordinal_page_index.cpp  | 17 ++++++++++++----
 be/src/olap/rowset/segment_v2/ordinal_page_index.h | 16 ++++++++-------
 be/src/olap/rowset/segment_v2/zone_map_index.cpp   | 13 ++++++++++--
 be/src/olap/rowset/segment_v2/zone_map_index.h     | 14 ++++++++-----
 .../olap/rowset/segment_v2/bitmap_index_test.cpp   |  4 ++--
 .../rowset/segment_v2/ordinal_page_index_test.cpp  |  8 ++++----
 .../olap/rowset/segment_v2/zone_map_index_test.cpp | 12 +++++------
 13 files changed, 94 insertions(+), 62 deletions(-)

diff --git a/be/src/olap/rowset/segment_v2/bitmap_index_reader.cpp 
b/be/src/olap/rowset/segment_v2/bitmap_index_reader.cpp
index 0e2c26ff30..69dbf05356 100644
--- a/be/src/olap/rowset/segment_v2/bitmap_index_reader.cpp
+++ b/be/src/olap/rowset/segment_v2/bitmap_index_reader.cpp
@@ -32,10 +32,19 @@
 namespace doris {
 namespace segment_v2 {
 
-Status BitmapIndexReader::load(bool use_page_cache, bool kept_in_memory) {
-    const IndexedColumnMetaPB& dict_meta = _bitmap_index_meta->dict_column();
-    const IndexedColumnMetaPB& bitmap_meta = 
_bitmap_index_meta->bitmap_column();
-    _has_null = _bitmap_index_meta->has_null();
+Status BitmapIndexReader::load(bool use_page_cache, bool kept_in_memory,
+                               const BitmapIndexPB* index_meta) {
+    // TODO yyq: implement a new once flag to avoid status construct.
+    return _load_once.call([this, use_page_cache, kept_in_memory, index_meta] {
+        return _load(use_page_cache, kept_in_memory, index_meta);
+    });
+}
+
+Status BitmapIndexReader::_load(bool use_page_cache, bool kept_in_memory,
+                                const BitmapIndexPB* index_meta) {
+    const IndexedColumnMetaPB& dict_meta = index_meta->dict_column();
+    const IndexedColumnMetaPB& bitmap_meta = index_meta->bitmap_column();
+    _has_null = index_meta->has_null();
 
     _dict_column_reader.reset(new IndexedColumnReader(_file_reader, 
dict_meta));
     _bitmap_column_reader.reset(new IndexedColumnReader(_file_reader, 
bitmap_meta));
diff --git a/be/src/olap/rowset/segment_v2/bitmap_index_reader.h 
b/be/src/olap/rowset/segment_v2/bitmap_index_reader.h
index c448c9f5cc..1ac1643989 100644
--- a/be/src/olap/rowset/segment_v2/bitmap_index_reader.h
+++ b/be/src/olap/rowset/segment_v2/bitmap_index_reader.h
@@ -28,6 +28,7 @@
 #include "olap/rowset/segment_v2/common.h"
 #include "olap/rowset/segment_v2/indexed_column_reader.h"
 #include "olap/types.h"
+#include "util/once.h"
 
 namespace roaring {
 class Roaring;
@@ -42,13 +43,11 @@ class BitmapIndexPB;
 
 class BitmapIndexReader {
 public:
-    explicit BitmapIndexReader(io::FileReaderSPtr file_reader,
-                               const BitmapIndexPB* bitmap_index_meta)
+    explicit BitmapIndexReader(io::FileReaderSPtr file_reader)
             : _file_reader(std::move(file_reader)),
-              
_type_info(get_scalar_type_info<FieldType::OLAP_FIELD_TYPE_VARCHAR>()),
-              _bitmap_index_meta(bitmap_index_meta) {}
+              
_type_info(get_scalar_type_info<FieldType::OLAP_FIELD_TYPE_VARCHAR>()) {}
 
-    Status load(bool use_page_cache, bool kept_in_memory);
+    Status load(bool use_page_cache, bool kept_in_memory, const 
BitmapIndexPB*);
 
     // create a new column iterator. Client should delete returned iterator
     Status new_iterator(BitmapIndexIterator** iterator);
@@ -57,13 +56,16 @@ public:
 
     const TypeInfo* type_info() { return _type_info; }
 
+private:
+    Status _load(bool use_page_cache, bool kept_in_memory, const 
BitmapIndexPB*);
+
 private:
     friend class BitmapIndexIterator;
 
     io::FileReaderSPtr _file_reader;
     const TypeInfo* _type_info;
-    const BitmapIndexPB* _bitmap_index_meta;
     bool _has_null = false;
+    DorisCallOnce<Status> _load_once;
     std::unique_ptr<IndexedColumnReader> _dict_column_reader;
     std::unique_ptr<IndexedColumnReader> _bitmap_column_reader;
 };
diff --git a/be/src/olap/rowset/segment_v2/bloom_filter_index_reader.cpp 
b/be/src/olap/rowset/segment_v2/bloom_filter_index_reader.cpp
index e3ae352dd7..dd663b0175 100644
--- a/be/src/olap/rowset/segment_v2/bloom_filter_index_reader.cpp
+++ b/be/src/olap/rowset/segment_v2/bloom_filter_index_reader.cpp
@@ -31,6 +31,13 @@ namespace doris {
 namespace segment_v2 {
 
 Status BloomFilterIndexReader::load(bool use_page_cache, bool kept_in_memory) {
+    // TODO yyq: implement a new once flag to avoid status construct.
+    return _load_once.call([this, use_page_cache, kept_in_memory] {
+        return _load(use_page_cache, kept_in_memory);
+    });
+}
+
+Status BloomFilterIndexReader::_load(bool use_page_cache, bool kept_in_memory) 
{
     const IndexedColumnMetaPB& bf_index_meta = 
_bloom_filter_index_meta->bloom_filter();
 
     _bloom_filter_reader.reset(new IndexedColumnReader(_file_reader, 
bf_index_meta));
diff --git a/be/src/olap/rowset/segment_v2/bloom_filter_index_reader.h 
b/be/src/olap/rowset/segment_v2/bloom_filter_index_reader.h
index 452a7ea2ae..dc45e4f692 100644
--- a/be/src/olap/rowset/segment_v2/bloom_filter_index_reader.h
+++ b/be/src/olap/rowset/segment_v2/bloom_filter_index_reader.h
@@ -28,6 +28,7 @@
 #include "olap/rowset/segment_v2/common.h"
 #include "olap/rowset/segment_v2/indexed_column_reader.h"
 #include "olap/types.h"
+#include "util/once.h"
 
 namespace doris {
 
@@ -52,10 +53,14 @@ public:
 
     const TypeInfo* type_info() const { return _type_info; }
 
+private:
+    Status _load(bool use_page_cache, bool kept_in_memory);
+
 private:
     friend class BloomFilterIndexIterator;
 
     io::FileReaderSPtr _file_reader;
+    DorisCallOnce<Status> _load_once;
     const TypeInfo* _type_info;
     const BloomFilterIndexPB* _bloom_filter_index_meta;
     std::unique_ptr<IndexedColumnReader> _bloom_filter_reader;
diff --git a/be/src/olap/rowset/segment_v2/column_reader.cpp 
b/be/src/olap/rowset/segment_v2/column_reader.cpp
index dcd95f28cd..36b931d1fe 100644
--- a/be/src/olap/rowset/segment_v2/column_reader.cpp
+++ b/be/src/olap/rowset/segment_v2/column_reader.cpp
@@ -207,16 +207,15 @@ Status ColumnReader::init(const ColumnMetaPB* meta) {
         switch (index_meta.type()) {
         case ORDINAL_INDEX:
             _ordinal_index_meta = &index_meta.ordinal_index();
-            _ordinal_index.reset(
-                    new OrdinalIndexReader(_file_reader, _ordinal_index_meta, 
_num_rows));
+            _ordinal_index.reset(new OrdinalIndexReader(_file_reader, 
_num_rows));
             break;
         case ZONE_MAP_INDEX:
             _zone_map_index_meta = &index_meta.zone_map_index();
-            _zone_map_index.reset(new ZoneMapIndexReader(_file_reader, 
_zone_map_index_meta));
+            _zone_map_index.reset(new ZoneMapIndexReader(_file_reader));
             break;
         case BITMAP_INDEX:
             _bitmap_index_meta = &index_meta.bitmap_index();
-            _bitmap_index.reset(new BitmapIndexReader(_file_reader, 
_bitmap_index_meta));
+            _bitmap_index.reset(new BitmapIndexReader(_file_reader));
             break;
         case BLOOM_FILTER_INDEX:
             _bf_index_meta = &index_meta.bloom_filter_index();
@@ -473,25 +472,19 @@ Status ColumnReader::get_row_ranges_by_bloom_filter(const 
AndBlockColumnPredicat
 
 Status ColumnReader::_load_ordinal_index(bool use_page_cache, bool 
kept_in_memory) {
     DCHECK(_ordinal_index_meta != nullptr);
-    return _load_ordinal_index_once.call([this, use_page_cache, 
kept_in_memory] {
-        return _ordinal_index->load(use_page_cache, kept_in_memory);
-    });
+    return _ordinal_index->load(use_page_cache, kept_in_memory, 
_ordinal_index_meta);
 }
 
 Status ColumnReader::_load_zone_map_index(bool use_page_cache, bool 
kept_in_memory) {
     if (_zone_map_index_meta != nullptr) {
-        return _load_zone_map_index_once.call([this, use_page_cache, 
kept_in_memory] {
-            return _zone_map_index->load(use_page_cache, kept_in_memory);
-        });
+        return _zone_map_index->load(use_page_cache, kept_in_memory, 
_zone_map_index_meta);
     }
     return Status::OK();
 }
 
 Status ColumnReader::_load_bitmap_index(bool use_page_cache, bool 
kept_in_memory) {
     if (_bitmap_index_meta != nullptr) {
-        return _load_bitmap_index_once.call([this, use_page_cache, 
kept_in_memory] {
-            return _bitmap_index->load(use_page_cache, kept_in_memory);
-        });
+        return _bitmap_index->load(use_page_cache, kept_in_memory, 
_bitmap_index_meta);
     }
     return Status::OK();
 }
@@ -534,9 +527,7 @@ Status ColumnReader::_load_inverted_index_index(const 
TabletIndex* index_meta) {
 
 Status ColumnReader::_load_bloom_filter_index(bool use_page_cache, bool 
kept_in_memory) {
     if (_bf_index_meta != nullptr) {
-        return _load_bloom_filter_index_once.call([this, use_page_cache, 
kept_in_memory] {
-            return _bloom_filter_index->load(use_page_cache, kept_in_memory);
-        });
+        return _bloom_filter_index->load(use_page_cache, kept_in_memory);
     }
     return Status::OK();
 }
diff --git a/be/src/olap/rowset/segment_v2/column_reader.h 
b/be/src/olap/rowset/segment_v2/column_reader.h
index 53a50a1b4d..52b6092f92 100644
--- a/be/src/olap/rowset/segment_v2/column_reader.h
+++ b/be/src/olap/rowset/segment_v2/column_reader.h
@@ -253,15 +253,9 @@ private:
     std::unique_ptr<BitmapIndexReader> _bitmap_index;
     std::shared_ptr<InvertedIndexReader> _inverted_index;
     std::unique_ptr<BloomFilterIndexReader> _bloom_filter_index;
-    DorisCallOnce<Status> _load_zone_map_index_once;
-    DorisCallOnce<Status> _load_ordinal_index_once;
-    DorisCallOnce<Status> _load_bitmap_index_once;
-    DorisCallOnce<Status> _load_bloom_filter_index_once;
-    DorisCallOnce<Status> _load_inverted_index_once;
 
     std::vector<std::unique_ptr<ColumnReader>> _sub_readers;
 
-    std::once_flag _set_dict_encoding_type_flag;
     DorisCallOnce<Status> _set_dict_encoding_type_once;
 };
 
diff --git a/be/src/olap/rowset/segment_v2/ordinal_page_index.cpp 
b/be/src/olap/rowset/segment_v2/ordinal_page_index.cpp
index d977e29f11..d3d6d9cb9c 100644
--- a/be/src/olap/rowset/segment_v2/ordinal_page_index.cpp
+++ b/be/src/olap/rowset/segment_v2/ordinal_page_index.cpp
@@ -67,19 +67,28 @@ Status OrdinalIndexWriter::finish(io::FileWriter* 
file_writer, ColumnIndexMetaPB
     return Status::OK();
 }
 
-Status OrdinalIndexReader::load(bool use_page_cache, bool kept_in_memory) {
-    if (_index_meta->root_page().is_root_data_page()) {
+Status OrdinalIndexReader::load(bool use_page_cache, bool kept_in_memory,
+                                const OrdinalIndexPB* index_meta) {
+    // TODO yyq: implement a new once flag to avoid status construct.
+    return _load_once.call([this, use_page_cache, kept_in_memory, index_meta] {
+        return _load(use_page_cache, kept_in_memory, index_meta);
+    });
+}
+
+Status OrdinalIndexReader::_load(bool use_page_cache, bool kept_in_memory,
+                                 const OrdinalIndexPB* index_meta) {
+    if (index_meta->root_page().is_root_data_page()) {
         // only one data page, no index page
         _num_pages = 1;
         _ordinals.push_back(0);
         _ordinals.push_back(_num_values);
-        _pages.emplace_back(_index_meta->root_page().root_page());
+        _pages.emplace_back(index_meta->root_page().root_page());
         return Status::OK();
     }
     // need to read index page
     PageReadOptions opts;
     opts.file_reader = _file_reader.get();
-    opts.page_pointer = PagePointer(_index_meta->root_page().root_page());
+    opts.page_pointer = PagePointer(index_meta->root_page().root_page());
     opts.codec = nullptr; // ordinal index page uses NO_COMPRESSION right now
     OlapReaderStatistics tmp_stats;
     opts.stats = &tmp_stats;
diff --git a/be/src/olap/rowset/segment_v2/ordinal_page_index.h 
b/be/src/olap/rowset/segment_v2/ordinal_page_index.h
index 17dba9e675..84a25c78a7 100644
--- a/be/src/olap/rowset/segment_v2/ordinal_page_index.h
+++ b/be/src/olap/rowset/segment_v2/ordinal_page_index.h
@@ -30,6 +30,7 @@
 #include "olap/rowset/segment_v2/common.h"
 #include "olap/rowset/segment_v2/index_page.h"
 #include "olap/rowset/segment_v2/page_pointer.h"
+#include "util/once.h"
 
 namespace doris {
 
@@ -65,14 +66,11 @@ class OrdinalPageIndexIterator;
 
 class OrdinalIndexReader {
 public:
-    explicit OrdinalIndexReader(io::FileReaderSPtr file_reader, const 
OrdinalIndexPB* index_meta,
-                                ordinal_t num_values)
-            : _file_reader(std::move(file_reader)),
-              _index_meta(index_meta),
-              _num_values(num_values) {}
+    explicit OrdinalIndexReader(io::FileReaderSPtr file_reader, ordinal_t 
num_values)
+            : _file_reader(std::move(file_reader)), _num_values(num_values) {}
 
     // load and parse the index page into memory
-    Status load(bool use_page_cache, bool kept_in_memory);
+    Status load(bool use_page_cache, bool kept_in_memory, const 
OrdinalIndexPB* index_meta);
 
     // the returned iter points to the largest element which is less than 
`ordinal`,
     // or points to the first element if all elements are greater than 
`ordinal`,
@@ -89,11 +87,15 @@ public:
     // for test
     int32_t num_data_pages() const { return _num_pages; }
 
+private:
+    Status _load(bool use_page_cache, bool kept_in_memory, const 
OrdinalIndexPB* index_meta);
+
 private:
     friend OrdinalPageIndexIterator;
 
     io::FileReaderSPtr _file_reader;
-    const OrdinalIndexPB* _index_meta;
+    DorisCallOnce<Status> _load_once;
+
     // total number of values (including NULLs) in the indexed column,
     // equals to 1 + 'last ordinal of last data pages'
     ordinal_t _num_values;
diff --git a/be/src/olap/rowset/segment_v2/zone_map_index.cpp 
b/be/src/olap/rowset/segment_v2/zone_map_index.cpp
index 9a4ec628c2..4306224c13 100644
--- a/be/src/olap/rowset/segment_v2/zone_map_index.cpp
+++ b/be/src/olap/rowset/segment_v2/zone_map_index.cpp
@@ -145,8 +145,17 @@ Status 
TypedZoneMapIndexWriter<Type>::finish(io::FileWriter* file_writer,
     return writer.finish(meta->mutable_page_zone_maps());
 }
 
-Status ZoneMapIndexReader::load(bool use_page_cache, bool kept_in_memory) {
-    IndexedColumnReader reader(_file_reader, _index_meta->page_zone_maps());
+Status ZoneMapIndexReader::load(bool use_page_cache, bool kept_in_memory,
+                                const ZoneMapIndexPB* index_meta) {
+    // TODO yyq: implement a new once flag to avoid status construct.
+    return _load_once.call([this, use_page_cache, kept_in_memory, index_meta] {
+        return _load(use_page_cache, kept_in_memory, index_meta);
+    });
+}
+
+Status ZoneMapIndexReader::_load(bool use_page_cache, bool kept_in_memory,
+                                 const ZoneMapIndexPB* index_meta) {
+    IndexedColumnReader reader(_file_reader, index_meta->page_zone_maps());
     RETURN_IF_ERROR(reader.load(use_page_cache, kept_in_memory));
     IndexedColumnIterator iter(&reader);
 
diff --git a/be/src/olap/rowset/segment_v2/zone_map_index.h 
b/be/src/olap/rowset/segment_v2/zone_map_index.h
index ed3418dc48..b6a6ae9075 100644
--- a/be/src/olap/rowset/segment_v2/zone_map_index.h
+++ b/be/src/olap/rowset/segment_v2/zone_map_index.h
@@ -30,6 +30,7 @@
 #include "io/fs/file_reader_writer_fwd.h"
 #include "olap/field.h"
 #include "runtime/define_primitive_type.h"
+#include "util/once.h"
 #include "vec/common/arena.h"
 
 namespace doris {
@@ -146,20 +147,23 @@ private:
 
 class ZoneMapIndexReader {
 public:
-    explicit ZoneMapIndexReader(io::FileReaderSPtr file_reader, const 
ZoneMapIndexPB* index_meta)
-            : _file_reader(std::move(file_reader)), _index_meta(index_meta) {}
+    explicit ZoneMapIndexReader(io::FileReaderSPtr file_reader)
+            : _file_reader(std::move(file_reader)) {}
 
     // load all page zone maps into memory
-    Status load(bool use_page_cache, bool kept_in_memory);
+    Status load(bool use_page_cache, bool kept_in_memory, const 
ZoneMapIndexPB*);
 
     const std::vector<ZoneMapPB>& page_zone_maps() const { return 
_page_zone_maps; }
 
     int32_t num_pages() const { return _page_zone_maps.size(); }
 
 private:
-    io::FileReaderSPtr _file_reader;
-    const ZoneMapIndexPB* _index_meta;
+    Status _load(bool use_page_cache, bool kept_in_memory, const 
ZoneMapIndexPB*);
 
+private:
+    DorisCallOnce<Status> _load_once;
+    // TODO: yyq, we shoud remove file_reader from here.
+    io::FileReaderSPtr _file_reader;
     std::vector<ZoneMapPB> _page_zone_maps;
 };
 
diff --git a/be/test/olap/rowset/segment_v2/bitmap_index_test.cpp 
b/be/test/olap/rowset/segment_v2/bitmap_index_test.cpp
index 2d79776c3b..2e803e4ff1 100644
--- a/be/test/olap/rowset/segment_v2/bitmap_index_test.cpp
+++ b/be/test/olap/rowset/segment_v2/bitmap_index_test.cpp
@@ -80,8 +80,8 @@ void get_bitmap_reader_iter(const std::string& file_name, 
const ColumnIndexMetaP
                             BitmapIndexReader** reader, BitmapIndexIterator** 
iter) {
     io::FileReaderSPtr file_reader;
     ASSERT_EQ(io::global_local_filesystem()->open_file(file_name, 
&file_reader), Status::OK());
-    *reader = new BitmapIndexReader(std::move(file_reader), 
&meta.bitmap_index());
-    auto st = (*reader)->load(true, false);
+    *reader = new BitmapIndexReader(std::move(file_reader));
+    auto st = (*reader)->load(true, false, &meta.bitmap_index());
     EXPECT_TRUE(st.ok());
 
     st = (*reader)->new_iterator(iter);
diff --git a/be/test/olap/rowset/segment_v2/ordinal_page_index_test.cpp 
b/be/test/olap/rowset/segment_v2/ordinal_page_index_test.cpp
index d10c1dde83..a5024f4147 100644
--- a/be/test/olap/rowset/segment_v2/ordinal_page_index_test.cpp
+++ b/be/test/olap/rowset/segment_v2/ordinal_page_index_test.cpp
@@ -70,8 +70,8 @@ TEST_F(OrdinalPageIndexTest, normal) {
 
     io::FileReaderSPtr file_reader;
     EXPECT_TRUE(fs->open_file(filename, &file_reader).ok());
-    OrdinalIndexReader index(file_reader, &index_meta.ordinal_index(), 16 * 
1024 * 4096 + 1);
-    EXPECT_TRUE(index.load(true, false).ok());
+    OrdinalIndexReader index(file_reader, 16 * 1024 * 4096 + 1);
+    EXPECT_TRUE(index.load(true, false, &index_meta.ordinal_index()).ok());
     EXPECT_EQ(16 * 1024, index.num_data_pages());
     EXPECT_EQ(1, index.get_first_ordinal(0));
     EXPECT_EQ(4096, index.get_last_ordinal(0));
@@ -124,8 +124,8 @@ TEST_F(OrdinalPageIndexTest, one_data_page) {
         EXPECT_EQ(data_page_pointer, root_page_pointer);
     }
 
-    OrdinalIndexReader index(nullptr, &index_meta.ordinal_index(), num_values);
-    EXPECT_TRUE(index.load(true, false).ok());
+    OrdinalIndexReader index(nullptr, num_values);
+    EXPECT_TRUE(index.load(true, false, &index_meta.ordinal_index()).ok());
     EXPECT_EQ(1, index.num_data_pages());
     EXPECT_EQ(0, index.get_first_ordinal(0));
     EXPECT_EQ(num_values - 1, index.get_last_ordinal(0));
diff --git a/be/test/olap/rowset/segment_v2/zone_map_index_test.cpp 
b/be/test/olap/rowset/segment_v2/zone_map_index_test.cpp
index 1d9345f908..22b69c5cae 100644
--- a/be/test/olap/rowset/segment_v2/zone_map_index_test.cpp
+++ b/be/test/olap/rowset/segment_v2/zone_map_index_test.cpp
@@ -81,8 +81,8 @@ public:
 
         io::FileReaderSPtr file_reader;
         EXPECT_TRUE(fs->open_file(filename, &file_reader).ok());
-        ZoneMapIndexReader column_zone_map(file_reader, 
&index_meta.zone_map_index());
-        Status status = column_zone_map.load(true, false);
+        ZoneMapIndexReader column_zone_map(file_reader);
+        Status status = column_zone_map.load(true, false, 
&index_meta.zone_map_index());
         EXPECT_TRUE(status.ok());
         EXPECT_EQ(3, column_zone_map.num_pages());
         const std::vector<ZoneMapPB>& zone_maps = 
column_zone_map.page_zone_maps();
@@ -128,8 +128,8 @@ public:
 
         io::FileReaderSPtr file_reader;
         EXPECT_TRUE(fs->open_file(filename, &file_reader).ok());
-        ZoneMapIndexReader column_zone_map(file_reader, 
&index_meta.zone_map_index());
-        Status status = column_zone_map.load(true, false);
+        ZoneMapIndexReader column_zone_map(file_reader);
+        Status status = column_zone_map.load(true, false, 
&index_meta.zone_map_index());
         EXPECT_TRUE(status.ok());
         EXPECT_EQ(1, column_zone_map.num_pages());
         const std::vector<ZoneMapPB>& zone_maps = 
column_zone_map.page_zone_maps();
@@ -181,8 +181,8 @@ TEST_F(ColumnZoneMapTest, NormalTestIntPage) {
 
     io::FileReaderSPtr file_reader;
     EXPECT_TRUE(fs->open_file(filename, &file_reader).ok());
-    ZoneMapIndexReader column_zone_map(file_reader, 
&index_meta.zone_map_index());
-    Status status = column_zone_map.load(true, false);
+    ZoneMapIndexReader column_zone_map(file_reader);
+    Status status = column_zone_map.load(true, false, 
&index_meta.zone_map_index());
     EXPECT_TRUE(status.ok());
     EXPECT_EQ(3, column_zone_map.num_pages());
     const std::vector<ZoneMapPB>& zone_maps = column_zone_map.page_zone_maps();


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to