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

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

commit c7cf6a7a91bbce5ba2008c77adecba4122194381
Author: lihangyu <[email protected]>
AuthorDate: Tue Oct 10 20:27:15 2023 +0800

    [fix](stack trace) Optimize stack trace output (#24933)
    
    Status prints the stack trace, the first four frame pointers are removed, 
it doesn't make sense.
    Optimize stack trace field order.
    example:
    
      0#  doris::PlanFragmentExecutor::cancel(doris::PPlanFragmentCancelReason 
const&, std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&) at doris/core/be/src/common/status.h:0
      1#  doris::FragmentMgr::cancel_query_unlocked(doris::TUniqueId const&, 
doris::PPlanFragmentCancelReason const&, std::unique_lock<std::mutex> const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) at doris/cor
    e/be/src/runtime/fragment_mgr.cpp:984
      2#  doris::FragmentMgr::cancel_query(doris::TUniqueId const&, 
doris::PPlanFragmentCancelReason const&, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) at 
doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/
    ../../../../include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:778
      3#  long 
doris::MemTrackerLimiter::free_top_memory_query<doris::MemTrackerLimiter::TrackerLimiterGroup>(long,
 doris::MemTrackerLimiter::Type, 
std::vector<doris::MemTrackerLimiter::TrackerLimiterGroup, 
std::allocator<doris::MemTrackerLimiter::TrackerLimiterGroup> >&, s
    td::function<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > (long, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&)> const&, 
doris::RuntimeProfile*) at doris/ldb_toolchain/bin/../
    
lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187
      4#  doris::MemTrackerLimiter::free_top_memory_query(long, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&, std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&, doris::RuntimeProfile*, doris::Mem
    TrackerLimiter::Type) at 
doris/core/be/src/runtime/memory/mem_tracker_limiter.cpp:362
      5#  doris::MemInfo::process_full_gc() at 
doris/core/be/src/util/mem_info.cpp:198
      6#  doris::Daemon::memory_gc_thread() at 
doris/core/be/src/common/daemon.cpp:0
      7#  doris::Thread::supervise_thread(void*) at 
doris/ldb_toolchain/bin/../usr/include/pthread.h:562
      8#  start_thread
      9#  __clone
---
 be/src/vec/columns/column.h                     |  5 -----
 be/src/vec/columns/column_array.h               |  1 -
 be/src/vec/columns/column_complex.h             |  4 ----
 be/src/vec/columns/column_const.h               |  2 --
 be/src/vec/columns/column_decimal.h             |  2 --
 be/src/vec/columns/column_dictionary.h          |  4 ----
 be/src/vec/columns/column_fixed_length_object.h |  2 --
 be/src/vec/columns/column_map.h                 |  1 -
 be/src/vec/columns/column_nullable.h            |  2 --
 be/src/vec/columns/column_object.cpp            | 17 ++---------------
 be/src/vec/columns/column_object.h              |  2 --
 be/src/vec/columns/column_string.h              |  2 --
 be/src/vec/columns/column_struct.h              |  1 -
 be/src/vec/columns/column_vector.h              |  1 -
 be/src/vec/columns/predicate_column.h           |  4 ----
 15 files changed, 2 insertions(+), 48 deletions(-)

diff --git a/be/src/vec/columns/column.h b/be/src/vec/columns/column.h
index 23469e7e694..df4c66fa14c 100644
--- a/be/src/vec/columns/column.h
+++ b/be/src/vec/columns/column.h
@@ -149,11 +149,6 @@ public:
     virtual void set_rowset_segment_id(std::pair<RowsetId, uint32_t> 
rowset_segment_id) {}
 
     virtual std::pair<RowsetId, uint32_t> get_rowset_segment_id() const { 
return {}; }
-    // todo(Amory) from column to get data type is not correct ,column is 
memory data,can not to assume memory data belong to which data type
-    virtual TypeIndex get_data_type() const {
-        LOG(FATAL) << "Cannot get_data_type() column " << get_name();
-        __builtin_unreachable();
-    }
 
     /// Returns number of values in column.
     virtual size_t size() const = 0;
diff --git a/be/src/vec/columns/column_array.h 
b/be/src/vec/columns/column_array.h
index 6f317f5380a..68075d9f507 100644
--- a/be/src/vec/columns/column_array.h
+++ b/be/src/vec/columns/column_array.h
@@ -127,7 +127,6 @@ public:
     const char* get_family_name() const override { return "Array"; }
     bool is_column_array() const override { return true; }
     bool can_be_inside_nullable() const override { return true; }
-    TypeIndex get_data_type() const override { return TypeIndex::Array; }
     MutableColumnPtr clone_resized(size_t size) const override;
     size_t size() const override;
     void resize(size_t n) override;
diff --git a/be/src/vec/columns/column_complex.h 
b/be/src/vec/columns/column_complex.h
index 81cd6a45cb7..e63db5cb06f 100644
--- a/be/src/vec/columns/column_complex.h
+++ b/be/src/vec/columns/column_complex.h
@@ -127,10 +127,6 @@ public:
         LOG(FATAL) << "get_permutation not implemented";
     }
 
-    [[noreturn]] TypeIndex get_data_type() const override {
-        LOG(FATAL) << "ColumnComplexType get_data_type not implemeted";
-    }
-
     void get_indices_of_non_default_rows(IColumn::Offsets64& indices, size_t 
from,
                                          size_t limit) const override {
         LOG(FATAL) << "get_indices_of_non_default_rows not implemented";
diff --git a/be/src/vec/columns/column_const.h 
b/be/src/vec/columns/column_const.h
index e06902972ab..a3b9cd4de58 100644
--- a/be/src/vec/columns/column_const.h
+++ b/be/src/vec/columns/column_const.h
@@ -95,8 +95,6 @@ public:
 
     StringRef get_data_at(size_t) const override { return 
data->get_data_at(0); }
 
-    TypeIndex get_data_type() const override { return data->get_data_type(); }
-
     UInt64 get64(size_t) const override { return data->get64(0); }
 
     UInt64 get_uint(size_t) const override { return data->get_uint(0); }
diff --git a/be/src/vec/columns/column_decimal.h 
b/be/src/vec/columns/column_decimal.h
index d6c06b3603a..8a90e826cba 100644
--- a/be/src/vec/columns/column_decimal.h
+++ b/be/src/vec/columns/column_decimal.h
@@ -232,8 +232,6 @@ public:
 
     void replicate(const uint32_t* indexs, size_t target_size, IColumn& 
column) const override;
 
-    TypeIndex get_data_type() const override { return TypeId<T>::value; }
-
     void get_extremes(Field& min, Field& max) const override;
 
     MutableColumns scatter(IColumn::ColumnIndex num_columns,
diff --git a/be/src/vec/columns/column_dictionary.h 
b/be/src/vec/columns/column_dictionary.h
index b6db5af7e9e..46b49347229 100644
--- a/be/src/vec/columns/column_dictionary.h
+++ b/be/src/vec/columns/column_dictionary.h
@@ -114,10 +114,6 @@ public:
 
     void reserve(size_t n) override { _codes.reserve(n); }
 
-    [[noreturn]] TypeIndex get_data_type() const override {
-        LOG(FATAL) << "ColumnDictionary get_data_type not implemeted";
-    }
-
     const char* get_family_name() const override { return "ColumnDictionary"; }
 
     [[noreturn]] MutableColumnPtr clone_resized(size_t size) const override {
diff --git a/be/src/vec/columns/column_fixed_length_object.h 
b/be/src/vec/columns/column_fixed_length_object.h
index 4f83e4308c8..323fabd6256 100644
--- a/be/src/vec/columns/column_fixed_length_object.h
+++ b/be/src/vec/columns/column_fixed_length_object.h
@@ -200,8 +200,6 @@ public:
         LOG(FATAL) << "not support";
     }
 
-    TypeIndex get_data_type() const override { LOG(FATAL) << "get_data_type 
not supported"; }
-
     ColumnPtr index(const IColumn& indexes, size_t limit) const override {
         LOG(FATAL) << "index not supported";
     }
diff --git a/be/src/vec/columns/column_map.h b/be/src/vec/columns/column_map.h
index c4edec97161..0c09f0a9dae 100644
--- a/be/src/vec/columns/column_map.h
+++ b/be/src/vec/columns/column_map.h
@@ -77,7 +77,6 @@ public:
 
     std::string get_name() const override;
     const char* get_family_name() const override { return "Map"; }
-    TypeIndex get_data_type() const override { return TypeIndex::Map; }
 
     void for_each_subcolumn(ColumnCallback callback) override {
         callback(keys_column);
diff --git a/be/src/vec/columns/column_nullable.h 
b/be/src/vec/columns/column_nullable.h
index 261eea0f61a..465e7dc2d96 100644
--- a/be/src/vec/columns/column_nullable.h
+++ b/be/src/vec/columns/column_nullable.h
@@ -115,8 +115,6 @@ public:
     UInt64 get64(size_t n) const override { return nested_column->get64(n); }
     StringRef get_data_at(size_t n) const override;
 
-    TypeIndex get_data_type() const override { return TypeIndex::Nullable; }
-
     /// Will insert null value if pos=nullptr
     void insert_data(const char* pos, size_t length) override;
 
diff --git a/be/src/vec/columns/column_object.cpp 
b/be/src/vec/columns/column_object.cpp
index 050939f8fa0..dd2364883cb 100644
--- a/be/src/vec/columns/column_object.cpp
+++ b/be/src/vec/columns/column_object.cpp
@@ -84,21 +84,8 @@ size_t getNumberOfDimensions(const IDataType& type) {
 }
 
 DataTypePtr get_data_type_by_column(const IColumn& column) {
-    auto idx = column.get_data_type();
-    if (WhichDataType(idx).is_simple()) {
-        return DataTypeFactory::instance().create_data_type(idx);
-    }
-    if (WhichDataType(idx).is_nothing()) {
-        return std::make_shared<DataTypeNothing>();
-    }
-    if (const auto* column_array = check_and_get_column<ColumnArray>(&column)) 
{
-        return 
std::make_shared<DataTypeArray>(get_data_type_by_column(column_array->get_data()));
-    }
-    if (const auto* column_nullable = 
check_and_get_column<ColumnNullable>(&column)) {
-        return 
make_nullable(get_data_type_by_column(column_nullable->get_nested_column()));
-    }
-    // TODO add more types
-    assert(false);
+    // Removed in the future PR
+    // assert(false);
     return nullptr;
 }
 
diff --git a/be/src/vec/columns/column_object.h 
b/be/src/vec/columns/column_object.h
index 4febce3b52d..46330b69d43 100644
--- a/be/src/vec/columns/column_object.h
+++ b/be/src/vec/columns/column_object.h
@@ -266,8 +266,6 @@ public:
     /// Part of interface
     const char* get_family_name() const override { return "Variant"; }
 
-    TypeIndex get_data_type() const override { return TypeIndex::VARIANT; }
-
     size_t size() const override;
 
     MutableColumnPtr clone_resized(size_t new_size) const override;
diff --git a/be/src/vec/columns/column_string.h 
b/be/src/vec/columns/column_string.h
index 26a7093140b..941ec573759 100644
--- a/be/src/vec/columns/column_string.h
+++ b/be/src/vec/columns/column_string.h
@@ -592,8 +592,6 @@ public:
         return shrinked_column;
     }
 
-    TypeIndex get_data_type() const override { return TypeIndex::String; }
-
     void get_indices_of_non_default_rows(Offsets64& indices, size_t from,
                                          size_t limit) const override {
         return get_indices_of_non_default_rows_impl<ColumnString>(indices, 
from, limit);
diff --git a/be/src/vec/columns/column_struct.h 
b/be/src/vec/columns/column_struct.h
index ba9c222b6a8..9d219c3c989 100644
--- a/be/src/vec/columns/column_struct.h
+++ b/be/src/vec/columns/column_struct.h
@@ -83,7 +83,6 @@ public:
 
     std::string get_name() const override;
     const char* get_family_name() const override { return "Struct"; }
-    TypeIndex get_data_type() const override { return TypeIndex::Struct; }
     bool can_be_inside_nullable() const override { return true; }
     MutableColumnPtr clone_empty() const override;
     MutableColumnPtr clone_resized(size_t size) const override;
diff --git a/be/src/vec/columns/column_vector.h 
b/be/src/vec/columns/column_vector.h
index fc4015e55b4..edb27695c07 100644
--- a/be/src/vec/columns/column_vector.h
+++ b/be/src/vec/columns/column_vector.h
@@ -470,7 +470,6 @@ public:
     void compare_internal(size_t rhs_row_id, const IColumn& rhs, int 
nan_direction_hint,
                           int direction, std::vector<uint8>& cmp_res,
                           uint8* __restrict filter) const override;
-    TypeIndex get_data_type() const override { return TypeId<T>::value; }
     void get_indices_of_non_default_rows(IColumn::Offsets64& indices, size_t 
from,
                                          size_t limit) const override {
         return this->template 
get_indices_of_non_default_rows_impl<Self>(indices, from, limit);
diff --git a/be/src/vec/columns/predicate_column.h 
b/be/src/vec/columns/predicate_column.h
index 655ef6d0e58..e174e3542bd 100644
--- a/be/src/vec/columns/predicate_column.h
+++ b/be/src/vec/columns/predicate_column.h
@@ -472,10 +472,6 @@ public:
         LOG(FATAL) << "append_data_by_selector is not supported in 
PredicateColumnType!";
     }
 
-    [[noreturn]] TypeIndex get_data_type() const override {
-        LOG(FATAL) << "PredicateColumnType get_data_type not implemeted";
-    }
-
     Status filter_by_selector(const uint16_t* sel, size_t sel_size, IColumn* 
col_ptr) override {
         if constexpr (std::is_same_v<T, StringRef>) {
             insert_string_to_res_column(sel, sel_size,


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

Reply via email to