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

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 60de835d48536977e25c1841f4eed6abb0f2a311
Author: plat1ko <[email protected]>
AuthorDate: Wed Feb 28 21:30:03 2024 +0800

    [fix](meta-tool) Fix compile meta tool (#31457)
---
 be/src/tools/meta_tool.cpp | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/be/src/tools/meta_tool.cpp b/be/src/tools/meta_tool.cpp
index e4ac6493da9..076b4fae18b 100644
--- a/be/src/tools/meta_tool.cpp
+++ b/be/src/tools/meta_tool.cpp
@@ -38,6 +38,7 @@
 #include "olap/options.h"
 #include "olap/rowset/segment_v2/binary_plain_page.h"
 #include "olap/rowset/segment_v2/column_reader.h"
+#include "olap/storage_engine.h"
 #include "olap/tablet_meta.h"
 #include "olap/tablet_meta_manager.h"
 #include "olap/utils.h"
@@ -46,6 +47,7 @@
 
 using std::filesystem::path;
 using doris::DataDir;
+using doris::StorageEngine;
 using doris::OlapMeta;
 using doris::Status;
 using doris::TabletMeta;
@@ -140,7 +142,7 @@ void delete_meta(DataDir* data_dir) {
     std::cout << "delete meta successfully" << std::endl;
 }
 
-Status init_data_dir(const std::string& dir, std::unique_ptr<DataDir>* ret) {
+Status init_data_dir(StorageEngine& engine, const std::string& dir, 
std::unique_ptr<DataDir>* ret) {
     std::string root_path;
     RETURN_IF_ERROR(doris::io::global_local_filesystem()->canonicalize(dir, 
&root_path));
     doris::StorePath path;
@@ -150,8 +152,7 @@ Status init_data_dir(const std::string& dir, 
std::unique_ptr<DataDir>* ret) {
         return Status::InternalError("parse root path failed");
     }
 
-    std::unique_ptr<DataDir> p(
-            new (std::nothrow) DataDir(path.path, path.capacity_bytes, 
path.storage_medium));
+    auto p = std::make_unique<DataDir>(engine, path.path, path.capacity_bytes, 
path.storage_medium);
     if (p == nullptr) {
         std::cout << "new data dir failed" << std::endl;
         return Status::InternalError("new data dir failed");
@@ -177,6 +178,7 @@ void batch_delete_meta(const std::string& tablet_file) {
     int err_num = 0;
     int delete_num = 0;
     int total_num = 0;
+    StorageEngine engine(doris::EngineOptions {});
     std::unordered_map<std::string, std::unique_ptr<DataDir>> dir_map;
     while (std::getline(infile, line)) {
         total_num++;
@@ -198,7 +200,7 @@ void batch_delete_meta(const std::string& tablet_file) {
         if (dir_map.find(dir) == dir_map.end()) {
             // new data dir, init it
             std::unique_ptr<DataDir> data_dir_p;
-            Status st = init_data_dir(dir, &data_dir_p);
+            Status st = init_data_dir(engine, dir, &data_dir_p);
             if (!st.ok()) {
                 std::cout << "invalid root path:" << FLAGS_root_path
                           << ", error: " << st.to_string() << std::endl;
@@ -350,8 +352,9 @@ int main(int argc, char** argv) {
             return -1;
         }
 
+        StorageEngine engine(doris::EngineOptions {});
         std::unique_ptr<DataDir> data_dir;
-        Status st = init_data_dir(FLAGS_root_path, &data_dir);
+        Status st = init_data_dir(engine, FLAGS_root_path, &data_dir);
         if (!st.ok()) {
             std::cout << "invalid root path:" << FLAGS_root_path << ", error: 
" << st.to_string()
                       << std::endl;


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

Reply via email to