Bug #21096444: MYSQL IS TRYING TO PERFORM A CONSISTENT READ BUT THE READ VIEW IS NOT ASSIGNED!
Issue: A select for update subquery in having clause resulted deadlock and its transaction was rolled back by innodb. val_XXX interfaces do not handle errors and it do not propogate errors to its caller. sub_select did not see this error when it called evaluate_join_record and later made a call to innodb. As transaction is rolled back innodb asserted. Fix: Now evaluate_join_record checks if there is any error reported and then return the same to its caller.
This commit is contained in:
parent
9372c9ebd2
commit
c28626d0af
@ -11598,6 +11598,11 @@ evaluate_join_record(JOIN *join, JOIN_TAB *join_tab,
|
||||
rc= (*join_tab->next_select)(join, join_tab+1, 0);
|
||||
if (rc != NESTED_LOOP_OK && rc != NESTED_LOOP_NO_MORE_ROWS)
|
||||
return rc;
|
||||
|
||||
/* check for errors evaluating the condition */
|
||||
if (join->thd->is_error())
|
||||
return NESTED_LOOP_ERROR;
|
||||
|
||||
if (join->return_tab < join_tab)
|
||||
return NESTED_LOOP_OK;
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user