Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions be/src/tools/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
21 changes: 11 additions & 10 deletions be/src/tools/meta_tool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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 {
Expand Down Expand Up @@ -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
Expand All @@ -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");
}

Expand Down
Loading