mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
5.3.4 merge
This commit is contained in:
@ -899,6 +899,8 @@ int JOIN_CACHE::alloc_buffer()
|
||||
curr_buff_space_sz+= cache->get_join_buffer_size();
|
||||
}
|
||||
}
|
||||
curr_min_buff_space_sz+= min_buff_size;
|
||||
curr_buff_space_sz+= buff_size;
|
||||
|
||||
if (curr_min_buff_space_sz > join_buff_space_limit ||
|
||||
(curr_buff_space_sz > join_buff_space_limit &&
|
||||
@ -2110,16 +2112,6 @@ enum_nested_loop_state JOIN_CACHE::join_records(bool skip_last)
|
||||
if (rc != NESTED_LOOP_OK && rc != NESTED_LOOP_NO_MORE_ROWS)
|
||||
goto finish;
|
||||
}
|
||||
if (outer_join_first_inner)
|
||||
{
|
||||
/*
|
||||
All null complemented rows have been already generated for all
|
||||
outer records from join buffer. Restore the state of the
|
||||
first_unmatched values to 0 to avoid another null complementing.
|
||||
*/
|
||||
for (tab= join_tab->first_inner; tab <= join_tab->last_inner; tab++)
|
||||
tab->first_unmatched= 0;
|
||||
}
|
||||
|
||||
if (skip_last)
|
||||
{
|
||||
@ -2132,6 +2124,16 @@ enum_nested_loop_state JOIN_CACHE::join_records(bool skip_last)
|
||||
}
|
||||
|
||||
finish:
|
||||
if (outer_join_first_inner)
|
||||
{
|
||||
/*
|
||||
All null complemented rows have been already generated for all
|
||||
outer records from join buffer. Restore the state of the
|
||||
first_unmatched values to 0 to avoid another null complementing.
|
||||
*/
|
||||
for (tab= join_tab->first_inner; tab <= join_tab->last_inner; tab++)
|
||||
tab->first_unmatched= 0;
|
||||
}
|
||||
restore_last_record();
|
||||
reset(TRUE);
|
||||
DBUG_PRINT("exit", ("rc: %d", rc));
|
||||
|
Reference in New Issue
Block a user