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