diff options
-rw-r--r-- | mysql-test/lib/init_db.sql | 2 | ||||
-rw-r--r-- | mysql-test/r/events.result | 6 | ||||
-rw-r--r-- | mysql-test/r/events_bugs.result | 15 | ||||
-rw-r--r-- | mysql-test/t/events_bugs.test | 25 | ||||
-rw-r--r-- | scripts/mysql_create_system_tables.sh | 2 | ||||
-rw-r--r-- | scripts/mysql_fix_privilege_tables.sql | 1 |
6 files changed, 46 insertions, 5 deletions
diff --git a/mysql-test/lib/init_db.sql b/mysql-test/lib/init_db.sql index 79a7c528370..a7079b0ac33 100644 --- a/mysql-test/lib/init_db.sql +++ b/mysql-test/lib/init_db.sql @@ -579,7 +579,7 @@ DROP PROCEDURE create_log_tables; CREATE TABLE event ( db char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', - name char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', + name char(64) CHARACTER SET utf8 NOT NULL default '', body longblob NOT NULL, definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', execute_at DATETIME default NULL, diff --git a/mysql-test/r/events.result b/mysql-test/r/events.result index ecaf1ec252e..89e7f66cc0d 100644 --- a/mysql-test/r/events.result +++ b/mysql-test/r/events.result @@ -237,7 +237,7 @@ SHOW CREATE TABLE mysql.event; Table Create Table event CREATE TABLE `event` ( `db` char(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', - `name` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', + `name` char(64) NOT NULL DEFAULT '', `body` longblob NOT NULL, `definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', `execute_at` datetime DEFAULT NULL, @@ -260,8 +260,10 @@ ALTER TABLE mysql.event MODIFY db char(64) character set utf8 collate utf8_bin d "This should work" SHOW EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status -events_test intact_check root@localhost RECURRING NULL 10 HOUR # # ENABLED +events_test intact_check root@localhost RECURRING NULL 10 HOUR # # ENABLED ALTER TABLE mysql.event MODIFY db char(64) character set cp1251 default ''; +Warnings: +Warning 1265 Data truncated for column 'db' at row 1 SELECT event_name FROM INFORMATION_SCHEMA.EVENTS; ERROR HY000: Cannot load from mysql.event. Table probably corrupted. See error log. ALTER TABLE mysql.event MODIFY db varchar(64) character set utf8 collate utf8_bin default ''; diff --git a/mysql-test/r/events_bugs.result b/mysql-test/r/events_bugs.result index 0b554f97b9a..28f1d22d4ee 100644 --- a/mysql-test/r/events_bugs.result +++ b/mysql-test/r/events_bugs.result @@ -1,5 +1,20 @@ create database if not exists events_test; use events_test; +CREATE EVENT lower_case ON SCHEDULE EVERY 1 MINUTE DO SELECT 1; +CREATE EVENT Lower_case ON SCHEDULE EVERY 2 MINUTE DO SELECT 2; +ERROR HY000: Event 'Lower_case' already exists +DROP EVENT Lower_case; +SET NAMES cp1251; +CREATE EVENT __1251 ON SCHEDULE EVERY 1 YEAR DO SELECT 100; +CREATE EVENT __1251 ON SCHEDULE EVERY 2 YEAR DO SELECT 200; +ERROR HY000: Event 'ДоЛеН_регистър_1251' already exists +DROP EVENT __1251; +SET NAMES utf8; +CREATE EVENT долен_регистър_утф8 ON SCHEDULE EVERY 3 YEAR DO SELECT 300; +CREATE EVENT ДОЛЕН_регистър_утф8 ON SCHEDULE EVERY 4 YEAR DO SELECT 400; +ERROR HY000: Event 'ДОЛЕН_регистър_утф8' already exists +DROP EVENT ДОЛЕН_регистър_утф8; +SET NAMES latin1; set global event_scheduler=0; "Wait a bit to settle down" delete from mysql.event; diff --git a/mysql-test/t/events_bugs.test b/mysql-test/t/events_bugs.test index 2d4374dcb41..b3394d03b3e 100644 --- a/mysql-test/t/events_bugs.test +++ b/mysql-test/t/events_bugs.test @@ -1,5 +1,28 @@ create database if not exists events_test; use events_test; + +# +# START - 16415: Events: event names are case sensitive +# +CREATE EVENT lower_case ON SCHEDULE EVERY 1 MINUTE DO SELECT 1; +--error ER_EVENT_ALREADY_EXISTS +CREATE EVENT Lower_case ON SCHEDULE EVERY 2 MINUTE DO SELECT 2; +DROP EVENT Lower_case; +SET NAMES cp1251; +CREATE EVENT __1251 ON SCHEDULE EVERY 1 YEAR DO SELECT 100; +--error ER_EVENT_ALREADY_EXISTS +CREATE EVENT __1251 ON SCHEDULE EVERY 2 YEAR DO SELECT 200; +DROP EVENT __1251; +SET NAMES utf8; +CREATE EVENT долен_регистър_утф8 ON SCHEDULE EVERY 3 YEAR DO SELECT 300; +--error ER_EVENT_ALREADY_EXISTS +CREATE EVENT ДОЛЕН_регистър_утф8 ON SCHEDULE EVERY 4 YEAR DO SELECT 400; +DROP EVENT ДОЛЕН_регистър_утф8; +SET NAMES latin1; +# +# END - 16415: Events: event names are case sensitive +# + # # Start - 16407: Events: Changes in sql_mode won't be taken into account # @@ -41,7 +64,7 @@ begin select get_lock('ee_16407_2', 60); insert into events_test.events_smode_test values('ee_16407_2','1980-19-02'); end| ---error 1292 +--error ER_TRUNCATED_WRONG_VALUE insert into events_smode_test values ('test','1980-19-02')| --echo "This is ok" create event ee_16407_3 on schedule every 60 second do diff --git a/scripts/mysql_create_system_tables.sh b/scripts/mysql_create_system_tables.sh index 287a83fbc99..a401e1d0159 100644 --- a/scripts/mysql_create_system_tables.sh +++ b/scripts/mysql_create_system_tables.sh @@ -775,7 +775,7 @@ if test ! -f $mdata/event.frm then c_ev="$c_ev CREATE TABLE event (" c_ev="$c_ev db char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default ''," - c_ev="$c_ev name char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default ''," + c_ev="$c_ev name char(64) CHARACTER SET utf8 NOT NULL default ''," c_ev="$c_ev body longblob NOT NULL," c_ev="$c_ev definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default ''," c_ev="$c_ev execute_at DATETIME default NULL," diff --git a/scripts/mysql_fix_privilege_tables.sql b/scripts/mysql_fix_privilege_tables.sql index 478d6b48c73..5b3cab16db2 100644 --- a/scripts/mysql_fix_privilege_tables.sql +++ b/scripts/mysql_fix_privilege_tables.sql @@ -671,6 +671,7 @@ ALTER TABLE event ADD sql_mode ) DEFAULT '' NOT NULL AFTER on_completion; UPDATE user SET Event_priv=Super_priv WHERE @hadEventPriv = 0; +ALTER TABLE event MODIFY name char(64) CHARACTER SET utf8 NOT NULL default ''; -- -- TRIGGER privilege |