mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Fixed lp:828514 "Assertion `! is_set()' failed in Diagnostics_area::set_ok_status with derived table + subquery + concurrent DML"
sql/item_subselect.cc: Added check of error condtions (safety) sql/sql_join_cache.cc: Added DBUG to some functions. Added error checking for calls to check_match(); This fixed the bug. sql/sql_select.cc: Moved variable assignment to be close to where it's used (cleanup)
This commit is contained in:
@ -2385,7 +2385,6 @@ JOIN::exec()
|
||||
|
||||
thd_proc_info(thd, "Copying to group table");
|
||||
DBUG_PRINT("info", ("%s", thd->proc_info));
|
||||
tmp_error= -1;
|
||||
if (curr_join != this)
|
||||
{
|
||||
if (sum_funcs2)
|
||||
@ -2410,6 +2409,7 @@ JOIN::exec()
|
||||
JOIN_TAB *first_tab= curr_join->join_tab + curr_join->const_tables;
|
||||
first_tab->sorted= test(first_tab->loosescan_match_tab);
|
||||
}
|
||||
tmp_error= -1;
|
||||
if (setup_sum_funcs(curr_join->thd, curr_join->sum_funcs) ||
|
||||
(tmp_error= do_select(curr_join, (List<Item> *) 0, curr_tmp_table,
|
||||
0)))
|
||||
@ -14839,10 +14839,12 @@ sub_select_cache(JOIN *join, JOIN_TAB *join_tab, bool end_of_records)
|
||||
{
|
||||
enum_nested_loop_state rc;
|
||||
JOIN_CACHE *cache= join_tab->cache;
|
||||
|
||||
DBUG_ENTER("sub_select_cache");
|
||||
|
||||
/* This function cannot be called if join_tab has no associated join buffer */
|
||||
/*
|
||||
This function cannot be called if join_tab has no associated join
|
||||
buffer
|
||||
*/
|
||||
DBUG_ASSERT(cache != NULL);
|
||||
|
||||
join_tab->cache->reset_join(join);
|
||||
|
Reference in New Issue
Block a user