2015-08-11 18:45:38 +02:00
set sql_mode="";
2008-02-20 14:40:46 +01:00
drop database if exists events_test;
create database events_test;
use events_test;
2016-01-24 17:41:11 +01:00
create event e_26 on schedule at '2027-01-01 00:00:00' disable do set @a = 5;
2008-02-20 14:40:46 +01:00
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
2016-01-24 17:41:11 +01:00
events_test e_26 set @a = 5 root@localhost 2027-01-01 00:00:00 DROP
2008-02-20 14:40:46 +01:00
drop event e_26;
create event e_26 on schedule at NULL disable do set @a = 5;
ERROR HY000: Incorrect AT value: 'NULL'
create event e_26 on schedule at 'definitely not a datetime' disable do set @a = 5;
ERROR HY000: Incorrect AT value: 'definitely not a datetime'
set names utf8;
create event задачка on schedule every 123 minute starts now() ends now() + interval 1 month do select 1;
drop event задачка;
"DISABLE the scheduler. Testing that it does not work when the variable is 0"
set global event_scheduler=off;
select definer, name, db from mysql.event;
definer name db
select get_lock("test_lock1", 20);
get_lock("test_lock1", 20)
1
create event закачка on schedule every 10 hour do select get_lock("test_lock1", 20);
"Should return 1 row"
select definer, name, db from mysql.event;
definer name db
root@localhost закачка events_test
"Should be only 0 process"
select /*1*/ user, host, db, command, state, info
from information_schema.processlist
where (user='event_scheduler')
order by info;
user host db command state info
select release_lock("test_lock1");
release_lock("test_lock1")
1
drop event закачка;
"Should have 0 events"
select count(*) from mysql.event;
count(*)
0
"ENABLE the scheduler and get a lock"
set global event_scheduler=on;
select get_lock("test_lock2", 20);
get_lock("test_lock2", 20)
1
"Create an event which tries to acquire a mutex. The event locks on the mutex"
create event закачка on schedule every 10 hour do select get_lock("test_lock2", 20);
"Should have only 2 processes: the scheduler and the locked event"
select /*2*/ user, host, db, command, state, info
from information_schema.processlist
where (info like "select get_lock%" OR user='event_scheduler')
order by info;
user host db command state info
event_scheduler localhost NULL Daemon Waiting for next activation NULL
root localhost events_test Connect User lock select get_lock("test_lock2", 20)
"Release the mutex, the event worker should finish."
select release_lock("test_lock2");
release_lock("test_lock2")
1
drop event закачка;
set global event_scheduler=1;
select get_lock("test_lock2_1", 20);
get_lock("test_lock2_1", 20)
1
create event за ка чка 21 on schedule every 10 hour do select get_lock("test_lock2_1", 20);
"Should have only 2 processes: the scheduler and the locked event"
select /*3*/ user, host, db, command, state, info
from information_schema.processlist
where (info like "select get_lock%" OR user='event_scheduler')
order by info;
user host db command state info
event_scheduler localhost NULL Daemon Waiting for next activation NULL
root localhost events_test Connect User lock select get_lock("test_lock2_1", 20)
set global event_scheduler=off;
"Should have only our process now:"
select /*4*/ user, host, db, command, state, info
from information_schema.processlist
where (info like "select get_lock%" OR user='event_scheduler')
order by info;
user host db command state info
root localhost events_test Connect User lock select get_lock("test_lock2_1", 20)
select release_lock("test_lock2_1");
release_lock("test_lock2_1")
1
drop event за ка чка 21;
create table t_16 (s1 int);
create trigger t_16_bi before insert on t_16 for each row create event e_16 on schedule every 1 second do set @a=5;
ERROR HY000: Recursion of EVENT DDL statements is forbidden when body is present
drop table t_16;
create event white_space
on schedule every 10 hour
disable
do
select 1;
select event_schema, event_name, definer, event_definition from information_schema.events where event_name='white_space';
event_schema event_name definer event_definition
events_test white_space root@localhost select 1
drop event white_space;
create event white_space on schedule every 10 hour disable do
select 2;
select event_schema, event_name, definer, event_definition from information_schema.events where event_name='white_space';
event_schema event_name definer event_definition
events_test white_space root@localhost select 2
drop event white_space;
create event white_space on schedule every 10 hour disable do select 3;
select event_schema, event_name, definer, event_definition from information_schema.events where event_name='white_space';
event_schema event_name definer event_definition
events_test white_space root@localhost select 3
drop event white_space;
create event e1 on schedule every 1 year do set @a = 5;
create table t1 (s1 int);
create trigger t1_ai after insert on t1 for each row show create event e1;
ERROR 0A000: Not allowed to return a result set from a trigger
drop table t1;
drop event e1;
SHOW EVENTS FROM aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
SHOW EVENTS FROM ``;
ERROR 42000: Incorrect database name ''
SHOW EVENTS FROM `events\\test`;
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
LOCK TABLES mode.
create table t1 (a int);
create event e1 on schedule every 10 hour do select 1;
lock table t1 read;
show create event e1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
2009-10-07 22:57:03 +02:00
e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
2008-02-20 14:40:46 +01:00
select event_name from information_schema.events;
event_name
e1
create event e2 on schedule every 10 hour do select 1;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
alter event e2 disable;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
alter event e2 rename to e3;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
drop event e2;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
drop event e1;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
unlock tables;
lock table t1 write;
show create event e1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
2009-10-07 22:57:03 +02:00
e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
2008-02-20 14:40:46 +01:00
select event_name from information_schema.events;
event_name
e1
create event e2 on schedule every 10 hour do select 1;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
alter event e2 disable;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
alter event e2 rename to e3;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
drop event e2;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
drop event e1;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
unlock tables;
lock table t1 read, mysql.event read;
show create event e1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
2009-10-07 22:57:03 +02:00
e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
2008-02-20 14:40:46 +01:00
select event_name from information_schema.events;
event_name
e1
create event e2 on schedule every 10 hour do select 1;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
alter event e2 disable;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
alter event e2 rename to e3;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
drop event e2;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
drop event e1;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
unlock tables;
lock table t1 write, mysql.event read;
show create event e1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
2009-10-07 22:57:03 +02:00
e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
2008-02-20 14:40:46 +01:00
select event_name from information_schema.events;
event_name
e1
create event e2 on schedule every 10 hour do select 1;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
alter event e2 disable;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
alter event e2 rename to e3;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
drop event e2;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
drop event e1;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
unlock tables;
lock table t1 read, mysql.event write;
ERROR HY000: You can't combine write-locking of system tables with other tables or lock types
lock table t1 write, mysql.event write;
ERROR HY000: You can't combine write-locking of system tables with other tables or lock types
lock table mysql.event write;
show create event e1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
2009-10-07 22:57:03 +02:00
e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
2008-02-20 14:40:46 +01:00
select event_name from information_schema.events;
event_name
e1
create event e2 on schedule every 10 hour do select 1;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
alter event e2 disable;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
alter event e2 rename to e3;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
drop event e3;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
drop event e1;
2010-11-11 18:11:05 +01:00
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
2008-02-20 14:40:46 +01:00
unlock tables;
2010-11-11 18:11:05 +01:00
drop event e1;
2008-02-20 14:40:46 +01:00
Make sure we have left no events
select event_name from information_schema.events;
event_name
Events in sub-statements, events and prelocking
create event e1 on schedule every 10 hour do select 1;
create function f1() returns int
begin
show create event e1;
return 1;
end|
ERROR 0A000: Not allowed to return a result set from a function
create trigger trg before insert on t1 for each row
begin
show create event e1;
end|
ERROR 0A000: Not allowed to return a result set from a trigger
create function f1() returns int
begin
select event_name from information_schema.events;
return 1;
end|
ERROR 0A000: Not allowed to return a result set from a function
create trigger trg before insert on t1 for each row
begin
select event_name from information_schema.events;
end|
ERROR 0A000: Not allowed to return a result set from a trigger
create function f1() returns int
begin
create event e2 on schedule every 10 hour do select 1;
return 1;
end|
ERROR HY000: Recursion of EVENT DDL statements is forbidden when body is present
create function f1() returns int
begin
alter event e1 rename to e2;
return 1;
end|
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
create function f1() returns int
begin
drop event e2;
return 1;
end|
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
----------------------------------------------------------------------
create trigger trg before insert on t1 for each row
begin
set new.a= f1();
end|
create function f1() returns int
begin
call p1();
return 0;
end|
create procedure p1()
begin
select event_name from information_schema.events;
end|
insert into t1 (a) values (1)|
ERROR 0A000: Not allowed to return a result set from a trigger
drop procedure p1|
create procedure p1()
begin
show create event e1;
end|
insert into t1 (a) values (1)|
ERROR 0A000: Not allowed to return a result set from a trigger
drop procedure p1|
create procedure p1()
begin
create temporary table tmp select event_name from information_schema.events;
end|
expected to work, since we redirect the output into a tmp table
insert into t1 (a) values (1)|
select * from tmp|
event_name
e1
drop temporary table tmp|
drop procedure p1|
create procedure p1()
begin
alter event e1 rename to e2;
end|
insert into t1 (a) values (1)|
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
drop procedure p1|
create procedure p1()
begin
drop event e1;
end|
insert into t1 (a) values (1)|
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
drop table t1|
drop event e1|
2008-05-13 14:06:32 +02:00
set names utf8;
create event имя_с о б ытия_в_ко дир о вке _у тф8_длино й_б о льше _че м_48 on schedule every 2 year do select 1;
select EVENT_NAME from information_schema.events
where event_schema='test';
EVENT_NAME
drop event имя_с о б ытия_в_ко дир о вке _у тф8_длино й_б о льше _че м_48;
create event
о че нь_о че нь_о че нь_о че нь_о че нь_о че нь_о че нь_о че нь_длинна я_с тр о ка _66
on schedule every 2 year do select 1;
ERROR 42000: Identifier name 'о че нь_о че нь_о че нь_о че нь_о че нь_о че нь_о че нь_о че нь_длинна ' is too long
Bug#35981: ALTER EVENT causes the server to change the PRESERVE option.
If [NOT] PRESERVE was not given, parser always defaulted to NOT
PRESERVE, making it impossible for the "not given = no change"
rule to work in ALTER EVENT. Leaving out the PRESERVE-clause
defaults to NOT PRESERVE on CREATE now, and to "no change" in
ALTER.
mysql-test/r/events_2.result:
show that giving no PRESERVE-clause to ALTER EVENT
results in no change. show that giving no PRESERVE-clause
to CREATE EVENT defaults to NOT PRESERVE as per the docs.
Show specifically that this is also handled correctly when
trying to ALTER EVENTs into the past.
mysql-test/t/events_2.test:
show that giving no PRESERVE-clause to ALTER EVENT
results in no change. show that giving no PRESERVE-clause
to CREATE EVENT defaults to NOT PRESERVE as per the docs.
Show specifically that this is also handled correctly when
trying to ALTER EVENTs into the past.
sql/event_db_repository.cc:
If ALTER EVENT was given no PRESERVE-clause (meaning "no change"),
we don't know the previous PRESERVE-setting by the time we check
the parse-data. If ALTER EVENT was given dates that are in the past,
we don't know how to react, lacking the PRESERVE-setting. Heal this
by running the check later when we have actually read the previous
EVENT-data.
sql/event_parse_data.cc:
Change default for ON COMPLETION to indicate, "not specified."
Also defer throwing errors when ALTER EVENT is given dates in
the past but not PRESERVE-clause until we know the previous
PRESERVE-value.
sql/event_parse_data.h:
Add third state for ON COMPLETION [NOT] PRESERVE (preserve,
don't, not specified).
Make check_dates() public so we can defer this check until
deeper in the callstack where we have all the required data.
sql/sql_yacc.yy:
If CREATE EVENT is not given ON COMPLETION [NOT] PRESERVE,
we default to NOT, as per the docs.
2008-08-18 13:05:51 +02:00
create event event_35981 on schedule every 6 month on completion preserve
disable
do
select 1;
The following SELECTs should all give 1
select count(*) from information_schema.events
where event_schema = database() and event_name = 'event_35981' and
on_completion = 'PRESERVE';
count(*)
1
alter event event_35981 enable;
select count(*) from information_schema.events
where event_schema = database() and event_name = 'event_35981' and
on_completion = 'PRESERVE';
count(*)
1
alter event event_35981 on completion not preserve;
select count(*) from information_schema.events
where event_schema = database() and event_name = 'event_35981' and
on_completion = 'NOT PRESERVE';
count(*)
1
alter event event_35981 disable;
select count(*) from information_schema.events
where event_schema = database() and event_name = 'event_35981' and
on_completion = 'NOT PRESERVE';
count(*)
1
alter event event_35981 on completion preserve;
select count(*) from information_schema.events
where event_schema = database() and event_name = 'event_35981' and
on_completion = 'PRESERVE';
count(*)
1
drop event event_35981;
create event event_35981 on schedule every 6 month disable
do
select 1;
select count(*) from information_schema.events
where event_schema = database() and event_name = 'event_35981' and
on_completion = 'NOT PRESERVE';
count(*)
1
drop event event_35981;
create event event_35981 on schedule every 1 hour starts current_timestamp
on completion not preserve
do
select 1;
alter event event_35981 on schedule every 1 hour starts '1999-01-01 00:00:00'
ends '1999-01-02 00:00:00';
fixes for test failures
and small collateral changes
mysql-test/lib/My/Test.pm:
somehow with "print" we get truncated writes sometimes
mysql-test/suite/perfschema/r/digest_table_full.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/perfschema/r/dml_handler.result:
host table is not ported over yet
mysql-test/suite/perfschema/r/information_schema.result:
host table is not ported over yet
mysql-test/suite/perfschema/r/nesting.result:
this differs, because we don't rewrite general log queries, and multi-statement
packets are logged as a one entry. this result file is identical to what mysql-5.6.5
produces with the --log-raw option.
mysql-test/suite/perfschema/r/relaylog.result:
MariaDB modifies the binlog index file directly, while MySQL 5.6 has a feature "crash-safe binlog index" and modifies a special "crash-safe" shadow copy of the index file and then moves it over. That's why this test shows "NONE" index file writes in MySQL and "MANY" in MariaDB.
mysql-test/suite/perfschema/r/server_init.result:
MariaDB initializes the "manager" resources from the "manager" thread, and starts this thread only when --flush-time is not 0. MySQL 5.6 initializes "manager" resources unconditionally on server startup.
mysql-test/suite/perfschema/r/stage_mdl_global.result:
this differs, because MariaDB disables query cache when query_cache_size=0. MySQL does not
do that, and this causes useless mutex locks and waits.
mysql-test/suite/perfschema/r/statement_digest.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/perfschema/r/statement_digest_consumers.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/perfschema/r/statement_digest_long_query.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result:
will be updated to match 5.6 when alfranio.correia@oracle.com-20110512172919-c1b5kmum4h52g0ni and anders.song@greatopensource.com-20110105052107-zoab0bsf5a6xxk2y are merged
mysql-test/suite/rpl/r/rpl_non_direct_mixed_mixing_engines.result:
will be updated to match 5.6 when anders.song@greatopensource.com-20110105052107-zoab0bsf5a6xxk2y is merged
2012-09-27 20:09:46 +02:00
ERROR HY000: Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was not changed. Specify a time in the future.
Bug#35981: ALTER EVENT causes the server to change the PRESERVE option.
If [NOT] PRESERVE was not given, parser always defaulted to NOT
PRESERVE, making it impossible for the "not given = no change"
rule to work in ALTER EVENT. Leaving out the PRESERVE-clause
defaults to NOT PRESERVE on CREATE now, and to "no change" in
ALTER.
mysql-test/r/events_2.result:
show that giving no PRESERVE-clause to ALTER EVENT
results in no change. show that giving no PRESERVE-clause
to CREATE EVENT defaults to NOT PRESERVE as per the docs.
Show specifically that this is also handled correctly when
trying to ALTER EVENTs into the past.
mysql-test/t/events_2.test:
show that giving no PRESERVE-clause to ALTER EVENT
results in no change. show that giving no PRESERVE-clause
to CREATE EVENT defaults to NOT PRESERVE as per the docs.
Show specifically that this is also handled correctly when
trying to ALTER EVENTs into the past.
sql/event_db_repository.cc:
If ALTER EVENT was given no PRESERVE-clause (meaning "no change"),
we don't know the previous PRESERVE-setting by the time we check
the parse-data. If ALTER EVENT was given dates that are in the past,
we don't know how to react, lacking the PRESERVE-setting. Heal this
by running the check later when we have actually read the previous
EVENT-data.
sql/event_parse_data.cc:
Change default for ON COMPLETION to indicate, "not specified."
Also defer throwing errors when ALTER EVENT is given dates in
the past but not PRESERVE-clause until we know the previous
PRESERVE-value.
sql/event_parse_data.h:
Add third state for ON COMPLETION [NOT] PRESERVE (preserve,
don't, not specified).
Make check_dates() public so we can defer this check until
deeper in the callstack where we have all the required data.
sql/sql_yacc.yy:
If CREATE EVENT is not given ON COMPLETION [NOT] PRESERVE,
we default to NOT, as per the docs.
2008-08-18 13:05:51 +02:00
drop event event_35981;
create event event_35981 on schedule every 1 hour starts current_timestamp
on completion not preserve
do
select 1;
alter event event_35981 on schedule every 1 hour starts '1999-01-01 00:00:00'
ends '1999-01-02 00:00:00' on completion preserve;
Warnings:
Note 1544 Event execution time is in the past. Event has been disabled
drop event event_35981;
create event event_35981 on schedule every 1 hour starts current_timestamp
on completion preserve
do
select 1;
alter event event_35981 on schedule every 1 hour starts '1999-01-01 00:00:00'
ends '1999-01-02 00:00:00';
Warnings:
Note 1544 Event execution time is in the past. Event has been disabled
alter event event_35981 on schedule every 1 hour starts '1999-01-01 00:00:00'
ends '1999-01-02 00:00:00' on completion not preserve;
fixes for test failures
and small collateral changes
mysql-test/lib/My/Test.pm:
somehow with "print" we get truncated writes sometimes
mysql-test/suite/perfschema/r/digest_table_full.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/perfschema/r/dml_handler.result:
host table is not ported over yet
mysql-test/suite/perfschema/r/information_schema.result:
host table is not ported over yet
mysql-test/suite/perfschema/r/nesting.result:
this differs, because we don't rewrite general log queries, and multi-statement
packets are logged as a one entry. this result file is identical to what mysql-5.6.5
produces with the --log-raw option.
mysql-test/suite/perfschema/r/relaylog.result:
MariaDB modifies the binlog index file directly, while MySQL 5.6 has a feature "crash-safe binlog index" and modifies a special "crash-safe" shadow copy of the index file and then moves it over. That's why this test shows "NONE" index file writes in MySQL and "MANY" in MariaDB.
mysql-test/suite/perfschema/r/server_init.result:
MariaDB initializes the "manager" resources from the "manager" thread, and starts this thread only when --flush-time is not 0. MySQL 5.6 initializes "manager" resources unconditionally on server startup.
mysql-test/suite/perfschema/r/stage_mdl_global.result:
this differs, because MariaDB disables query cache when query_cache_size=0. MySQL does not
do that, and this causes useless mutex locks and waits.
mysql-test/suite/perfschema/r/statement_digest.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/perfschema/r/statement_digest_consumers.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/perfschema/r/statement_digest_long_query.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result:
will be updated to match 5.6 when alfranio.correia@oracle.com-20110512172919-c1b5kmum4h52g0ni and anders.song@greatopensource.com-20110105052107-zoab0bsf5a6xxk2y are merged
mysql-test/suite/rpl/r/rpl_non_direct_mixed_mixing_engines.result:
will be updated to match 5.6 when anders.song@greatopensource.com-20110105052107-zoab0bsf5a6xxk2y is merged
2012-09-27 20:09:46 +02:00
ERROR HY000: Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was not changed. Specify a time in the future.
Bug#35981: ALTER EVENT causes the server to change the PRESERVE option.
If [NOT] PRESERVE was not given, parser always defaulted to NOT
PRESERVE, making it impossible for the "not given = no change"
rule to work in ALTER EVENT. Leaving out the PRESERVE-clause
defaults to NOT PRESERVE on CREATE now, and to "no change" in
ALTER.
mysql-test/r/events_2.result:
show that giving no PRESERVE-clause to ALTER EVENT
results in no change. show that giving no PRESERVE-clause
to CREATE EVENT defaults to NOT PRESERVE as per the docs.
Show specifically that this is also handled correctly when
trying to ALTER EVENTs into the past.
mysql-test/t/events_2.test:
show that giving no PRESERVE-clause to ALTER EVENT
results in no change. show that giving no PRESERVE-clause
to CREATE EVENT defaults to NOT PRESERVE as per the docs.
Show specifically that this is also handled correctly when
trying to ALTER EVENTs into the past.
sql/event_db_repository.cc:
If ALTER EVENT was given no PRESERVE-clause (meaning "no change"),
we don't know the previous PRESERVE-setting by the time we check
the parse-data. If ALTER EVENT was given dates that are in the past,
we don't know how to react, lacking the PRESERVE-setting. Heal this
by running the check later when we have actually read the previous
EVENT-data.
sql/event_parse_data.cc:
Change default for ON COMPLETION to indicate, "not specified."
Also defer throwing errors when ALTER EVENT is given dates in
the past but not PRESERVE-clause until we know the previous
PRESERVE-value.
sql/event_parse_data.h:
Add third state for ON COMPLETION [NOT] PRESERVE (preserve,
don't, not specified).
Make check_dates() public so we can defer this check until
deeper in the callstack where we have all the required data.
sql/sql_yacc.yy:
If CREATE EVENT is not given ON COMPLETION [NOT] PRESERVE,
we default to NOT, as per the docs.
2008-08-18 13:05:51 +02:00
alter event event_35981 on schedule every 1 hour starts '1999-01-01 00:00:00'
ends '1999-01-02 00:00:00' on completion preserve;
Warnings:
Note 1544 Event execution time is in the past. Event has been disabled
drop event event_35981;
2008-02-20 14:40:46 +01:00
drop database events_test;