You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by "HappenLee (via GitHub)" <gi...@apache.org> on 2023/04/02 15:28:18 UTC

[GitHub] [doris] HappenLee commented on a diff in pull request #18310: [Optimization](functions)Optimize function call for const columns.

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


##########
be/src/vec/functions/in.h:
##########
@@ -227,6 +187,61 @@ class FunctionIn : public IFunction {
     Status close(FunctionContext* context, FunctionContext::FunctionStateScope scope) override {
         return Status::OK();
     }
+
+private:
+    template <typename T>
+    static void search_hash_set_check_null(InState* in_state, size_t input_rows_count,
+                                           ColumnUInt8::Container& vec_res,
+                                           const ColumnUInt8::Container& null_map, T* col_ptr) {
+        if constexpr (!negative) {
+            in_state->hybrid_set->find_batch_nullable(*col_ptr, input_rows_count, null_map,
+                                                      vec_res);
+        } else {
+            in_state->hybrid_set->find_batch_nullable_negative(*col_ptr, input_rows_count, null_map,
+                                                               vec_res);
+        }
+    }
+    template <typename T>
+    static void search_hash_set(InState* in_state, size_t input_rows_count,
+                                ColumnUInt8::Container& vec_res, T* col_ptr) {
+        if constexpr (!negative) {
+            in_state->hybrid_set->find_batch(*col_ptr, input_rows_count, vec_res);
+        } else {
+            in_state->hybrid_set->find_batch_negative(*col_ptr, input_rows_count, vec_res);
+        }
+    }
+    static void impl_without_set(FunctionContext* context,
+                                 const std::vector<ColumnPtr>& set_columns, size_t input_rows_count,
+                                 ColumnUInt8::Container& vec_res,
+                                 ColumnUInt8::Container& vec_null_map_to,
+                                 const ColumnPtr& materialized_column, bool col_const) {
+        for (size_t i = 0; i < input_rows_count; ++i) {
+            const auto& ref_data = materialized_column->get_data_at(col_const ? 0 : i);

Review Comment:
   not reference



-- 
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