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

lihaopeng 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 46575e59bac [Refactor](vec) Remove the unless api in IColumn (#44619)
46575e59bac is described below

commit 46575e59bac2c39088ecd925d1d20097d86667a3
Author: HappenLee <happen...@selectdb.com>
AuthorDate: Fri Nov 29 17:52:49 2024 +0800

    [Refactor](vec) Remove the unless api in IColumn (#44619)
    
    Remove the unless api in IColumn
---
 be/src/vec/columns/column.h                 | 12 +-----------
 be/src/vec/columns/column_complex.h         |  5 -----
 be/src/vec/columns/column_const.h           |  1 -
 be/src/vec/columns/column_decimal.h         |  3 ---
 be/src/vec/columns/column_nullable.h        |  3 ---
 be/src/vec/columns/column_vector.h          |  2 --
 be/src/vec/columns/predicate_column.h       |  2 --
 be/src/vec/data_types/data_type.h           |  1 +
 be/src/vec/functions/functions_comparison.h |  6 +++---
 9 files changed, 5 insertions(+), 30 deletions(-)

diff --git a/be/src/vec/columns/column.h b/be/src/vec/columns/column.h
index 593666568aa..24653f87855 100644
--- a/be/src/vec/columns/column.h
+++ b/be/src/vec/columns/column.h
@@ -565,10 +565,6 @@ public:
     /// It's true for ColumnNullable, can be true or false for ColumnConst, 
etc.
     virtual bool is_concrete_nullable() const { return false; }
 
-    virtual bool is_bitmap() const { return false; }
-
-    virtual bool is_hll() const { return false; }
-
     // true if column has null element
     virtual bool has_null() const { return false; }
 
@@ -607,10 +603,6 @@ public:
     /// Checks only @sample_ratio ratio of rows.
     virtual double get_ratio_of_default_rows(double sample_ratio = 1.0) const 
{ return 0.0; }
 
-    /// Column is ColumnVector of numbers or ColumnConst of it. Note that 
Nullable columns are not numeric.
-    /// Implies is_fixed_and_contiguous.
-    virtual bool is_numeric() const { return false; }
-
     // Column is ColumnString/ColumnArray/ColumnMap or other variable length 
column at every row
     virtual bool is_variable_length() const { return false; }
 
@@ -618,8 +610,6 @@ public:
 
     virtual bool is_column_string64() const { return false; }
 
-    virtual bool is_column_decimal() const { return false; }
-
     virtual bool is_column_dictionary() const { return false; }
 
     virtual bool is_column_array() const { return false; }
@@ -752,4 +742,4 @@ struct ColumnPtrWrapper {
 
     ColumnPtrWrapper(vectorized::ColumnPtr col) : column_ptr(std::move(col)) {}
 };
-} // namespace doris
+} // namespace doris
\ No newline at end of file
diff --git a/be/src/vec/columns/column_complex.h 
b/be/src/vec/columns/column_complex.h
index 14ae940c9d7..f8513d54f57 100644
--- a/be/src/vec/columns/column_complex.h
+++ b/be/src/vec/columns/column_complex.h
@@ -48,11 +48,6 @@ public:
     using value_type = T;
     using Container = std::vector<value_type>;
 
-    bool is_numeric() const override { return false; }
-
-    bool is_bitmap() const override { return std::is_same_v<T, BitmapValue>; }
-    bool is_hll() const override { return std::is_same_v<T, HyperLogLog>; }
-
     size_t size() const override { return data.size(); }
 
     StringRef get_data_at(size_t n) const override {
diff --git a/be/src/vec/columns/column_const.h 
b/be/src/vec/columns/column_const.h
index 69177eb2ca3..80d50e26e16 100644
--- a/be/src/vec/columns/column_const.h
+++ b/be/src/vec/columns/column_const.h
@@ -253,7 +253,6 @@ public:
     // ColumnConst is not nullable, but may be concrete nullable.
     bool is_concrete_nullable() const override { return 
is_column_nullable(*data); }
     bool only_null() const override { return data->is_null_at(0); }
-    bool is_numeric() const override { return data->is_numeric(); }
     StringRef get_raw_data() const override { return data->get_raw_data(); }
 
     /// Not part of the common interface.
diff --git a/be/src/vec/columns/column_decimal.h 
b/be/src/vec/columns/column_decimal.h
index 946b268436e..a8b1f9573ef 100644
--- a/be/src/vec/columns/column_decimal.h
+++ b/be/src/vec/columns/column_decimal.h
@@ -105,9 +105,6 @@ private:
 public:
     std::string get_name() const override { return TypeName<T>::get(); }
 
-    bool is_numeric() const override { return false; }
-    bool is_column_decimal() const override { return true; }
-
     size_t size() const override { return data.size(); }
     size_t byte_size() const override { return data.size() * sizeof(data[0]); }
     size_t allocated_bytes() const override { return data.allocated_bytes(); }
diff --git a/be/src/vec/columns/column_nullable.h 
b/be/src/vec/columns/column_nullable.h
index 83d5e6af35a..84b3ce0f82a 100644
--- a/be/src/vec/columns/column_nullable.h
+++ b/be/src/vec/columns/column_nullable.h
@@ -328,9 +328,6 @@ public:
 
     bool is_nullable() const override { return true; }
     bool is_concrete_nullable() const override { return true; }
-    bool is_bitmap() const override { return get_nested_column().is_bitmap(); }
-    bool is_hll() const override { return get_nested_column().is_hll(); }
-    bool is_column_decimal() const override { return 
get_nested_column().is_column_decimal(); }
     bool is_column_string() const override { return 
get_nested_column().is_column_string(); }
     bool is_column_array() const override { return 
get_nested_column().is_column_array(); }
     bool is_column_map() const override { return 
get_nested_column().is_column_map(); }
diff --git a/be/src/vec/columns/column_vector.h 
b/be/src/vec/columns/column_vector.h
index 970997a9186..8006d76c1f9 100644
--- a/be/src/vec/columns/column_vector.h
+++ b/be/src/vec/columns/column_vector.h
@@ -152,8 +152,6 @@ public:
     ColumnVector(std::initializer_list<T> il) : data {il} {}
 
 public:
-    bool is_numeric() const override { return IsNumber<T>; }
-
     size_t size() const override { return data.size(); }
 
     StringRef get_data_at(size_t n) const override {
diff --git a/be/src/vec/columns/predicate_column.h 
b/be/src/vec/columns/predicate_column.h
index 7e15656fe1d..ab9648c3ae6 100644
--- a/be/src/vec/columns/predicate_column.h
+++ b/be/src/vec/columns/predicate_column.h
@@ -102,8 +102,6 @@ public:
     using value_type = T;
     using Container = PaddedPODArray<value_type>;
 
-    bool is_numeric() const override { return false; }
-
     size_t size() const override { return data.size(); }
 
     StringRef get_data_at(size_t n) const override {
diff --git a/be/src/vec/data_types/data_type.h 
b/be/src/vec/data_types/data_type.h
index 86f7cf36fa8..6c54241ea18 100644
--- a/be/src/vec/data_types/data_type.h
+++ b/be/src/vec/data_types/data_type.h
@@ -289,6 +289,7 @@ struct WhichDataType {
     bool is_aggregate_function() const { return idx == 
TypeIndex::AggregateFunction; }
     bool is_variant_type() const { return idx == TypeIndex::VARIANT; }
     bool is_simple() const { return is_int() || is_uint() || is_float() || 
is_string(); }
+    bool is_num_can_compare() const { return is_int_or_uint() || is_float() || 
is_ip(); }
 };
 
 /// IDataType helpers (alternative for IDataType virtual methods with single 
point of truth)
diff --git a/be/src/vec/functions/functions_comparison.h 
b/be/src/vec/functions/functions_comparison.h
index 78a89071c76..cb56f176c71 100644
--- a/be/src/vec/functions/functions_comparison.h
+++ b/be/src/vec/functions/functions_comparison.h
@@ -637,8 +637,8 @@ public:
         WhichDataType which_left {left_type};
         WhichDataType which_right {right_type};
 
-        const bool left_is_num = col_left_untyped->is_numeric();
-        const bool right_is_num = col_right_untyped->is_numeric();
+        const bool left_is_num_can_compare = which_left.is_num_can_compare();
+        const bool right_is_num_can_compare = which_right.is_num_can_compare();
 
         const bool left_is_string = which_left.is_string_or_fixed_string();
         const bool right_is_string = which_right.is_string_or_fixed_string();
@@ -648,7 +648,7 @@ public:
         //        bool date_and_datetime = (left_type != right_type) && 
which_left.is_date_or_datetime() &&
         //                                 which_right.is_date_or_datetime();
 
-        if (left_is_num && right_is_num) {
+        if (left_is_num_can_compare && right_is_num_can_compare) {
             if (!(execute_num_left_type<UInt8>(block, result, col_left_untyped,
                                                col_right_untyped) ||
                   execute_num_left_type<UInt16>(block, result, 
col_left_untyped,


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to