| Bug #50343 | mysqldump breaks on restore if last line of stored procedure is a comment | ||
|---|---|---|---|
| Submitted: | 14 Jan 2010 18:18 | Modified: | 26 Feb 2010 8:07 |
| Reporter: | Ariel Antebi | Email Updates: | |
| Status: | No Feedback | Impact on me: | |
| Category: | MySQL Server: mysqldump Command-line Client | Severity: | S3 (Non-critical) |
| Version: | 5.1.31, 5.1.42 | OS: | Linux (Ubuntu) |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | FUNCTION, MySQL, mysqldump | ||
[14 Jan 2010 18:18]
Ariel Antebi
[14 Jan 2010 18:50]
Valeriy Kravchuk
Thank you for the problem report. Please, check with a newer version, 5.1.42, and inform about the results.
[15 Jan 2010 22:11]
Ariel Antebi
Yep, still happens. It breaks anything that comes after the function. ./mysqldump --version mysqldump Ver 10.13 Distrib 5.1.42, for unknown-linux-gnu (x86_64)
[17 Jan 2010 6:52]
Sveta Smirnova
Thank you for the report. Please provide full statement you used to create stored procedure. Or output of SELECT * FROM mysql.proc before execution of mysqldump.
[17 Jan 2010 13:46]
Ariel Antebi
I made a db `test` with a table `local` with 1 row, then made a function `test`: SELECT * FROM test.local; -- Comment At this point I did a dump and loaded the db from dump as described above and it worked. I then created `test2` function so there would be some SQL after `test`: SELECT * FROM test.local; And this time reloading from the dumpfile produced an error.
[26 Jan 2010 8:07]
Sveta Smirnova
Thank you for the feedback.
I can not repeat described behavior with following test:
$mysql51 test
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1061
Server version: 5.1.44-debug Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> drop procedure p1;
ERROR 1305 (42000): PROCEDURE test.p1 does not exist
mysql> drop procedure p2;
ERROR 1305 (42000): PROCEDURE test.p2 does not exist
mysql> delimiter |
mysql> create procedure p1()
-> begin
-> select 1;
-> -- This function selects some data
-> end
-> |
Query OK, 0 rows affected (0.07 sec)
mysql>
mysql> create procedure p2()
-> begin
-> select 2;
-> end
-> |
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql> delimiter ;
mysql> \q
Bye
$mysqldump51 --routines test | mysql511 test
mysql> select * from mysql.proc where db='test' and specific_name like 'p%'\G
*************************** 1. row ***************************
db: test
name: p1
type: PROCEDURE
specific_name: p1
language: SQL
sql_data_access: CONTAINS_SQL
is_deterministic: NO
security_type: DEFINER
param_list:
returns:
body: begin
select 1;
end
definer: root@localhost
created: 2010-01-26 11:04:14
modified: 2010-01-26 11:04:14
sql_mode:
comment:
character_set_client: latin1
collation_connection: latin1_swedish_ci
db_collation: utf8_general_ci
body_utf8: begin
select 1;
end
*************************** 2. row ***************************
db: test
name: p2
type: PROCEDURE
specific_name: p2
language: SQL
sql_data_access: CONTAINS_SQL
is_deterministic: NO
security_type: DEFINER
param_list:
returns:
body: begin
select 2;
end
definer: root@localhost
created: 2010-01-26 11:04:14
modified: 2010-01-26 11:04:14
sql_mode:
comment:
character_set_client: latin1
collation_connection: latin1_swedish_ci
db_collation: utf8_general_ci
body_utf8: begin
select 2;
end
2 rows in set (0.50 sec)
mysql> call p1();
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
mysql> call p2();
+---+
| 2 |
+---+
| 2 |
+---+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Please provide terminal session showing the problem like I did.
[27 Feb 2010 0:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
