mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug #57954: BIT_AND function returns incorrect results
when semijoin=on When setting the aggregate function as having no rows to report the function no_rows_in_result() was calling Item_sum::reset(). However this function in addition to cleaning up the aggregate value by calling aggregator_clear() was also adding the current value to the aggregate value by calling aggregator_add(). Fixed by making no_rows_in_result() to call aggregator_clear() directly. Renamed Item_sum::reset to Item_sum::reset_and_add() to and added a comment to avoid misinterpretation of what the function does.
This commit is contained in:
@ -15850,7 +15850,7 @@ init_sum_functions(Item_sum **func_ptr, Item_sum **end_ptr)
|
||||
{
|
||||
for (; func_ptr != end_ptr ;func_ptr++)
|
||||
{
|
||||
if ((*func_ptr)->reset())
|
||||
if ((*func_ptr)->reset_and_add())
|
||||
return 1;
|
||||
}
|
||||
/* If rollup, calculate the upper sum levels */
|
||||
|
Reference in New Issue
Block a user