Commit 360a5e3c authored by unknown's avatar unknown

After merge fix and a safety fix for handler


sql/sql_handler.cc:
  Move lock tables before conditions as lock tables may reopen tables
sql/sql_trigger.cc:
  After merge fix
parent 29fde528
......@@ -414,6 +414,13 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables,
}
tables->table=table;
HANDLER_TABLES_HACK(thd);
lock= mysql_lock_tables(thd, &tables->table, 1, 0, &not_used);
HANDLER_TABLES_HACK(thd);
if (!lock)
goto err0; // mysql_lock_tables() printed error message already
if (cond && ((!cond->fixed &&
cond->fix_fields(thd, &cond)) || cond->check_cols(1)))
goto err0;
......@@ -427,13 +434,6 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables,
}
}
HANDLER_TABLES_HACK(thd);
lock= mysql_lock_tables(thd, &tables->table, 1, 0, &not_used);
HANDLER_TABLES_HACK(thd);
if (!lock)
goto err0; // mysql_lock_tables() printed error message already
if (insert_fields(thd, &thd->lex->select_lex.context,
tables->db, tables->alias, &it, 0))
goto err0;
......
......@@ -1189,9 +1189,10 @@ bool Table_triggers_list::process_triggers(THD *thd, trg_event_type event,
save_query_tables_own_last= thd->lex->query_tables_own_last;
thd->lex->query_tables_own_last= 0;
res= check_table_access(thd, SELECT_ACL | UPDATE_ACL, &table_list, 0);
err_status= check_table_access(thd, SELECT_ACL | UPDATE_ACL,
&table_list, 0);
thd->lex->query_tables_own_last= save_query_tables_own_last;
if (res)
if (err_status)
{
sp_restore_security_context(thd, save_ctx);
return TRUE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment