mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into linux.site:/home/reggie/work/mysql-5.1
This commit is contained in:
@ -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;
|
||||
|
@ -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
|
||||
|
@ -44,6 +44,7 @@ COLLATION_CHARACTER_SET_APPLICABILITY
|
||||
COLUMNS
|
||||
COLUMN_PRIVILEGES
|
||||
ENGINES
|
||||
EVENTS
|
||||
KEY_COLUMN_USAGE
|
||||
PARTITIONS
|
||||
PLUGINS
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
|
@ -7,6 +7,7 @@ COLLATION_CHARACTER_SET_APPLICABILITY
|
||||
COLUMNS
|
||||
COLUMN_PRIVILEGES
|
||||
ENGINES
|
||||
EVENTS
|
||||
KEY_COLUMN_USAGE
|
||||
PARTITIONS
|
||||
PLUGINS
|
||||
|
@ -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
|
||||
|
@ -27,12 +27,88 @@ set global event_scheduler = 0;
|
||||
|
||||
create table t_event3 (a int, b float);
|
||||
drop event if exists event3;
|
||||
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;
|
||||
drop event event3;
|
||||
drop table t_event3;
|
||||
|
||||
#
|
||||
#INFORMATION_SCHEMA.EVENTS test begin
|
||||
#
|
||||
create event one_event on schedule every 10 second do select 123;
|
||||
--replace_column 8 # 9 #
|
||||
SHOW EVENTS;
|
||||
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;
|
||||
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;
|
||||
#now we are on con1
|
||||
connect (ev_con1,localhost,ev_test,,events_test2);
|
||||
select "NEW CONNECTION";
|
||||
SELECT USER(), DATABASE();
|
||||
SHOW GRANTS;
|
||||
|
||||
--echo "Here comes an error:";
|
||||
#NO EVENT_ACL on events_test2
|
||||
--error 1044
|
||||
SHOW EVENTS;
|
||||
USE events_test;
|
||||
|
||||
--echo "Now the list should be empty:";
|
||||
--replace_column 8 # 9 #
|
||||
SHOW EVENTS;
|
||||
#now create an event with the same name but we are different user
|
||||
select concat("Let's create some new events from the name of ",user());
|
||||
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;
|
||||
|
||||
--echo "Now we should see 3 events:";
|
||||
--replace_column 8 # 9 #
|
||||
SHOW EVENTS;
|
||||
|
||||
--echo "This should show us only 3 events:";
|
||||
--replace_column 8 # 9 #
|
||||
SHOW FULL EVENTS;
|
||||
|
||||
--echo "This should show us only 2 events:";
|
||||
--replace_column 8 # 9 #
|
||||
SHOW FULL EVENTS LIKE 't%event';
|
||||
|
||||
--echo "This should show us no events:";
|
||||
--replace_column 8 # 9 #
|
||||
SHOW FULL EVENTS FROM test LIKE '%';
|
||||
#ok, we are back
|
||||
connection default;
|
||||
DROP DATABASE events_test2;
|
||||
|
||||
--echo "should see 1 event:";
|
||||
--replace_column 8 # 9 #
|
||||
SHOW EVENTS;
|
||||
|
||||
--echo "we should see 4 events now:";
|
||||
--replace_column 8 # 9 #
|
||||
SHOW FULL EVENTS;
|
||||
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;
|
||||
|
||||
connection ev_con1;
|
||||
drop event one_event;
|
||||
drop event two_event;
|
||||
drop event three_event;
|
||||
disconnect ev_con1;
|
||||
connection default;
|
||||
drop user ev_test@localhost;
|
||||
drop event one_event;
|
||||
#
|
||||
##INFORMATION_SCHEMA.EVENTS test end
|
||||
#
|
||||
|
||||
|
||||
|
||||
|
||||
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;
|
||||
|
Reference in New Issue
Block a user