mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			46 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Can't test with embedded server that doesn't support grants
 | 
						|
-- source include/not_embedded.inc
 | 
						|
 | 
						|
CREATE DATABASE IF NOT EXISTS events_test;
 | 
						|
USE events_test;
 | 
						|
CREATE TABLE table_1(a int);
 | 
						|
CREATE TABLE table_2(a int);
 | 
						|
CREATE TABLE table_3(a int);
 | 
						|
CREATE TABLE table_4(a int);
 | 
						|
CREATE TABLE T19170(s1 TIMESTAMP);
 | 
						|
SET GLOBAL event_scheduler=1;
 | 
						|
# We need to have 2 to make it safe with valgrind. This is probably because
 | 
						|
# of when we calculate the timestamp value
 | 
						|
CREATE EVENT E19170 ON SCHEDULE EVERY 2 SECOND DO INSERT INTO T19170 VALUES(CURRENT_TIMESTAMP);
 | 
						|
CREATE EVENT two_sec ON SCHEDULE EVERY 2 SECOND DO INSERT INTO table_1 VALUES(1);
 | 
						|
CREATE EVENT start_n_end
 | 
						|
  ON SCHEDULE EVERY 1 SECOND
 | 
						|
  ENDS NOW() + INTERVAL 6 SECOND
 | 
						|
  ON COMPLETION PRESERVE
 | 
						|
  DO INSERT INTO table_2 VALUES(1);
 | 
						|
--sleep 5
 | 
						|
CREATE EVENT only_one_time ON SCHEDULE EVERY 2 SECOND ENDS NOW() + INTERVAL 1 SECOND DO INSERT INTO table_3 VALUES(1);
 | 
						|
CREATE EVENT two_time ON SCHEDULE EVERY 1 SECOND ENDS NOW() + INTERVAL 1 SECOND ON COMPLETION PRESERVE DO INSERT INTO table_4 VALUES(1);
 | 
						|
--sleep 5
 | 
						|
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_1;
 | 
						|
SELECT IF(SUM(a) >= 5, 'OK', 'ERROR') FROM table_2;
 | 
						|
SELECT IF(SUM(a) >  0, 'OK', 'ERROR') FROM table_3;
 | 
						|
SELECT IF(SUM(a) >  0, 'OK', 'ERROR') FROM table_4;
 | 
						|
DROP EVENT two_sec;
 | 
						|
SELECT IF(TIME_TO_SEC(TIMEDIFF(ENDS,STARTS))=6, 'OK', 'ERROR') FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='start_n_end' AND ENDS IS NOT NULL;
 | 
						|
SELECT IF(LAST_EXECUTED-ENDS < 3, 'OK', 'ERROR') FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='start_n_end' AND ENDS IS NOT NULL;
 | 
						|
DROP EVENT start_n_end;
 | 
						|
--echo "Already dropped because ended. Therefore an error."
 | 
						|
--error ER_EVENT_DOES_NOT_EXIST
 | 
						|
DROP EVENT only_one_time;
 | 
						|
--echo "Should be preserved"
 | 
						|
SELECT EVENT_NAME, STATUS FROM INFORMATION_SCHEMA.EVENTS;
 | 
						|
DROP EVENT two_time;
 | 
						|
DROP TABLE table_1;
 | 
						|
DROP TABLE table_2;
 | 
						|
DROP TABLE table_3;
 | 
						|
DROP TABLE table_4;
 | 
						|
--echo "Checking for multiple executions in one second, should not happen -> 0 as result"
 | 
						|
SELECT COUNT(*) FROM (SELECT s1, COUNT(*) AS cnt FROM T19170 GROUP BY s1) AS tmp WHERE tmp.cnt > 1;
 | 
						|
DROP DATABASE events_test;
 |