Commit 8c86f8e4 authored by unknown's avatar unknown

Post-review fix for BUG#12712: SET AUTOCOMMIT should fail within SP/functions/triggers


mysql-test/r/sp.result:
  Added missing drop table.
mysql-test/t/sp.test:
  Added missing drop table.
sql/sp_head.h:
  Post-review fix for autocommit check in SPs and triggers.
sql/sql_yacc.yy:
  Post-review fix for autocommit check in SPs and triggers.
parent 38c43ecd
...@@ -3323,6 +3323,7 @@ drop function bug12379| ...@@ -3323,6 +3323,7 @@ drop function bug12379|
drop procedure bug12379_1| drop procedure bug12379_1|
drop procedure bug12379_2| drop procedure bug12379_2|
drop procedure bug12379_3| drop procedure bug12379_3|
drop table t3|
drop procedure if exists bug13124| drop procedure if exists bug13124|
create procedure bug13124() create procedure bug13124()
begin begin
......
...@@ -4161,6 +4161,7 @@ drop function bug12379| ...@@ -4161,6 +4161,7 @@ drop function bug12379|
drop procedure bug12379_1| drop procedure bug12379_1|
drop procedure bug12379_2| drop procedure bug12379_2|
drop procedure bug12379_3| drop procedure bug12379_3|
drop table t3|
# #
# Bug #13124 Stored Procedure using SELECT INTO crashes server # Bug #13124 Stored Procedure using SELECT INTO crashes server
......
...@@ -285,7 +285,8 @@ public: ...@@ -285,7 +285,8 @@ public:
my_error(ER_SP_NO_RETSET, MYF(0), where); my_error(ER_SP_NO_RETSET, MYF(0), where);
else if (m_flags & HAS_SET_AUTOCOMMIT_STMT) else if (m_flags & HAS_SET_AUTOCOMMIT_STMT)
my_error(ER_SP_CANT_SET_AUTOCOMMIT, MYF(0)); my_error(ER_SP_CANT_SET_AUTOCOMMIT, MYF(0));
return test(m_flags & (CONTAINS_DYNAMIC_SQL|MULTI_RESULTS)); return test(m_flags &
(CONTAINS_DYNAMIC_SQL|MULTI_RESULTS|HAS_SET_AUTOCOMMIT_STMT));
} }
private: private:
......
...@@ -8005,15 +8005,14 @@ internal_variable_name: ...@@ -8005,15 +8005,14 @@ internal_variable_name:
if (tmp == &sys_time_zone && if (tmp == &sys_time_zone &&
lex->add_time_zone_tables_to_query_tables(YYTHD)) lex->add_time_zone_tables_to_query_tables(YYTHD))
YYABORT; YYABORT;
else else if (spc && tmp == &sys_autocommit)
if (spc && tmp == &sys_autocommit) {
{ /*
/* We don't allow setting AUTOCOMMIT from a stored function
We don't allow setting AUTOCOMMIT from a stored function or trigger.
or trigger. */
*/ lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT; }
}
} }
else else
{ {
......
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