1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

Auto-merge from mysql-5.1-bugteam.

This commit is contained in:
Dmitry Shulga
2010-09-07 16:00:41 +07:00
3 changed files with 78 additions and 0 deletions

View File

@ -2006,6 +2006,7 @@ bool Table_triggers_list::process_triggers(THD *thd,
bool err_status;
Sub_statement_state statement_state;
sp_head *sp_trigger= bodies[event][time_type];
SELECT_LEX *save_current_select;
if (sp_trigger == NULL)
return FALSE;
@ -2029,11 +2030,19 @@ bool Table_triggers_list::process_triggers(THD *thd,
thd->reset_sub_statement_state(&statement_state, SUB_STMT_TRIGGER);
/*
Reset current_select before call execute_trigger() and
restore it after return from one. This way error is set
in case of failure during trigger execution.
*/
save_current_select= thd->lex->current_select;
thd->lex->current_select= NULL;
err_status=
sp_trigger->execute_trigger(thd,
&trigger_table->s->db,
&trigger_table->s->table_name,
&subject_table_grants[event][time_type]);
thd->lex->current_select= save_current_select;
thd->restore_sub_statement_state(&statement_state);