From: Jorgen Loland Date: June 22 2009 12:16pm Subject: bzr commit into mysql-6.0-backup branch (jorgen.loland:2827) Bug#45249 List-Archive: http://lists.mysql.com/commits/76837 X-Bug: 45249 Message-Id: <20090622121639.D9D213B8024@atum06.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0742452688==" --===============0742452688== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///localhome/jl208045/mysql/mysql-6.0-backup-45249/ based on revid:jorgen.loland@stripped 2827 Jorgen Loland 2009-06-22 Bug#45249 - Backup database fails with error "Can't enumerate stored routines in database" Before, BACKUP would fail with an error if a database contained a function with a name already used (e.g, 'y'). The reason for this was that the when BACKUP queried the server for information about this function, the server reported a warning. A warning was automatically treated by BACKUP as failure. Now, the warning is pushed to the BACKUP error stack, and BACKUP continues. @ mysql-test/suite/backup/r/backup_functions.result Add function with same name as a native function ('y'). This will create a warning for BACKUP when processing the function. This warning should not make BACKUP fail. @ mysql-test/suite/backup/t/backup_functions.test Add function with same name as a native function ('y'). This will create a warning for BACKUP when processing the function. This warning should not make BACKUP fail. @ mysql-test/suite/backup/t/backup_views.test Link error message to a bug. @ sql/si_objects.cc Push warning from server to BACKUP error stack without automatically failing when query for stored procedure information succeeds with a warning. modified: mysql-test/suite/backup/r/backup_functions.result mysql-test/suite/backup/t/backup_functions.test mysql-test/suite/backup/t/backup_views.test sql/si_objects.cc === modified file 'mysql-test/suite/backup/r/backup_functions.result' --- a/mysql-test/suite/backup/r/backup_functions.result 2009-03-05 20:05:02 +0000 +++ b/mysql-test/suite/backup/r/backup_functions.result 2009-06-22 12:16:31 +0000 @@ -93,9 +93,19 @@ creating stored functions which is not d CREATE FUNCTION square_area(side tinyINT) RETURNS FLOAT RETURN side * side; +CREATE FUNCTION y(i INT) +RETURNS INT +RETURN i * 2; +Warnings: +Note 1585 This function 'y' has the same name as a native function SELECT square_area(11); square_area(11) 121 +SELECT bup_sfs.y(1); +bup_sfs.y(1) +2 +Warnings: +Note 1585 This function 'y' has the same name as a native function showing objects and create statements. SHOW CREATE FUNCTION number_of_players;; Function number_of_players @@ -179,6 +189,17 @@ Comment character_set_client latin1 collation_connection latin1_swedish_ci Database Collation latin1_swedish_ci +Db bup_sfs +Name y +Type FUNCTION +Definer # +Modified # +Created # +Security_type DEFINER +Comment +character_set_client latin1 +collation_connection latin1_swedish_ci +Database Collation latin1_swedish_ci backup data BACKUP DATABASE bup_sfs TO 'bup_sfs.bak'; backup_id @@ -189,6 +210,8 @@ Restoring Database RESTORE FROM 'bup_sfs.bak'; backup_id # +Warnings: +# 1585 This function 'y' has the same name as a native function SELECT @@SQL_MODE; @@SQL_MODE STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER @@ -275,12 +298,32 @@ Comment character_set_client latin1 collation_connection latin1_swedish_ci Database Collation latin1_swedish_ci +Db bup_sfs +Name y +Type FUNCTION +Definer # +Modified # +Created # +Security_type DEFINER +Comment +character_set_client latin1 +collation_connection latin1_swedish_ci +Database Collation latin1_swedish_ci +Warnings: +Level Note +Code 1585 +Message This function 'y' has the same name as a native function INSERT INTO bup_sfs.players VALUES (57,'brown','1971-08-17','M','1985'),(95,'Miller','1963-05-14','M','1972'); INSERT INTO bup_sfs.matches VALUES(11,2,6,0,3); SELECT square_area(12); square_area(12) 144 +SELECT bup_sfs.y(2); +bup_sfs.y(2) +4 +Warnings: +Note 1585 This function 'y' has the same name as a native function SELECT number_of_players(); number_of_players() 8 @@ -301,6 +344,8 @@ SET SQL_MODE=ANSI; RESTORE FROM 'bup_sfs.bak'; backup_id # +Warnings: +# 1585 This function 'y' has the same name as a native function SELECT @@SQL_MODE; @@SQL_MODE REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI @@ -374,9 +419,29 @@ Comment character_set_client latin1 collation_connection latin1_swedish_ci Database Collation latin1_swedish_ci +Db bup_sfs +Name y +Type FUNCTION +Definer # +Modified # +Created # +Security_type DEFINER +Comment +character_set_client latin1 +collation_connection latin1_swedish_ci +Database Collation latin1_swedish_ci +Warnings: +Level Note +Code 1585 +Message This function 'y' has the same name as a native function SELECT square_area(13); square_area(13) 169 +SELECT bup_sfs.y(3); +bup_sfs.y(3) +6 +Warnings: +Note 1585 This function 'y' has the same name as a native function SELECT number_of_players(); number_of_players() 6 @@ -389,6 +454,8 @@ SET SQL_MODE=MAXDB; RESTORE FROM 'bup_sfs.bak'; backup_id # +Warnings: +# 1585 This function 'y' has the same name as a native function SELECT @@SQL_MODE; @@SQL_MODE PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER @@ -462,9 +529,29 @@ Comment character_set_client latin1 collation_connection latin1_swedish_ci Database Collation latin1_swedish_ci +Db bup_sfs +Name y +Type FUNCTION +Definer # +Modified # +Created # +Security_type DEFINER +Comment +character_set_client latin1 +collation_connection latin1_swedish_ci +Database Collation latin1_swedish_ci +Warnings: +Level Note +Code 1585 +Message This function 'y' has the same name as a native function SELECT square_area(14); square_area(14) 196 +SELECT bup_sfs.y(4); +bup_sfs.y(4) +8 +Warnings: +Note 1585 This function 'y' has the same name as a native function SELECT number_of_players(); number_of_players() 6 @@ -484,6 +571,8 @@ SET SQL_MODE=' '; RESTORE FROM 'bup_sfs.bak'; backup_id # +Warnings: +# 1585 This function 'y' has the same name as a native function SELECT @@SQL_MODE; @@SQL_MODE @@ -574,9 +663,29 @@ Comment character_set_client latin1 collation_connection latin1_swedish_ci Database Collation latin1_swedish_ci +Db bup_sfs +Name y +Type FUNCTION +Definer # +Modified # +Created # +Security_type DEFINER +Comment +character_set_client latin1 +collation_connection latin1_swedish_ci +Database Collation latin1_swedish_ci +Warnings: +Level Note +Code 1585 +Message This function 'y' has the same name as a native function SELECT square_area(20); square_area(20) 400 +SELECT bup_sfs.y(5); +bup_sfs.y(5) +10 +Warnings: +Note 1585 This function 'y' has the same name as a native function SELECT number_of_players(); number_of_players() 6 === modified file 'mysql-test/suite/backup/t/backup_functions.test' --- a/mysql-test/suite/backup/t/backup_functions.test 2009-03-10 07:58:27 +0000 +++ b/mysql-test/suite/backup/t/backup_functions.test 2009-06-22 12:16:31 +0000 @@ -124,17 +124,22 @@ SELECT number_of_players1(); SELECT fcount(); SELECT paymentno,amount, dollars(amount) FROM penalties; --echo creating stored functions which is not dependent on table -#BUG#34868 Backup: restore failure if two procedures but this doesn't happen for -# procedures in database, which has atleast one table - CREATE FUNCTION square_area(side tinyINT) RETURNS FLOAT RETURN side * side; +# 'y' is used as a native function name and gives a warning for during +# BACKUP/RESTORE. Check that BACKUP/RESTORE work for this function +# name as well. See BUG#45249 +CREATE FUNCTION y(i INT) +RETURNS INT +RETURN i * 2; + #excercise function SELECT square_area(11); +SELECT bup_sfs.y(1); #Show data and create statements. --echo showing objects and create statements. @@ -179,6 +184,7 @@ INSERT INTO bup_sfs.players VALUES INSERT INTO bup_sfs.matches VALUES(11,2,6,0,3); SELECT square_area(12); +SELECT bup_sfs.y(2); SELECT number_of_players(); SELECT number_of_players1(); SELECT fcount(); @@ -207,6 +213,7 @@ SELECT @@SQL_MODE; #properly or not. SELECT square_area(13); +SELECT bup_sfs.y(3); SELECT number_of_players(); SELECT fcount(); DROP DATABASE bup_sfs; @@ -230,6 +237,7 @@ SELECT @@SQL_MODE; #or not. SELECT square_area(14); +SELECT bup_sfs.y(4); SELECT number_of_players(); SELECT fcount(); SELECT paymentno,amount, dollars(amount) FROM penalties WHERE paymentno >=3; @@ -254,6 +262,7 @@ describe matches; # ornot SELECT square_area(20); +SELECT bup_sfs.y(5); SELECT number_of_players(); SELECT fcount(); SELECT paymentno,amount, dollars(amount) FROM penalties; === modified file 'mysql-test/suite/backup/t/backup_views.test' --- a/mysql-test/suite/backup/t/backup_views.test 2009-03-10 07:58:27 +0000 +++ b/mysql-test/suite/backup/t/backup_views.test 2009-06-22 12:16:31 +0000 @@ -359,7 +359,7 @@ ALTER VIEW alter1 AS SELECT 6; --error ER_VIEW_INVALID SELECT * FROM alter2; -#fails +#Fails due to bug#45268 --error ER_BACKUP_GET_META_VIEW BACKUP DATABASE bup_db1 TO 'bup_alterview.bak'; === modified file 'sql/si_objects.cc' --- a/sql/si_objects.cc 2009-05-22 13:46:54 +0000 +++ b/sql/si_objects.cc 2009-06-22 12:16:31 +0000 @@ -1265,12 +1265,12 @@ Iterator *create_row_set_iterator(THD *t Ed_result_set *ed_result_set; Iterator *it; - if (run_service_interface_sql(thd, &ed_connection, query) || - ed_connection.get_warn_count()) - { - /* There should be no warnings. */ + if (run_service_interface_sql(thd, &ed_connection, query)) + /* Query failed with an error */ return NULL; - } + else if(ed_connection.get_warn_count()) + /* Push warnings to BACKUP's error stack */ + thd->warning_info->append_warnings(thd, ed_connection.get_warn_list()); DBUG_ASSERT(ed_connection.get_field_count()); @@ -2052,15 +2052,12 @@ bool Stored_program_obj::do_serialize(TH "SHOW CREATE " << get_type_name() << " `" << &m_db_name << "`.`" << &m_id << "`"; - if (run_service_interface_sql(thd, &ed_connection, s_stream.lex_string()) || - ed_connection.get_warn_count()) - { - /* - There should be no warnings. A warning means that serialization has - failed. - */ + if (run_service_interface_sql(thd, &ed_connection, s_stream.lex_string())) + /* Query failed with an error */ DBUG_RETURN(TRUE); - } + else if(ed_connection.get_warn_count()) + /* Push warnings to BACKUP's error stack */ + thd->warning_info->append_warnings(thd, ed_connection.get_warn_list()); ed_result_set= ed_connection.use_result_set(); --===============0742452688== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/jorgen.loland@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: jorgen.loland@stripped # target_branch: file:///localhome/jl208045/mysql/mysql-6.0-backup-\ # 45249/ # testament_sha1: cff5d9622e2fc27bfb1da4a4261ceb0ec33a2f90 # timestamp: 2009-06-22 14:16:39 +0200 # source_branch: file:///localhome/jl208045/mysql/nuts/ # base_revision_id: jorgen.loland@stripped\ # xgeqsavcx1sikzwb # # Begin bundle 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 Rws7m9OaeDfwTAqF/i7kinChIMDTRVY= --===============0742452688==--