Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/server/mysql/mysql-test/t/ |
Upload File : |
# Can't test with embedded server that doesn't support events -- source include/not_embedded.inc CREATE DATABASE IF NOT EXISTS events_test; USE events_test; SET @event_scheduler=@@global.event_scheduler; SET GLOBAL event_scheduler=OFF; --echo Try again to make sure it's allowed SET GLOBAL event_scheduler=OFF; SHOW VARIABLES LIKE 'event_scheduler'; SET GLOBAL event_scheduler=1; SHOW VARIABLES LIKE 'event_scheduler'; SET GLOBAL event_scheduler=0; SHOW VARIABLES LIKE 'event_scheduler'; SET GLOBAL event_scheduler=ON; --echo Try again to make sure it's allowed SET GLOBAL event_scheduler=ON; SHOW VARIABLES LIKE 'event_scheduler'; --error ER_WRONG_VALUE_FOR_VAR SET GLOBAL event_scheduler=DISABLED; SHOW VARIABLES LIKE 'event_scheduler'; --error ER_WRONG_VALUE_FOR_VAR SET GLOBAL event_scheduler=-1; SHOW VARIABLES LIKE 'event_scheduler'; --error ER_WRONG_VALUE_FOR_VAR SET GLOBAL event_scheduler=2; SHOW VARIABLES LIKE 'event_scheduler'; --error ER_WRONG_VALUE_FOR_VAR SET GLOBAL event_scheduler=5; SHOW VARIABLES LIKE 'event_scheduler'; CREATE TABLE table_1(a int); CREATE TABLE table_2(a int); CREATE TABLE table_3(a int); CREATE TABLE table_4(a int); SET GLOBAL event_scheduler=ON; # We need to have 2 to make it safe with valgrind. This is probably because # of when we calculate the timestamp value CREATE EVENT event_1 ON SCHEDULE EVERY 2 SECOND DO INSERT INTO table_1 VALUES (1); CREATE EVENT event_2 ON SCHEDULE EVERY 1 SECOND ENDS NOW() + INTERVAL 6 SECOND ON COMPLETION PRESERVE DO INSERT INTO table_2 VALUES (1); CREATE EVENT event_3 ON SCHEDULE EVERY 2 SECOND ENDS NOW() + INTERVAL 1 SECOND ON COMPLETION NOT PRESERVE DO INSERT INTO table_3 VALUES (1); CREATE EVENT event_4 ON SCHEDULE EVERY 1 SECOND ENDS NOW() + INTERVAL 1 SECOND ON COMPLETION PRESERVE DO INSERT INTO table_4 VALUES (1); # Let event_1 insert at least 4 records into the table let $wait_condition=select count(*) >= 4 from table_1; --source include/wait_condition.inc # Minimum of passed time is 6 seconds assuming # - event executions starts immediate after creation # - 4 times event_1 means an insert at ect, ect+2, ect+4, ect+6 # ect = event creation time # Let event_2 reach the end of its execution interval let $wait_condition=select count(*) = 0 from information_schema.events where event_name='event_2' and status='enabled'; --source include/wait_condition.inc # Minimum of passed time is 6 seconds. # See wait_condition for event_1 above and ENDS condition for event_2. # Let event_3, which is ON COMPLETION NOT PRESERVE execute and drop itself let $wait_condition=select count(*) = 0 from information_schema.events where event_name='event_3'; --source include/wait_condition.inc # Let event_4 reach the end of its execution interval let $wait_condition=select count(*) = 0 from information_schema.events where event_name='event_4' and status='enabled'; --source include/wait_condition.inc # # On a busy system the scheduler may skip execution of events, # we can't reliably expect that the data in a table to be modified # by an event will be exact. Thus we do not SELECT from the tables # in this test. See also # Bug#39854 events_scheduling fails sporadically on pushbuild # SELECT IF(TIME_TO_SEC(TIMEDIFF(ENDS,STARTS))=6, 'OK', 'ERROR') FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='event_2'; --echo "Already dropped because ended. Therefore an error." --error ER_EVENT_DOES_NOT_EXIST DROP EVENT event_3; DROP EVENT event_1; --echo "Should be preserved" SELECT EVENT_NAME, STATUS FROM INFORMATION_SCHEMA.EVENTS ORDER BY EVENT_NAME; DROP EVENT event_2; DROP EVENT event_4; DROP TABLE table_1; DROP TABLE table_2; DROP TABLE table_3; DROP TABLE table_4; -- echo -- echo Bug #50087 Interval arithmetic for Event_queue_element is not portable. -- echo CREATE TABLE t1(a int); CREATE EVENT e1 ON SCHEDULE EVERY 1 MONTH STARTS NOW() - INTERVAL 1 MONTH ENDS NOW() + INTERVAL 2 MONTH ON COMPLETION PRESERVE DO INSERT INTO t1 VALUES (1); CREATE EVENT e2 ON SCHEDULE EVERY 1 MONTH STARTS NOW() ENDS NOW() + INTERVAL 11 MONTH ON COMPLETION PRESERVE DO INSERT INTO t1 VALUES (1); DROP TABLE t1; DROP EVENT e1; DROP EVENT e2; DROP DATABASE events_test; SET GLOBAL event_scheduler=@event_scheduler; # # End of tests # let $wait_condition= select count(*) = 0 from information_schema.processlist where db='events_test' and command = 'Connect' and user=current_user(); --source include/wait_condition.inc