• unknown's avatar
    Fixed bug #15347: Wrong result of subselect when records cache and set · ddcc6d7b
    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
sql_select.cc 438 KB