diff --git a/be/src/vec/exec/join/vhash_join_node.cpp b/be/src/vec/exec/join/vhash_join_node.cpp index 71ea81a1bd10ba..f6dafef06a74cc 100644 --- a/be/src/vec/exec/join/vhash_join_node.cpp +++ b/be/src/vec/exec/join/vhash_join_node.cpp @@ -725,11 +725,12 @@ Status HashJoinNode::push(RuntimeState* /*state*/, vectorized::Block* input_bloc _probe_columns.resize(probe_expr_ctxs_sz); std::vector res_col_ids(probe_expr_ctxs_sz); - RETURN_IF_ERROR( - _do_evaluate(*input_block, _probe_expr_ctxs, *_probe_expr_call_timer, res_col_ids)); if (_join_op == TJoinOp::RIGHT_OUTER_JOIN || _join_op == TJoinOp::FULL_OUTER_JOIN) { _probe_column_convert_to_null = _convert_block_to_null(*input_block); } + RETURN_IF_ERROR( + _do_evaluate(*input_block, _probe_expr_ctxs, *_probe_expr_call_timer, res_col_ids)); + // TODO: Now we are not sure whether a column is nullable only by ExecNode's `row_desc` // so we have to initialize this flag by the first probe block. if (!_has_set_need_null_map_for_probe) {