-
unknown authored
functions are involved. When subselect is a join with set functions and no record have been found in it, end_send_group() sets null_row for all tables in order aggregate functions to calculate their values correctly. Normally this null_row flag is cleared for each table in sub_select(), but flush_cached_records() doesn't do so. Due to this all fields from the table processed by flush_cached_records() are always evaluated as nulls and whole select produces wrong result. flush_cached_records() now clears null_row flag at the very beginning. mysql-test/t/select.test: Added test case for bug #15347: Wrong result of subselect when records cache and set functions are involved mysql-test/r/select.result: Added test case for bug #15347: Wrong result of subselect when records cache and set functions are involved sql/sql_select.cc: Fixed bug #15347: Wrong result of subselect when records cache and set functions are involved flush_cached_records() now clears null_row flag at the very beginning.
ddcc6d7b