[pipelineX](fix) Fix projection expression (#24923)

This commit is contained in:
Gabriel
2023-09-26 21:48:28 +08:00
committed by GitHub
parent 90c5461ad2
commit a689a2fbb1
3 changed files with 3 additions and 8 deletions

View File

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

View File

@ -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));

View File

@ -56,6 +56,7 @@ std::unique_ptr<FunctionContext> 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;
}