mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
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
This commit is contained in:
@ -579,7 +579,7 @@ DROP PROCEDURE create_log_tables;
|
|||||||
|
|
||||||
CREATE TABLE event (
|
CREATE TABLE event (
|
||||||
db char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
|
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,
|
body longblob NOT NULL,
|
||||||
definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
|
definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
|
||||||
execute_at DATETIME default NULL,
|
execute_at DATETIME default NULL,
|
||||||
|
@ -237,7 +237,7 @@ SHOW CREATE TABLE mysql.event;
|
|||||||
Table Create Table
|
Table Create Table
|
||||||
event CREATE TABLE `event` (
|
event CREATE TABLE `event` (
|
||||||
`db` char(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
`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,
|
`body` longblob NOT NULL,
|
||||||
`definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
`definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
`execute_at` datetime DEFAULT NULL,
|
`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"
|
"This should work"
|
||||||
SHOW EVENTS;
|
SHOW EVENTS;
|
||||||
Db Name Definer Type Execute at Interval value Interval field Starts Ends Status
|
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 '';
|
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;
|
SELECT event_name FROM INFORMATION_SCHEMA.EVENTS;
|
||||||
ERROR HY000: Cannot load from mysql.event. Table probably corrupted. See error log.
|
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 '';
|
ALTER TABLE mysql.event MODIFY db varchar(64) character set utf8 collate utf8_bin default '';
|
||||||
|
@ -1,5 +1,20 @@
|
|||||||
create database if not exists events_test;
|
create database if not exists events_test;
|
||||||
use 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 <20><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_1251 ON SCHEDULE EVERY 1 YEAR DO SELECT 100;
|
||||||
|
CREATE EVENT <20><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_1251 ON SCHEDULE EVERY 2 YEAR DO SELECT 200;
|
||||||
|
ERROR HY000: Event 'ДоЛеН_регистър_1251' already exists
|
||||||
|
DROP EVENT <20><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_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;
|
set global event_scheduler=0;
|
||||||
"Wait a bit to settle down"
|
"Wait a bit to settle down"
|
||||||
delete from mysql.event;
|
delete from mysql.event;
|
||||||
|
@ -1,5 +1,28 @@
|
|||||||
create database if not exists events_test;
|
create database if not exists events_test;
|
||||||
use 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 <20><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_1251 ON SCHEDULE EVERY 1 YEAR DO SELECT 100;
|
||||||
|
--error ER_EVENT_ALREADY_EXISTS
|
||||||
|
CREATE EVENT <20><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_1251 ON SCHEDULE EVERY 2 YEAR DO SELECT 200;
|
||||||
|
DROP EVENT <20><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_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
|
# 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);
|
select get_lock('ee_16407_2', 60);
|
||||||
insert into events_test.events_smode_test values('ee_16407_2','1980-19-02');
|
insert into events_test.events_smode_test values('ee_16407_2','1980-19-02');
|
||||||
end|
|
end|
|
||||||
--error 1292
|
--error ER_TRUNCATED_WRONG_VALUE
|
||||||
insert into events_smode_test values ('test','1980-19-02')|
|
insert into events_smode_test values ('test','1980-19-02')|
|
||||||
--echo "This is ok"
|
--echo "This is ok"
|
||||||
create event ee_16407_3 on schedule every 60 second do
|
create event ee_16407_3 on schedule every 60 second do
|
||||||
|
@ -775,7 +775,7 @@ if test ! -f $mdata/event.frm
|
|||||||
then
|
then
|
||||||
c_ev="$c_ev CREATE TABLE event ("
|
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 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 body longblob NOT NULL,"
|
||||||
c_ev="$c_ev definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',"
|
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,"
|
c_ev="$c_ev execute_at DATETIME default NULL,"
|
||||||
|
@ -671,6 +671,7 @@ ALTER TABLE event ADD sql_mode
|
|||||||
) DEFAULT '' NOT NULL AFTER on_completion;
|
) DEFAULT '' NOT NULL AFTER on_completion;
|
||||||
|
|
||||||
UPDATE user SET Event_priv=Super_priv WHERE @hadEventPriv = 0;
|
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
|
-- TRIGGER privilege
|
||||||
|
Reference in New Issue
Block a user