diff --git a/be/src/pipeline/pipeline_x/operator.cpp b/be/src/pipeline/pipeline_x/operator.cpp index 8a9f8119d2..9244a43585 100644 --- a/be/src/pipeline/pipeline_x/operator.cpp +++ b/be/src/pipeline/pipeline_x/operator.cpp @@ -170,10 +170,10 @@ Status OperatorXBase::do_projections(RuntimeState* state, vectorized::Block* ori if (rows != 0) { auto& mutable_columns = mutable_block.mutable_columns(); - DCHECK(mutable_columns.size() == _projections.size()); + DCHECK(mutable_columns.size() == local_state->_projections.size()); for (int i = 0; i < mutable_columns.size(); ++i) { auto result_column_id = -1; - RETURN_IF_ERROR(_projections[i]->execute(origin_block, &result_column_id)); + RETURN_IF_ERROR(local_state->_projections[i]->execute(origin_block, &result_column_id)); auto column_ptr = origin_block->get_by_position(result_column_id) .column->convert_to_full_column_if_const(); //TODO: this is a quick fix, we need a new function like "change_to_nullable" to do it diff --git a/be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp b/be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp index 37a117b2bf..c167588234 100644 --- a/be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp +++ b/be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp @@ -131,12 +131,6 @@ void PipelineXFragmentContext::cancel(const PPlanFragmentCancelReason& reason, stream_load_ctx->pipe->cancel(msg); } - // must close stream_mgr to avoid dead lock in Exchange Node - FOR_EACH_RUNTIME_STATE( - runtime_state->set_is_cancelled(true, msg); - runtime_state->set_process_status(_query_ctx->exec_status()); - _exec_env->vstream_mgr()->cancel(runtime_state->fragment_instance_id());) - // Cancel the result queue manager used by spark doris connector // TODO pipeline incomp // _exec_env->result_queue_mgr()->update_queue_status(id, Status::Aborted(msg)); diff --git a/be/src/udf/udf.cpp b/be/src/udf/udf.cpp index 37c8e72d17..ecabc905ab 100644 --- a/be/src/udf/udf.cpp +++ b/be/src/udf/udf.cpp @@ -56,6 +56,7 @@ std::unique_ptr FunctionContext::clone() { auto new_context = create_context(_state, _return_type, _arg_types); new_context->_constant_cols = _constant_cols; new_context->_fragment_local_fn_state = _fragment_local_fn_state; + new_context->_check_overflow_for_decimal = _check_overflow_for_decimal; return new_context; }