Commit 6e9cd55d authored by unknown's avatar unknown
Browse files

fix for bug#16415 Events names are case sensitive


mysql-test/lib/init_db.sql:
  make name not binary, then event names won't be case sensitive
mysql-test/r/events.result:
  output fix
mysql-test/r/events_bugs.result:
  update result
mysql-test/t/events_bugs.test:
  test case for bug #16415 events' names are case sensitive
scripts/mysql_create_system_tables.sh:
  make name not binary, then event names won't be case sensitive
scripts/mysql_fix_privilege_tables.sql:
  make name not binary, then event names won't be case sensitive
parent c78dc0cb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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,
+4 −2
Original line number Diff line number Diff line
@@ -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,
@@ -262,6 +262,8 @@ 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
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 '';
+15 −0
Original line number Diff line number Diff line
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;
+24 −1
Original line number Diff line number Diff line
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
+1 −1
Original line number Diff line number Diff line
@@ -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,"
Loading