Description:
I am crating a new report with reference to
http://bugs.mysql.com/bug.php?id=30631
The 'solution' was to document that comments cannot be nested. This is not safisfactory! I reported a difference in behaviour between 5.0 and 5.1. The 5.0 behaviour is preferable!
5.1 implementation results in a serious risk that dumps will not restore 'stored programs'!
How to repeat:
DELIMITER $$
CREATE PROCEDURE `spdumptest`.`sp1`()
BEGIN
-- a comment
END$$
CREATE PROCEDURE `spdumptest`.`sp2`()
BEGIN
#a comment
END$$
CREATE PROCEDURE `spdumptest`.`sp3`()
BEGIN
/* a comment */
END$$
DELIMITER ;
.. now DUMP the database. Most programs including mysqldump will generate SQL for sp3 like
/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp3`()
BEGIN
/* a comment */
END */$$
This fails to restore in 5.1.33 but restores perfectly in 5.0.77!
Suggested fix:
1) It is obviously wrong that comments cannot be nested. They can at least like this
/*
comment
-- comment
*/
.. so at least docs should be corrected. *sometimes* comments can be nested!
2) As backup tools will use "conditional comments" it is not safe to use /*this comment style*/ inside stored programs (including Views), as they will fail to restore from backup created wwith msot backup tools. This should be made much more clear in documentation!
3) preferred: restore the 5.0 behaviour to later versions!