Bug#48920: COUNT DISTINCT returns 1 for NULL values when in a
subquery in the select list When a dependent subquery with count(distinct <col>) was evaluated multiple times, the Distinct_Aggregator was reused. However, the Aggregator was not reset, so when the subquery was evaluated for the next record in the outer select, old dependent info was used. The fix is to clear() the existing aggregator in Item_sum::set_aggregator(). This ensures that the aggregator is reevaluated with the new dependent information. mysql-test/r/subselect3.result: Added test case for BUG#48920 mysql-test/t/subselect3.test: Added test case for BUG#48920 sql/item_sum.cc: If an aggregator exists when Item_sum::set_aggregator() is called (i.e., set_aggregator is called in a dependent subquery), the aggregator is reset so that the aggregator is reevaluated with the dependent information from the outer record being evaluated.
Showing
Please register or sign in to comment