morningman commented on a change in pull request #8618:
URL: https://github.com/apache/incubator-doris/pull/8618#discussion_r833460652



##########
File path: be/src/vec/exec/join/vhash_join_node.cpp
##########
@@ -625,14 +639,20 @@ HashJoinNode::HashJoinNode(ObjectPool* pool, const 
TPlanNode& tnode, const Descr
           _build_unique(_join_op == TJoinOp::LEFT_ANTI_JOIN || _join_op == 
TJoinOp::LEFT_SEMI_JOIN),
           _is_right_semi_anti(_join_op == TJoinOp::RIGHT_ANTI_JOIN ||
                               _join_op == TJoinOp::RIGHT_SEMI_JOIN),
-          _is_outer_join(_match_all_build || _match_all_probe) {
+          _is_outer_join(_match_all_build || _match_all_probe),
+          _output_slot_ids(tnode.hash_join_node.output_slot_ids){
     _runtime_filter_descs = tnode.runtime_filters;
     init_join_op();
 
     // avoid vector expand change block address.
     // one block can store 4g data, _build_blocks can store 128*4g data.
     // if probe data bigger than 512g, runtime filter maybe will core dump 
when insert data.
     _build_blocks.reserve(128);
+
+    // output slot
+    if (tnode.hash_join_node.__isset.output_slot_ids) {

Review comment:
       set it again? _output_slot_ids has been set in initialize list.

##########
File path: be/src/vec/exec/join/vhash_join_node.cpp
##########
@@ -210,12 +210,24 @@ struct ProcessHashTableProbe {
     }
 
     // output probe side result column
-    void probe_side_output_column(MutableColumns& mcol, int column_length, int 
size) {
-        for (int i = 0; i < column_length; ++i) {
-            auto& column = _probe_block.get_by_position(i).column;
-            column->replicate(&_items_counts[0], size, *mcol[i]);
+//    void probe_side_output_column(MutableColumns& mcol, int column_length, 
int size) {
+//        for (int i = 0; i < column_length; ++i) {
+//            auto& column = _probe_block.get_by_position(i).column;
+//            column->replicate(&_items_counts[0], size, *mcol[i]);
+//        }
+//    }
+
+    void probe_side_output_column(MutableColumns& mcol, std::vector<int> 
_left_output_slot_idx, int size) {

Review comment:
       ```suggestion
       void probe_side_output_column(MutableColumns& mcol, const 
std::vector<int>& left_output_slot_idx, int size) {
   ```

##########
File path: be/src/vec/exec/join/vhash_join_node.h
##########
@@ -232,6 +232,10 @@ class HashJoinNode : public ::doris::ExecNode {
     std::vector<int> _build_block_rows;
 
     std::shared_ptr<MemTracker> _hash_table_mem_tracker;
+
+    std::vector<SlotId> _output_slot_ids;

Review comment:
       add comment to explain these fields




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