[Bug](pipeline) Fix projection on streaming operator (#16592)

This commit is contained in:
Gabriel
2023-02-10 15:57:26 +08:00
committed by GitHub
parent da753d6e26
commit 06788bc2d0
3 changed files with 24 additions and 5 deletions

View File

@ -570,9 +570,12 @@ Status ExecNode::do_projections(vectorized::Block* origin_block, vectorized::Blo
Status ExecNode::get_next_after_projects(
RuntimeState* state, vectorized::Block* block, bool* eos,
const std::function<Status(RuntimeState*, vectorized::Block*, bool*)>& func) {
const std::function<Status(RuntimeState*, vectorized::Block*, bool*)>& func,
bool clear_data) {
if (_output_row_descriptor) {
_origin_block.clear_column_data(_row_descriptor.num_materialized_slots());
if (clear_data) {
clear_origin_block();
}
auto status = func(state, &_origin_block, eos);
if (UNLIKELY(!status.ok())) return status;
return do_projections(&_origin_block, block);