From: Mayank Prasad Date: March 21 2011 4:48pm Subject: bzr push into mysql-5.1 branch (mayank.prasad:3621 to 3622) Bug#11751148 List-Archive: http://lists.mysql.com/commits/133435 X-Bug: 11751148 Message-Id: <201103211649.p2LGn05D024491@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3622 Mayank Prasad 2011-03-21 Bug #11751148 : show events shows events in other schema Issue: ------ Due to prefix match, database like 'k' was matching with 'ka' and events of 'ka' we getting displayed for 'show event' of 'k'. Resolution: ----------- Scan for listing of events in a schema is made to be done on exact match of database (schema) name instead of just prefix. @ mysql-test/r/events_bugs.result modified expected file with the expected results. @ mysql-test/t/events_bugs.test added a test case to reproduce the scenario. @ sql/event_db_repository.cc Scan for schema name is made to be done on exact db name match. modified: mysql-test/r/events_bugs.result mysql-test/t/events_bugs.test sql/event_db_repository.cc 3621 Ramil Kalimullin 2011-03-21 [merge] Null merge of the backported fix for bug#51875/#11759554 from mysq-5.0. === modified file 'mysql-test/r/events_bugs.result' --- a/mysql-test/r/events_bugs.result 2009-03-11 20:30:56 +0000 +++ b/mysql-test/r/events_bugs.result 2011-03-21 16:02:47 +0000 @@ -747,6 +747,15 @@ event_name originator ev1 4294967295 DROP EVENT ev1; SET GLOBAL server_id = @old_server_id; +CREATE DATABASE event_test1; +USE event_test1; +CREATE EVENT ev1 ON SCHEDULE EVERY 1 DAY DO SELECT 1; +CREATE DATABASE event_test2; +USE event_test2; +SHOW EVENTS; +Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation +DROP DATABASE event_test1; +DROP DATABASE event_test2; DROP DATABASE events_test; SET GLOBAL event_scheduler= 'ON'; SET @@global.concurrent_insert= @concurrent_insert; === modified file 'mysql-test/t/events_bugs.test' --- a/mysql-test/t/events_bugs.test 2009-03-11 20:30:56 +0000 +++ b/mysql-test/t/events_bugs.test 2011-03-21 16:02:47 +0000 @@ -1221,6 +1221,21 @@ SELECT event_name, originator FROM INFOR DROP EVENT ev1; SET GLOBAL server_id = @old_server_id; +# +# Bug#11751148: show events shows events in other schema +# + +CREATE DATABASE event_test1; +USE event_test1; +CREATE EVENT ev1 ON SCHEDULE EVERY 1 DAY DO SELECT 1; +CREATE DATABASE event_test2; +USE event_test2; +# Following show events should not show ev1 +SHOW EVENTS; +DROP DATABASE event_test1; +DROP DATABASE event_test2; + + ########################################################################### # # End of tests === modified file 'sql/event_db_repository.cc' --- a/sql/event_db_repository.cc 2010-01-22 09:38:21 +0000 +++ b/sql/event_db_repository.cc 2011-03-21 16:02:47 +0000 @@ -424,7 +424,7 @@ Event_db_repository::index_read_for_db_f key_copy(key_buf, event_table->record[0], key_info, key_len); if (!(ret= event_table->file->index_read_map(event_table->record[0], key_buf, (key_part_map)1, - HA_READ_PREFIX))) + HA_READ_KEY_EXACT))) { DBUG_PRINT("info",("Found rows. Let's retrieve them. ret=%d", ret)); do No bundle (reason: useless for push emails).