提交 8268127e 编写于 作者: Q qianchanger 提交者: ob-robot

[CP] Fix parallel window function max/min calculate error in old exec-engine

上级 67be37fe
......@@ -1521,19 +1521,29 @@ int ObWindowFunction::ObWindowFunctionCtx::parallel_winbuf_process()
break;
}
case T_FUN_MAX: {
if (ObObjCmpFuncs::compare_oper_nullsafe(new_row->cells_[index],
row->cells_[index],
new_row->cells_[index].get_collation_type(),
CO_LT)) {
// should ignore null in max calc
if (row->cells_[index].is_null() && !new_row->cells_[index].is_null()) {
/*do nothing*/
} else if (!row->cells_[index].is_null() && new_row->cells_[index].is_null()) {
new_row->cells_[index] = row->cells_[index];
} else if (ObObjCmpFuncs::compare_oper_nullsafe(new_row->cells_[index],
row->cells_[index],
new_row->cells_[index].get_collation_type(),
CO_LT)) {
new_row->cells_[index] = row->cells_[index];
}
break;
}
case T_FUN_MIN: {
if (ObObjCmpFuncs::compare_oper_nullsafe(new_row->cells_[index],
row->cells_[index],
new_row->cells_[index].get_collation_type(),
CO_GT)) {
// should ignore null in min calc
if (row->cells_[index].is_null() && !new_row->cells_[index].is_null()) {
/*do nothing*/
} else if (!row->cells_[index].is_null() && new_row->cells_[index].is_null()) {
new_row->cells_[index] = row->cells_[index];
} else if (ObObjCmpFuncs::compare_oper_nullsafe(new_row->cells_[index],
row->cells_[index],
new_row->cells_[index].get_collation_type(),
CO_GT)) {
new_row->cells_[index] = row->cells_[index];
}
break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册