mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-21147 Assertion `marked_for_read()' upon UPDATE on versioned table via view
Unit prepare prematurely fixed field which must be fixed via setup_conds() to correctly update table->covering_keys. Call vers_setup_conds() directly instead, because actually everything else is not needed.
This commit is contained in:
@ -707,8 +707,15 @@ bool mysql_derived_prepare(THD *thd, LEX *lex, TABLE_LIST *derived)
|
||||
case SQLCOM_DELETE_MULTI:
|
||||
case SQLCOM_UPDATE:
|
||||
case SQLCOM_UPDATE_MULTI:
|
||||
if ((res= unit->prepare(derived, derived->derived_result, 0)))
|
||||
if ((res= first_select->vers_setup_conds(thd,
|
||||
derived->merge_underlying_list)))
|
||||
goto exit;
|
||||
if (derived->merge_underlying_list->where)
|
||||
{
|
||||
Query_arena_stmt on_stmt_arena(thd);
|
||||
derived->where= and_items(thd, derived->where,
|
||||
derived->merge_underlying_list->where);
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user