[pipelineX](fix) Fix projection expression (#24923)
This commit is contained in:
@ -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
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user