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 dc9a860811e ·[Refactor](vec) remove the unless api in column nullable 
(#46180)
dc9a860811e is described below

commit dc9a860811e2fcaf582764f80161b77b67632f52
Author: HappenLee <happen...@selectdb.com>
AuthorDate: Wed Jan 1 23:31:37 2025 +0800

    ·[Refactor](vec) remove the unless api in column nullable (#46180)
    
    ```
    Remove the unless api in ColumnNullable:`insert_null_elements` replace by 
`insert_many_defaults`
    ```
---
 be/src/olap/base_tablet.cpp                               |  4 ++--
 be/src/olap/partial_update_info.cpp                       |  6 +++---
 be/src/olap/rowset/segment_v2/column_reader.cpp           | 10 ++++------
 be/src/olap/rowset/segment_v2/column_reader.h             |  4 ----
 be/src/vec/columns/column_nullable.h                      |  8 +-------
 be/src/vec/data_types/data_type_struct.cpp                |  2 +-
 be/src/vec/exec/format/orc/vorc_reader.cpp                |  2 +-
 be/src/vec/exec/format/parquet/vparquet_column_reader.cpp |  2 +-
 be/src/vec/olap/vgeneric_iterators.cpp                    |  5 ++---
 be/test/vec/columns/column_nullable_test.cpp              |  6 +++---
 be/test/vec/core/block_test.cpp                           |  4 ++--
 be/test/vec/data_types/serde/data_type_serde_pb_test.cpp  |  4 ++--
 be/test/vec/data_types/serde/data_type_serde_test.cpp     |  4 ++--
 be/test/vec/jsonb/serialize_test.cpp                      |  4 ++--
 14 files changed, 26 insertions(+), 39 deletions(-)

diff --git a/be/src/olap/base_tablet.cpp b/be/src/olap/base_tablet.cpp
index 40c5443477d..ef87c38d540 100644
--- a/be/src/olap/base_tablet.cpp
+++ b/be/src/olap/base_tablet.cpp
@@ -1043,7 +1043,7 @@ Status BaseTablet::generate_new_block_for_partial_update(
                 } else if (rs_column.is_nullable()) {
                     assert_cast<vectorized::ColumnNullable*, 
TypeCheckOnRelease::DISABLE>(
                             mutable_column.get())
-                            ->insert_null_elements(1);
+                            ->insert_default();
                 } else {
                     mutable_column->insert_default();
                 }
@@ -1157,7 +1157,7 @@ Status 
BaseTablet::generate_new_block_for_flexible_partial_update(
                 } else if (tablet_column.is_nullable()) {
                     assert_cast<vectorized::ColumnNullable*, 
TypeCheckOnRelease::DISABLE>(
                             new_col.get())
-                            ->insert_null_elements(1);
+                            ->insert_default();
                 } else {
                     new_col->insert_default();
                 }
diff --git a/be/src/olap/partial_update_info.cpp 
b/be/src/olap/partial_update_info.cpp
index 3e8c5d9750c..5260037578f 100644
--- a/be/src/olap/partial_update_info.cpp
+++ b/be/src/olap/partial_update_info.cpp
@@ -366,7 +366,7 @@ Status FixedReadPlan::fill_missing_columns(
                 } else if (tablet_column.is_nullable()) {
                     auto* nullable_column =
                             assert_cast<vectorized::ColumnNullable*, 
TypeCheckOnRelease::DISABLE>(missing_col.get());
-                    nullable_column->insert_null_elements(1);
+                    nullable_column->insert_default();
                 } else if (tablet_schema.auto_increment_column() == 
tablet_column.name()) {
                     const auto& column =
                             
*DORIS_TRY(rowset_ctx->tablet_schema->column(tablet_column.name()));
@@ -551,7 +551,7 @@ Status 
FlexibleReadPlan::fill_non_primary_key_columns_for_column_store(
                 } else if (tablet_column.is_nullable()) {
                     assert_cast<vectorized::ColumnNullable*, 
TypeCheckOnRelease::DISABLE>(
                             new_col.get())
-                            ->insert_null_elements(1);
+                            ->insert_default();
                 } else {
                     new_col->insert_default();
                 }
@@ -625,7 +625,7 @@ Status 
FlexibleReadPlan::fill_non_primary_key_columns_for_row_store(
                 } else if (tablet_column.is_nullable()) {
                     assert_cast<vectorized::ColumnNullable*, 
TypeCheckOnRelease::DISABLE>(
                             new_col.get())
-                            ->insert_null_elements(1);
+                            ->insert_default();
                 } else {
                     new_col->insert_default();
                 }
diff --git a/be/src/olap/rowset/segment_v2/column_reader.cpp 
b/be/src/olap/rowset/segment_v2/column_reader.cpp
index 1abb60e5850..9948e7fd8cf 100644
--- a/be/src/olap/rowset/segment_v2/column_reader.cpp
+++ b/be/src/olap/rowset/segment_v2/column_reader.cpp
@@ -409,7 +409,7 @@ Status ColumnReader::next_batch_of_zone_map(size_t* n, 
vectorized::MutableColumn
 
     auto size = *n - 1;
     if (min_value->is_null()) {
-        
assert_cast<vectorized::ColumnNullable&>(*dst).insert_null_elements(size);
+        
assert_cast<vectorized::ColumnNullable&>(*dst).insert_many_defaults(size);
     } else {
         if (is_string) {
             auto sv = (StringRef*)min_value->cell_ptr();
@@ -489,9 +489,7 @@ Status ColumnReader::_parse_zone_map_skip_null(const 
ZoneMapPB& zone_map,
     if (zone_map.has_not_null()) {
         RETURN_IF_ERROR(min_value_container->from_string(zone_map.min()));
         RETURN_IF_ERROR(max_value_container->from_string(zone_map.max()));
-    }
-
-    if (!zone_map.has_not_null()) {
+    } else {
         min_value_container->set_null();
         max_value_container->set_null();
     }
@@ -1270,7 +1268,7 @@ Status FileColumnIterator::next_batch(size_t* n, 
vectorized::MutableColumnPtr& d
                     const auto* null_col =
                             
vectorized::check_and_get_column<vectorized::ColumnNullable>(dst.get());
                     if (null_col != nullptr) {
-                        
const_cast<vectorized::ColumnNullable*>(null_col)->insert_null_elements(
+                        
const_cast<vectorized::ColumnNullable*>(null_col)->insert_many_defaults(
                                 this_run);
                     } else {
                         return Status::InternalError("unexpected column type 
in column reader");
@@ -1335,7 +1333,7 @@ Status FileColumnIterator::read_by_rowids(const rowid_t* 
rowids, const size_t co
                             return Status::InternalError("unexpected column 
type in column reader");
                         }
 
-                        
const_cast<vectorized::ColumnNullable*>(null_col)->insert_null_elements(
+                        
const_cast<vectorized::ColumnNullable*>(null_col)->insert_many_defaults(
                                 this_read_count);
                     } else {
                         size_t read_count = this_read_count;
diff --git a/be/src/olap/rowset/segment_v2/column_reader.h 
b/be/src/olap/rowset/segment_v2/column_reader.h
index 7e32b3a09b3..2afc269a86c 100644
--- a/be/src/olap/rowset/segment_v2/column_reader.h
+++ b/be/src/olap/rowset/segment_v2/column_reader.h
@@ -768,10 +768,6 @@ public:
     Status read_by_rowids(const rowid_t* rowids, const size_t count,
                           vectorized::MutableColumnPtr& dst) override;
 
-    Status next_batch_of_zone_map(size_t* n, vectorized::MutableColumnPtr& 
dst) override {
-        return Status::NotSupported("Not supported next_batch_of_zone_map");
-    }
-
     ordinal_t get_current_ordinal() const override {
         if (_sibling_iter) {
             return _sibling_iter->get_current_ordinal();
diff --git a/be/src/vec/columns/column_nullable.h 
b/be/src/vec/columns/column_nullable.h
index 84b3ce0f82a..801af78ca2b 100644
--- a/be/src/vec/columns/column_nullable.h
+++ b/be/src/vec/columns/column_nullable.h
@@ -246,6 +246,7 @@ public:
         get_nested_column().insert_many_continuous_binary_data(data, offsets, 
num);
     }
 
+    // Default value in `ColumnNullable` is null
     void insert_default() override {
         get_nested_column().insert_default();
         get_null_map_data().push_back(1);
@@ -265,13 +266,6 @@ public:
         _push_false_to_nullmap(num);
     }
 
-    void insert_null_elements(int num) {
-        get_nested_column().insert_many_defaults(num);
-        get_null_map_column().insert_many_vals(1, num);
-        _has_null = true;
-        _need_update_has_null = false;
-    }
-
     void pop_back(size_t n) override;
     ColumnPtr filter(const Filter& filt, ssize_t result_size_hint) const 
override;
 
diff --git a/be/src/vec/data_types/data_type_struct.cpp 
b/be/src/vec/data_types/data_type_struct.cpp
index 780882379ca..acb4eb212ee 100644
--- a/be/src/vec/data_types/data_type_struct.cpp
+++ b/be/src/vec/data_types/data_type_struct.cpp
@@ -204,7 +204,7 @@ Status DataTypeStruct::from_string(ReadBuffer& rb, IColumn* 
column) const {
         if (field_rb.count() == 4 && strncmp(field_rb.position(), "null", 4) 
== 0) {
             auto& nested_null_col =
                     
reinterpret_cast<ColumnNullable&>(struct_column->get_column(idx));
-            nested_null_col.insert_null_elements(1);
+            nested_null_col.insert_default();
             continue;
         }
         auto st = elems[idx]->from_string(field_rb, 
&struct_column->get_column(idx));
diff --git a/be/src/vec/exec/format/orc/vorc_reader.cpp 
b/be/src/vec/exec/format/orc/vorc_reader.cpp
index 26e41afe3c9..a488bef7455 100644
--- a/be/src/vec/exec/format/orc/vorc_reader.cpp
+++ b/be/src/vec/exec/format/orc/vorc_reader.cpp
@@ -1712,7 +1712,7 @@ Status OrcReader::_fill_doris_data_column(const 
std::string& col_name,
                         col_name);
             }
             
reinterpret_cast<ColumnNullable*>(doris_field->assume_mutable().get())
-                    ->insert_null_elements(num_values);
+                    ->insert_many_defaults(num_values);
         }
 
         for (auto read_field : read_fields) {
diff --git a/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp 
b/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp
index 207b917666b..ade98ada48b 100644
--- a/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp
+++ b/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp
@@ -882,7 +882,7 @@ Status StructColumnReader::read_column_data(ColumnPtr& 
doris_column, DataTypePtr
         DCHECK(doris_type->is_nullable());
         auto mutable_column = doris_field->assume_mutable();
         auto* nullable_column = 
static_cast<vectorized::ColumnNullable*>(mutable_column.get());
-        nullable_column->insert_null_elements(missing_column_sz);
+        nullable_column->insert_many_defaults(missing_column_sz);
     }
 
     if (null_map_ptr != nullptr) {
diff --git a/be/src/vec/olap/vgeneric_iterators.cpp 
b/be/src/vec/olap/vgeneric_iterators.cpp
index fe37abd08fa..bb107a5c1d6 100644
--- a/be/src/vec/olap/vgeneric_iterators.cpp
+++ b/be/src/vec/olap/vgeneric_iterators.cpp
@@ -73,9 +73,8 @@ Status VStatisticsIterator::next_batch(Block* block) {
                               ? 2
                               : std::min(_target_rows - _output_rows, 
MAX_ROW_SIZE_IN_COUNT);
         if (_push_down_agg_type_opt == TPushAggOp::COUNT) {
-            size = std::min(_target_rows - _output_rows, 
MAX_ROW_SIZE_IN_COUNT);
-            for (int i = 0; i < columns.size(); ++i) {
-                columns[i]->insert_many_defaults(size);
+            for (auto& column : columns) {
+                column->insert_many_defaults(size);
             }
         } else {
             for (int i = 0; i < columns.size(); ++i) {
diff --git a/be/test/vec/columns/column_nullable_test.cpp 
b/be/test/vec/columns/column_nullable_test.cpp
index 9e66d5bb302..3cd269d51da 100644
--- a/be/test/vec/columns/column_nullable_test.cpp
+++ b/be/test/vec/columns/column_nullable_test.cpp
@@ -61,7 +61,7 @@ TEST(ColumnNullableTest, NullTest) {
 
     dst_col->clear();
     EXPECT_FALSE(dst_col->has_null());
-    dst_col->insert_null_elements(10);
+    dst_col->insert_many_defaults(10);
     EXPECT_TRUE(dst_col->has_null());
 
     dst_col->clear();
@@ -93,12 +93,12 @@ TEST(ColumnNullableTest, PredicateTest) {
             ColumnNullable::create(PredicateColumnType<TYPE_DATE>::create(), 
ColumnUInt8::create());
     nullable_pred->insert_many_defaults(3);
     EXPECT_TRUE(nullable_pred->has_null());
-    nullable_pred->insert_null_elements(10);
+    nullable_pred->insert_many_defaults(10);
     EXPECT_TRUE(nullable_pred->has_null());
 
     nullable_pred->clear();
     EXPECT_FALSE(nullable_pred->has_null());
-    nullable_pred->insert_null_elements(10);
+    nullable_pred->insert_many_defaults(10);
     EXPECT_TRUE(nullable_pred->has_null()); // now it have 10 nulls
 
     auto null_dst = ColumnNullable::create(ColumnDate::create(), 
ColumnUInt8::create());
diff --git a/be/test/vec/core/block_test.cpp b/be/test/vec/core/block_test.cpp
index 54cb15f8d48..134264f3e80 100644
--- a/be/test/vec/core/block_test.cpp
+++ b/be/test/vec/core/block_test.cpp
@@ -220,7 +220,7 @@ void 
serialize_and_deserialize_test(segment_v2::CompressionTypePB compression_ty
         vectorized::DataTypePtr nullable_data_type(
                 
std::make_shared<vectorized::DataTypeNullable>(string_data_type));
         auto nullable_column = nullable_data_type->create_column();
-        
((vectorized::ColumnNullable*)nullable_column.get())->insert_null_elements(1024);
+        
((vectorized::ColumnNullable*)nullable_column.get())->insert_many_defaults(1024);
         vectorized::ColumnWithTypeAndName 
type_and_name(nullable_column->get_ptr(),
                                                         nullable_data_type, 
"test_nullable");
         vectorized::Block block({type_and_name});
@@ -241,7 +241,7 @@ void 
serialize_and_deserialize_test(segment_v2::CompressionTypePB compression_ty
         vectorized::DataTypePtr nullable_data_type(
                 
std::make_shared<vectorized::DataTypeNullable>(decimal_data_type));
         auto nullable_column = nullable_data_type->create_column();
-        
((vectorized::ColumnNullable*)nullable_column.get())->insert_null_elements(1024);
+        
((vectorized::ColumnNullable*)nullable_column.get())->insert_many_defaults(1024);
         vectorized::ColumnWithTypeAndName type_and_name(
                 nullable_column->get_ptr(), nullable_data_type, 
"test_nullable_decimal");
         vectorized::Block block({type_and_name});
diff --git a/be/test/vec/data_types/serde/data_type_serde_pb_test.cpp 
b/be/test/vec/data_types/serde/data_type_serde_pb_test.cpp
index 852614e84c5..bf6ead9b21b 100644
--- a/be/test/vec/data_types/serde/data_type_serde_pb_test.cpp
+++ b/be/test/vec/data_types/serde/data_type_serde_pb_test.cpp
@@ -404,7 +404,7 @@ inline void serialize_and_deserialize_pb_test() {
         vectorized::DataTypePtr nullable_data_type(
                 
std::make_shared<vectorized::DataTypeNullable>(string_data_type));
         auto nullable_column = nullable_data_type->create_column();
-        
((vectorized::ColumnNullable*)nullable_column.get())->insert_null_elements(1024);
+        
((vectorized::ColumnNullable*)nullable_column.get())->insert_many_defaults(1024);
         check_pb_col(nullable_data_type, *nullable_column.get());
     }
     // nullable decimal
@@ -414,7 +414,7 @@ inline void serialize_and_deserialize_pb_test() {
         vectorized::DataTypePtr nullable_data_type(
                 
std::make_shared<vectorized::DataTypeNullable>(decimal_data_type));
         auto nullable_column = nullable_data_type->create_column();
-        
((vectorized::ColumnNullable*)nullable_column.get())->insert_null_elements(1024);
+        
((vectorized::ColumnNullable*)nullable_column.get())->insert_many_defaults(1024);
         check_pb_col(nullable_data_type, *nullable_column.get());
     }
     // int with 1024 batch size
diff --git a/be/test/vec/data_types/serde/data_type_serde_test.cpp 
b/be/test/vec/data_types/serde/data_type_serde_test.cpp
index 82674b0aa44..b653edf3e4e 100644
--- a/be/test/vec/data_types/serde/data_type_serde_test.cpp
+++ b/be/test/vec/data_types/serde/data_type_serde_test.cpp
@@ -166,7 +166,7 @@ inline void serialize_and_deserialize_pb_test() {
         vectorized::DataTypePtr nullable_data_type(
                 
std::make_shared<vectorized::DataTypeNullable>(string_data_type));
         auto nullable_column = nullable_data_type->create_column();
-        
((vectorized::ColumnNullable*)nullable_column.get())->insert_null_elements(1024);
+        
((vectorized::ColumnNullable*)nullable_column.get())->insert_many_defaults(1024);
         check_pb_col(nullable_data_type, *nullable_column.get());
     }
     // nullable decimal
@@ -175,7 +175,7 @@ inline void serialize_and_deserialize_pb_test() {
         vectorized::DataTypePtr nullable_data_type(
                 
std::make_shared<vectorized::DataTypeNullable>(decimal_data_type));
         auto nullable_column = nullable_data_type->create_column();
-        
((vectorized::ColumnNullable*)nullable_column.get())->insert_null_elements(1024);
+        
((vectorized::ColumnNullable*)nullable_column.get())->insert_many_defaults(1024);
         check_pb_col(nullable_data_type, *nullable_column.get());
     }
     // int with 1024 batch size
diff --git a/be/test/vec/jsonb/serialize_test.cpp 
b/be/test/vec/jsonb/serialize_test.cpp
index 47819c75072..f3bfc4448fa 100644
--- a/be/test/vec/jsonb/serialize_test.cpp
+++ b/be/test/vec/jsonb/serialize_test.cpp
@@ -448,7 +448,7 @@ TEST(BlockSerializeTest, JsonbBlock) {
         vectorized::DataTypePtr nullable_data_type(
                 
std::make_shared<vectorized::DataTypeNullable>(string_data_type));
         auto nullable_column = nullable_data_type->create_column();
-        
((vectorized::ColumnNullable*)nullable_column.get())->insert_null_elements(1024);
+        
((vectorized::ColumnNullable*)nullable_column.get())->insert_many_defaults(1024);
         vectorized::ColumnWithTypeAndName 
type_and_name(nullable_column->get_ptr(),
                                                         nullable_data_type, 
"test_nullable");
         block.insert(type_and_name);
@@ -459,7 +459,7 @@ TEST(BlockSerializeTest, JsonbBlock) {
         vectorized::DataTypePtr nullable_data_type(
                 
std::make_shared<vectorized::DataTypeNullable>(decimal_data_type));
         auto nullable_column = nullable_data_type->create_column();
-        
((vectorized::ColumnNullable*)nullable_column.get())->insert_null_elements(1024);
+        
((vectorized::ColumnNullable*)nullable_column.get())->insert_many_defaults(1024);
         vectorized::ColumnWithTypeAndName type_and_name(
                 nullable_column->get_ptr(), nullable_data_type, 
"test_nullable_decimal");
         block.insert(type_and_name);


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

Reply via email to