On 3/29/2011 19:09, John G. Heim wrote:
I would like to use mysqldump to get a copy of the code for a stored
procedure in a format that is similar to the code I used to create it.
The problem is that I'm blind and I have to listen to the code to debug
it. I think I have a file containing the code that I used to create the
stored procedure but I want to make absolutely sure.

This is what I've tried:

mysqldump --p --routines --no-create-info --no-data --no-create-db
--skip-opt --skip-comments --compatible=ansi --result=routines.sql
<database>

My problem is that generates a file with a lot of lines I don't
understand. for example:

/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003
PROCEDURE `TIMETABLE_SYNC`()

That appears to be the line to create the stored procedure
'timetable_sync'. But what's with all the other stuff on that line? Can
i get rid of it?




As Claudio mentioned, those are version-sensitive comments. In order for a MySQL server to not ignore the comment, it must be a version equal to or greater than the value tagged in the comment.

For example, stored procedures did not exist before version 5.0.3 . So all of the stored procedure will be enclosed with comments that look like

/*!50003   */

We enhanced the security of the stored procedures themselves by adding the DEFINER= option to the definition. We did this in version 5.0.20. That is why that part of the stored procedure was dumped using the comment tags

/*!50020   */

Unfortunately, I have no way at this time to separate the version-specific comments from the rest of the dump. Perhaps someone better than I at using grep, sed, or awk could produce a script to strip those comments and share with the list?

Yours,
--
Shawn Green
MySQL Principal Technical Support Engineer
Oracle USA, Inc. - Hardware and Software, Engineered to Work Together.
Office: Blountville, TN

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to