HappenLee commented on code in PR #10792:
URL: https://github.com/apache/doris/pull/10792#discussion_r931746836


##########
be/src/olap/schema_change.cpp:
##########
@@ -650,7 +650,7 @@ Status RowBlockChanger::change_row_block(const RowBlock* 
ref_block, int32_t data
                     _do_materialized_transform = to_bitmap;
                 } else if (_schema_mapping[i].materialized_function == 
"hll_hash") {
                     _do_materialized_transform = hll_hash;
-                } else if (_schema_mapping[i].materialized_function == 
"count_field") {
+                } else if (_schema_mapping[i].materialized_function == 
"is_not_null_pred") {

Review Comment:
   if we update `count_field` name will cause update BE the function can not 
process the logic. keep it and remove after next version



##########
be/src/runtime/descriptors.cpp:
##########
@@ -319,17 +319,28 @@ std::string TupleDescriptor::debug_string() const {
 }
 
 RowDescriptor::RowDescriptor(const DescriptorTbl& desc_tbl, const 
std::vector<TTupleId>& row_tuples,
-                             const std::vector<bool>& nullable_tuples)
+                             const std::vector<bool>& nullable_tuples, bool 
skip_delete)
         : _tuple_idx_nullable_map(nullable_tuples) {
-    DCHECK(nullable_tuples.size() == row_tuples.size())
-            << "nullable_tuples size " << nullable_tuples.size() << " != 
row_tuples size "
-            << row_tuples.size();
     DCHECK_GT(row_tuples.size(), 0);
     _num_materialized_slots = 0;
     _num_null_slots = 0;
 
     for (int i = 0; i < row_tuples.size(); ++i) {
         TupleDescriptor* tupleDesc = 
desc_tbl.get_tuple_descriptor(row_tuples[i]);
+
+        if (skip_delete) {

Review Comment:
   do not treat each slot as a tuple



##########
fe/fe-core/src/main/java/org/apache/doris/analysis/CreateMaterializedViewStmt.java:
##########
@@ -399,6 +400,9 @@ private MVColumnItem buildMVColumnItem(FunctionCallExpr 
functionCallExpr) throws
                     mvColumnName = baseColumnName;
                 } else {
                     mvColumnName = mvColumnBuilder(functionName, 
baseColumnName);
+                    if (!functionChild0.getType().isStringType()) {

Review Comment:
   why the origin do not have the logic



##########
be/src/vec/functions/is_not_null.cpp:
##########
@@ -56,7 +56,7 @@ class FunctionIsNotNull : public IFunction {
             auto* __restrict res_data = 
assert_cast<ColumnUInt8&>(*res_column).get_data().data();
 
             for (size_t i = 0; i < input_rows_count; ++i) {
-                res_data[i] = !src_data[i];
+                res_data[i] = src_data[i] == 0;

Review Comment:
   why is better ?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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

Reply via email to