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

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


The following commit(s) were added to refs/heads/branch-4.1 by this push:
     new b10073ad9ca [branch-4.1] Fix meta tool build (#63371)
b10073ad9ca is described below

commit b10073ad9ca17cd5685c4dd3b3ef650f256376d0
Author: Gavin Chou <[email protected]>
AuthorDate: Tue May 19 13:38:55 2026 +0800

    [branch-4.1] Fix meta tool build (#63371)
    
    ## Proposed changes
    
    Fix meta_tool build on branch-4.1 by:
    
    - adding the repository root include path for meta_tool so
    common/cpp/private_member_accessor.hpp can be resolved
    - qualifying Doris types in meta_tool.cpp
    - fixing private member pointer access through ExecEnv*
    
    ## Testing
    
    - sh format_code.sh be/src/tools/meta_tool.cpp
    - sh build.sh --be --meta-tool -j100
    
    Co-authored-by: gavinchou <[email protected]>
---
 be/src/tools/CMakeLists.txt |  2 ++
 be/src/tools/meta_tool.cpp  | 21 +++++++++++----------
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/be/src/tools/CMakeLists.txt b/be/src/tools/CMakeLists.txt
index 1592108b7cf..3307e268af6 100644
--- a/be/src/tools/CMakeLists.txt
+++ b/be/src/tools/CMakeLists.txt
@@ -25,6 +25,8 @@ add_executable(meta_tool
     meta_tool.cpp
 )
 
+target_include_directories(meta_tool PRIVATE ${PROJECT_SOURCE_DIR}/..)
+
 pch_reuse(meta_tool)
 
 # This permits libraries loaded by dlopen to link to the symbols in the 
program.
diff --git a/be/src/tools/meta_tool.cpp b/be/src/tools/meta_tool.cpp
index 7857b3a5ad7..cf5c1b7a312 100644
--- a/be/src/tools/meta_tool.cpp
+++ b/be/src/tools/meta_tool.cpp
@@ -631,7 +631,7 @@ void print_column_data_values(const 
doris::segment_v2::ColumnMetaPB& column_meta
         return;
     }
 
-    MutableColumnPtr dst_column = data_type->create_column();
+    doris::MutableColumnPtr dst_column = data_type->create_column();
 
     // Determine how many rows to display (max 10 rows for readability)
     const size_t max_display_rows = 10;
@@ -658,11 +658,11 @@ void print_column_data_values(const 
doris::segment_v2::ColumnMetaPB& column_meta
     for (size_t i = 0; i < rows_read; ++i) {
         std::cout << indent << "  [" << i << "] ";
         if (column_meta.is_nullable()) {
-            const auto& nullable_col = assert_cast<const 
ColumnNullable&>(*dst_column);
+            const auto& nullable_col = assert_cast<const 
doris::ColumnNullable&>(*dst_column);
             if (nullable_col.is_null_at(i)) {
                 std::cout << "NULL";
             } else {
-                const IColumn& nested_col = nullable_col.get_nested_column();
+                const doris::IColumn& nested_col = 
nullable_col.get_nested_column();
                 std::cout << format_column_value(nested_col, i, field_type);
             }
         } else {
@@ -764,11 +764,12 @@ void print_column_meta(const 
doris::segment_v2::ColumnMetaPB& column_meta,
 }
 
 // Register hijacked accessors
-ACCESS_PRIVATE_FIELD(ExecEnv_encoding_info_resolver, ExecEnv,
+ACCESS_PRIVATE_FIELD(ExecEnv_encoding_info_resolver, doris::ExecEnv,
                      doris::segment_v2::EncodingInfoResolver*, 
_encoding_info_resolver);
-ACCESS_PRIVATE_FIELD(ExecEnv_orphan_mem_tracker, ExecEnv, 
std::shared_ptr<doris::MemTrackerLimiter>,
-                     _orphan_mem_tracker);
-ACCESS_PRIVATE_STATIC_FIELD(ExecEnv_tracking_memory, ExecEnv, 
std::atomic_bool, _s_tracking_memory);
+ACCESS_PRIVATE_FIELD(ExecEnv_orphan_mem_tracker, doris::ExecEnv,
+                     std::shared_ptr<doris::MemTrackerLimiter>, 
_orphan_mem_tracker);
+ACCESS_PRIVATE_STATIC_FIELD(ExecEnv_tracking_memory, doris::ExecEnv, 
std::atomic_bool,
+                            _s_tracking_memory);
 
 void show_segment_data(const std::string& file_name) {
     // Initialize ExecEnv components needed for ColumnReader
@@ -779,15 +780,15 @@ void show_segment_data(const std::string& file_name) {
     auto mem_tracker = GET_PRIVATE_FIELD(ExecEnv_orphan_mem_tracker);
     auto tracking_memory = GET_PRIVATE_STATIC_FIELD(ExecEnv_tracking_memory);
     // Initialize encoding info resolver for ColumnReader
-    if (exec_env.*resolver == nullptr) {
-        exec_env.*resolver = new doris::segment_v2::EncodingInfoResolver();
+    if ((*exec_env).*resolver == nullptr) {
+        (*exec_env).*resolver = new doris::segment_v2::EncodingInfoResolver();
     }
     // Initialize mem tracker limiter pool and orphan mem tracker for 
ThreadMemTrackerMgr
     if (exec_env->mem_tracker_limiter_pool.empty()) {
         exec_env->mem_tracker_limiter_pool.resize(doris::MEM_TRACKER_GROUP_NUM,
                                                   
doris::TrackerLimiterGroup());
         tracking_memory->store(true, std::memory_order_release);
-        exec_env.*mem_tracker = doris::MemTrackerLimiter::create_shared(
+        (*exec_env).*mem_tracker = doris::MemTrackerLimiter::create_shared(
                 doris::MemTrackerLimiter::Type::GLOBAL, "Orphan");
     }
 


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

Reply via email to