List:Commits« Previous MessageNext Message »
From:Mayank Prasad Date:March 21 2011 4:02pm
Subject:bzr commit into mysql-5.1 branch (mayank.prasad:3622) Bug#11751148
View as plain text  
#At file:///home/mayank/mysql-server/mysql-11751148/ based on revid:ramil@stripped

 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
=== 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


Attachment: [text/bzr-bundle] bzr/mayank.prasad@oracle.com-20110321160247-blla8r4c2f38w45d.bundle
Thread
bzr commit into mysql-5.1 branch (mayank.prasad:3622) Bug#11751148Mayank Prasad21 Mar