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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]