Fix projection of constant groupby column

This commit is contained in:
obdev
2024-02-09 06:26:05 +00:00
committed by ob-robot
parent f95855069f
commit 2ccebf5212

View File

@ -222,6 +222,9 @@ int Processor::collect_group_results(const RowMeta &row_meta,
if (OB_ISNULL(out_expr)) {
ret = OB_ERR_UNEXPECTED;
SQL_LOG(WARN, "invalid null expr", K(ret));
} else if (OB_UNLIKELY(out_expr->is_const_expr())) {
// do not project const exprs
// do nothing
} else if (OB_FAIL(out_expr->init_vector_default(agg_ctx_.eval_ctx_, output_batch_size))) {
SQL_LOG(WARN, "init vector failed", K(ret));
} else if (OB_FAIL(out_expr->get_vector(agg_ctx_.eval_ctx_)
@ -230,9 +233,11 @@ int Processor::collect_group_results(const RowMeta &row_meta,
}
}
for (int i = 0; OB_SUCC(ret) && i < groupby_exprs.count(); i++) {
if (!groupby_exprs.at(i)->is_const_expr()) {
groupby_exprs.at(i)->set_evaluated_projected(agg_ctx_.eval_ctx_);
}
}
}
LOG_DEBUG("collect group results", K(ret), K(output_size), K(cur_group_id), K(output_brs),
K(output_batch_size));
if (OB_SUCC(ret)) {
@ -277,6 +282,9 @@ int Processor::collect_group_results(const RowMeta &row_meta,
if (OB_ISNULL(out_expr)) {
ret = OB_ERR_UNEXPECTED;
SQL_LOG(WARN, "invalid null output expr", K(ret));
} else if (OB_UNLIKELY(out_expr->is_const_expr())) {
// do not project const exprs
// do nothing
} else if (OB_FAIL(out_expr->init_vector_default(agg_ctx_.eval_ctx_, batch_size))) {
SQL_LOG(WARN, "init vector failed", K(ret));
} else if (OB_FAIL(out_expr->get_vector(agg_ctx_.eval_ctx_)
@ -285,9 +293,11 @@ int Processor::collect_group_results(const RowMeta &row_meta,
}
}
for (int col_id = 0; OB_SUCC(ret) && col_id < groupby_exprs.count(); col_id++) {
if (!groupby_exprs.at(col_id)->is_const_expr()) {
groupby_exprs.at(col_id)->set_evaluated_projected(agg_ctx_.eval_ctx_);
}
}
}
LOG_DEBUG("collect group results", K(ret), K(batch_size), K(output_brs));
if (OB_SUCC(ret)) {
output_brs.size_ += batch_size;