1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Bug#16878 dump of trigger

- Pass "in_comment" variable on to new lex in sp_head::reset_lex
 - Add testcases for dumping and reloading trigger without BEGIN/END


mysql-test/r/mysqldump.result:
  Update test result
mysql-test/t/mysqldump.test:
  Add test for dumping trigger without begin/end, and test that the output from mysqldump can be reloaded.
sql/sp_head.cc:
  If already in a comment before parsing a substatement, set in_comment in the new lex as well.
  This will handle cases where the comment starts before the substatement, which is common in 
  output from mysqldump to mask away syntax not supported by earlier versions of MySQL.
  Ex:
  /*!50003 CREATE TRIGGER `tr1` BEFORE INSERT ON `t1` FOR EACH ROW
  set new.created=now() */;
  ^=== sp_head::reset_lex is called when already in comment
This commit is contained in:
unknown
2006-02-09 11:05:28 +01:00
parent f220f89212
commit 2caa5608c6
3 changed files with 54 additions and 0 deletions

View File

@ -2611,3 +2611,25 @@ UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
drop table t1;
create table t1 (a int, created datetime);
create table t2 (b int, created datetime);
create trigger tr1 before insert on t1 for each row set
new.created=now();
create trigger tr2 after insert on t1
for each row
begin
insert into t2 set b=new.a and created=new.created;
end|
drop trigger tr1;
drop trigger tr2;
drop table t1, t2;
show triggers;
Trigger Event Table Statement Timing Created sql_mode Definer
tr1 INSERT t1 set
new.created=now() BEFORE # root@localhost
tr2 INSERT t1 begin
insert into t2 set b=new.a and created=new.created;
end AFTER # root@localhost
drop trigger tr1;
drop trigger tr2;
drop table t1, t2;