Loading mysql-test/lib/init_db.sql +1 −1 Original line number Diff line number Diff line Loading @@ -596,7 +596,7 @@ CREATE TABLE event ( status ENUM('ENABLED','DISABLED') NOT NULL default 'ENABLED', on_completion ENUM('DROP','PRESERVE') NOT NULL default 'DROP', comment char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', PRIMARY KEY (db,name) PRIMARY KEY (definer, db, name) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'Events'; CREATE DATABASE IF NOT EXISTS cluster_replication; Loading mysql-test/r/events.result +81 −1 Original line number Diff line number Diff line Loading @@ -34,13 +34,93 @@ create table t_event3 (a int, b float); drop event if exists event3; Warnings: Note 1305 Event event3 does not exist create event event3 on schedule every 50 + 10 minute starts date_add("20010101", interval 5 minute) ends date_add("20151010", interval 5 day) comment "portokala_comment" DO insert into t_event3 values (unix_timestamp(), rand()); create event event3 on schedule every 50 + 10 minute starts date_add("20100101", interval 5 minute) ends date_add("20151010", interval 5 day) comment "portokala_comment" DO insert into t_event3 values (unix_timestamp(), rand()); set max_allowed_packet=128000000; select count(*) from t_event3; count(*) 0 drop event event3; drop table t_event3; create event one_event on schedule every 10 second do select 123; SHOW EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status events_test one_event root@localhost RECURRING NULL 10 INTERVAL_SECOND # # ENABLED SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT from information_schema.events; EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT NULL events_test one_event root@localhost select 123 RECURRING NULL 10 INTERVAL_SECOND ENABLED NOT PRESERVE CREATE DATABASE events_test2; CREATE USER ev_test@localhost; GRANT ALL ON events_test.* to ev_test@localhost; GRANT ALL on events_test2.* to ev_test@localhost; REVOKE EVENT ON events_test2.* FROM ev_test@localhost; REVOKE PROCESS on *.* from ev_test@localhost; select "NEW CONNECTION"; NEW CONNECTION NEW CONNECTION SELECT USER(), DATABASE(); USER() DATABASE() ev_test@localhost events_test2 SHOW GRANTS; Grants for ev_test@localhost GRANT USAGE ON *.* TO 'ev_test'@'localhost' GRANT ALL PRIVILEGES ON `events_test`.* TO 'ev_test'@'localhost' GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `events_test2`.* TO 'ev_test'@'localhost' "Here comes an error:"; SHOW EVENTS; ERROR 42000: Access denied for user 'ev_test'@'localhost' to database 'events_test2' USE events_test; "Now the list should be empty:"; SHOW EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status select concat("Let's create some new events from the name of ",user()); concat("Let's create some new events from the name of ",user()) Let's create some new events from the name of ev_test@localhost create event one_event on schedule every 20 second do select 123; create event two_event on schedule every 20 second on completion not preserve comment "two event" do select 123; create event three_event on schedule every 20 second on completion preserve comment "three event" do select 123; "Now we should see 3 events:"; SHOW EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status events_test one_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test three_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test two_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED "This should show us only 3 events:"; SHOW FULL EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status events_test one_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test three_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test two_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED "This should show us only 2 events:"; SHOW FULL EVENTS LIKE 't%event'; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status events_test three_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test two_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED "This should show us no events:"; SHOW FULL EVENTS FROM test LIKE '%'; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status DROP DATABASE events_test2; "should see 1 event:"; SHOW EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status events_test one_event root@localhost RECURRING NULL 10 INTERVAL_SECOND # # ENABLED "we should see 4 events now:"; SHOW FULL EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status events_test one_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test three_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test two_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test one_event root@localhost RECURRING NULL 10 INTERVAL_SECOND # # ENABLED SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT from information_schema.events; EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT NULL events_test one_event ev_test@localhost select 123 RECURRING NULL 20 INTERVAL_SECOND ENABLED NOT PRESERVE NULL events_test three_event ev_test@localhost select 123 RECURRING NULL 20 INTERVAL_SECOND ENABLED PRESERVE three event NULL events_test two_event ev_test@localhost select 123 RECURRING NULL 20 INTERVAL_SECOND ENABLED NOT PRESERVE two event NULL events_test one_event root@localhost select 123 RECURRING NULL 10 INTERVAL_SECOND ENABLED NOT PRESERVE drop event one_event; drop event two_event; drop event three_event; drop user ev_test@localhost; drop event one_event; create event e_26 on schedule at '2017-01-01 00:00:00' disable do set @a = 5; select db, name, body, definer, convert_tz(execute_at, 'UTC', 'SYSTEM'), on_completion from mysql.event; db name body definer convert_tz(execute_at, 'UTC', 'SYSTEM') on_completion Loading mysql-test/r/information_schema.result +11 −2 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ COLLATION_CHARACTER_SET_APPLICABILITY COLUMNS COLUMN_PRIVILEGES ENGINES EVENTS KEY_COLUMN_USAGE PARTITIONS PLUGINS Loading Loading @@ -734,7 +735,7 @@ CREATE TABLE t_crashme ( f1 BIGINT); CREATE VIEW a1 (t_CRASHME) AS SELECT f1 FROM t_crashme GROUP BY f1; CREATE VIEW a2 AS SELECT t_CRASHME FROM a1; count(*) 109 110 drop view a2, a1; drop table t_crashme; select table_schema,table_name, column_name from Loading @@ -742,6 +743,8 @@ information_schema.columns where data_type = 'longtext'; table_schema table_name column_name information_schema COLUMNS COLUMN_TYPE information_schema EVENTS EVENT_BODY information_schema EVENTS SQL_MODE information_schema PARTITIONS PARTITION_EXPRESSION information_schema PARTITIONS SUBPARTITION_EXPRESSION information_schema PARTITIONS PARTITION_DESCRIPTION Loading @@ -756,6 +759,12 @@ information_schema VIEWS VIEW_DEFINITION select table_name, column_name, data_type from information_schema.columns where data_type = 'datetime'; table_name column_name data_type EVENTS EXECUTE_AT datetime EVENTS STARTS datetime EVENTS ENDS datetime EVENTS CREATED datetime EVENTS LAST_ALTERED datetime EVENTS LAST_EXECUTED datetime PARTITIONS CREATE_TIME datetime PARTITIONS UPDATE_TIME datetime PARTITIONS CHECK_TIME datetime Loading Loading @@ -817,7 +826,7 @@ flush privileges; SELECT table_schema, count(*) FROM information_schema.TABLES GROUP BY TABLE_SCHEMA; table_schema count(*) cluster_replication 1 information_schema 19 information_schema 20 mysql 21 create table t1 (i int, j int); create trigger trg1 before insert on t1 for each row Loading mysql-test/r/information_schema_db.result +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ COLLATION_CHARACTER_SET_APPLICABILITY COLUMNS COLUMN_PRIVILEGES ENGINES EVENTS KEY_COLUMN_USAGE PARTITIONS PLUGINS Loading mysql-test/r/system_mysql_db.result +1 −1 Original line number Diff line number Diff line Loading @@ -204,7 +204,7 @@ event CREATE TABLE `event` ( `status` enum('ENABLED','DISABLED') NOT NULL default 'ENABLED', `on_completion` enum('DROP','PRESERVE') NOT NULL default 'DROP', `comment` char(64) character set utf8 collate utf8_bin NOT NULL default '', PRIMARY KEY (`db`,`name`) PRIMARY KEY (`definer`,`db`,`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events' show create table general_log; Table Create Table Loading Loading
mysql-test/lib/init_db.sql +1 −1 Original line number Diff line number Diff line Loading @@ -596,7 +596,7 @@ CREATE TABLE event ( status ENUM('ENABLED','DISABLED') NOT NULL default 'ENABLED', on_completion ENUM('DROP','PRESERVE') NOT NULL default 'DROP', comment char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', PRIMARY KEY (db,name) PRIMARY KEY (definer, db, name) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'Events'; CREATE DATABASE IF NOT EXISTS cluster_replication; Loading
mysql-test/r/events.result +81 −1 Original line number Diff line number Diff line Loading @@ -34,13 +34,93 @@ create table t_event3 (a int, b float); drop event if exists event3; Warnings: Note 1305 Event event3 does not exist create event event3 on schedule every 50 + 10 minute starts date_add("20010101", interval 5 minute) ends date_add("20151010", interval 5 day) comment "portokala_comment" DO insert into t_event3 values (unix_timestamp(), rand()); create event event3 on schedule every 50 + 10 minute starts date_add("20100101", interval 5 minute) ends date_add("20151010", interval 5 day) comment "portokala_comment" DO insert into t_event3 values (unix_timestamp(), rand()); set max_allowed_packet=128000000; select count(*) from t_event3; count(*) 0 drop event event3; drop table t_event3; create event one_event on schedule every 10 second do select 123; SHOW EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status events_test one_event root@localhost RECURRING NULL 10 INTERVAL_SECOND # # ENABLED SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT from information_schema.events; EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT NULL events_test one_event root@localhost select 123 RECURRING NULL 10 INTERVAL_SECOND ENABLED NOT PRESERVE CREATE DATABASE events_test2; CREATE USER ev_test@localhost; GRANT ALL ON events_test.* to ev_test@localhost; GRANT ALL on events_test2.* to ev_test@localhost; REVOKE EVENT ON events_test2.* FROM ev_test@localhost; REVOKE PROCESS on *.* from ev_test@localhost; select "NEW CONNECTION"; NEW CONNECTION NEW CONNECTION SELECT USER(), DATABASE(); USER() DATABASE() ev_test@localhost events_test2 SHOW GRANTS; Grants for ev_test@localhost GRANT USAGE ON *.* TO 'ev_test'@'localhost' GRANT ALL PRIVILEGES ON `events_test`.* TO 'ev_test'@'localhost' GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `events_test2`.* TO 'ev_test'@'localhost' "Here comes an error:"; SHOW EVENTS; ERROR 42000: Access denied for user 'ev_test'@'localhost' to database 'events_test2' USE events_test; "Now the list should be empty:"; SHOW EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status select concat("Let's create some new events from the name of ",user()); concat("Let's create some new events from the name of ",user()) Let's create some new events from the name of ev_test@localhost create event one_event on schedule every 20 second do select 123; create event two_event on schedule every 20 second on completion not preserve comment "two event" do select 123; create event three_event on schedule every 20 second on completion preserve comment "three event" do select 123; "Now we should see 3 events:"; SHOW EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status events_test one_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test three_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test two_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED "This should show us only 3 events:"; SHOW FULL EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status events_test one_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test three_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test two_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED "This should show us only 2 events:"; SHOW FULL EVENTS LIKE 't%event'; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status events_test three_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test two_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED "This should show us no events:"; SHOW FULL EVENTS FROM test LIKE '%'; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status DROP DATABASE events_test2; "should see 1 event:"; SHOW EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status events_test one_event root@localhost RECURRING NULL 10 INTERVAL_SECOND # # ENABLED "we should see 4 events now:"; SHOW FULL EVENTS; Db Name Definer Type Execute at Interval value Interval field Starts Ends Status events_test one_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test three_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test two_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED events_test one_event root@localhost RECURRING NULL 10 INTERVAL_SECOND # # ENABLED SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT from information_schema.events; EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT NULL events_test one_event ev_test@localhost select 123 RECURRING NULL 20 INTERVAL_SECOND ENABLED NOT PRESERVE NULL events_test three_event ev_test@localhost select 123 RECURRING NULL 20 INTERVAL_SECOND ENABLED PRESERVE three event NULL events_test two_event ev_test@localhost select 123 RECURRING NULL 20 INTERVAL_SECOND ENABLED NOT PRESERVE two event NULL events_test one_event root@localhost select 123 RECURRING NULL 10 INTERVAL_SECOND ENABLED NOT PRESERVE drop event one_event; drop event two_event; drop event three_event; drop user ev_test@localhost; drop event one_event; create event e_26 on schedule at '2017-01-01 00:00:00' disable do set @a = 5; select db, name, body, definer, convert_tz(execute_at, 'UTC', 'SYSTEM'), on_completion from mysql.event; db name body definer convert_tz(execute_at, 'UTC', 'SYSTEM') on_completion Loading
mysql-test/r/information_schema.result +11 −2 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ COLLATION_CHARACTER_SET_APPLICABILITY COLUMNS COLUMN_PRIVILEGES ENGINES EVENTS KEY_COLUMN_USAGE PARTITIONS PLUGINS Loading Loading @@ -734,7 +735,7 @@ CREATE TABLE t_crashme ( f1 BIGINT); CREATE VIEW a1 (t_CRASHME) AS SELECT f1 FROM t_crashme GROUP BY f1; CREATE VIEW a2 AS SELECT t_CRASHME FROM a1; count(*) 109 110 drop view a2, a1; drop table t_crashme; select table_schema,table_name, column_name from Loading @@ -742,6 +743,8 @@ information_schema.columns where data_type = 'longtext'; table_schema table_name column_name information_schema COLUMNS COLUMN_TYPE information_schema EVENTS EVENT_BODY information_schema EVENTS SQL_MODE information_schema PARTITIONS PARTITION_EXPRESSION information_schema PARTITIONS SUBPARTITION_EXPRESSION information_schema PARTITIONS PARTITION_DESCRIPTION Loading @@ -756,6 +759,12 @@ information_schema VIEWS VIEW_DEFINITION select table_name, column_name, data_type from information_schema.columns where data_type = 'datetime'; table_name column_name data_type EVENTS EXECUTE_AT datetime EVENTS STARTS datetime EVENTS ENDS datetime EVENTS CREATED datetime EVENTS LAST_ALTERED datetime EVENTS LAST_EXECUTED datetime PARTITIONS CREATE_TIME datetime PARTITIONS UPDATE_TIME datetime PARTITIONS CHECK_TIME datetime Loading Loading @@ -817,7 +826,7 @@ flush privileges; SELECT table_schema, count(*) FROM information_schema.TABLES GROUP BY TABLE_SCHEMA; table_schema count(*) cluster_replication 1 information_schema 19 information_schema 20 mysql 21 create table t1 (i int, j int); create trigger trg1 before insert on t1 for each row Loading
mysql-test/r/information_schema_db.result +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ COLLATION_CHARACTER_SET_APPLICABILITY COLUMNS COLUMN_PRIVILEGES ENGINES EVENTS KEY_COLUMN_USAGE PARTITIONS PLUGINS Loading
mysql-test/r/system_mysql_db.result +1 −1 Original line number Diff line number Diff line Loading @@ -204,7 +204,7 @@ event CREATE TABLE `event` ( `status` enum('ENABLED','DISABLED') NOT NULL default 'ENABLED', `on_completion` enum('DROP','PRESERVE') NOT NULL default 'DROP', `comment` char(64) character set utf8 collate utf8_bin NOT NULL default '', PRIMARY KEY (`db`,`name`) PRIMARY KEY (`definer`,`db`,`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events' show create table general_log; Table Create Table Loading