You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by GitBox <gi...@apache.org> on 2022/07/28 06:14:34 UTC

[GitHub] [doris] HappenLee commented on a diff in pull request #10792: [Feature][Materialized-View] support materialized view on vectorized engine

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-unsubscribe@doris.apache.org

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


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