List:Commits« Previous MessageNext Message »
From:ahristov Date:February 9 2006 1:18pm
Subject:bk commit into 5.1 tree (andrey:1.2131) BUG#16406
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of andrey. When andrey does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2131 06/02/09 14:18:27 andrey@lmy004. +10 -0
  fix for bug#16406 (Events: DROP DATABASE doesn't automatically drop events)
  WL#1034
  - This changeset also changes the executor so its quite more stable now.
    Stressing test case added that executes ~800 events per second and dropping
    hundreds of events at once using DROP DATABASE.
  (try one more time)

  mysql-test/t/events_stress.test
    1.1 06/02/09 14:18:17 andrey@lmy004. +683 -0

  mysql-test/r/events_stress.result
    1.1 06/02/09 14:18:17 andrey@lmy004. +684 -0

  sql/sql_db.cc
    1.126 06/02/09 14:18:17 andrey@lmy004. +2 -0
    - call evex_drop_db_events() on DROP DATABASE

  sql/event_timed.cc
    1.25 06/02/09 14:18:17 andrey@lmy004. +134 -0
    - add few methods related to event execution.
      now the event spawns the worker thread and
      passes itself as parameter. This way it locks itself for exectution
      first and then spawning -> no race condition. When the worker thread
      has finished working with the reference it calls back
      event_timed::spawn_thread_finish() to unlock itself.

  sql/event_executor.cc
    1.23 06/02/09 14:18:17 andrey@lmy004. +143 -97
    - extract some of the code executed in the main thread to a function. Too long
      functions are bad for the overview.
    - prepend all information/error messages to the console with "SCHEDULER:" for
      better overview, and easied searching in the log tables.

  sql/event.h
    1.18 06/02/09 14:18:17 andrey@lmy004. +49 -5
    - protect the event better (see the changes to event_executor.cc
      and event.cc). An event object could be used in a spawned thread
      before it's executed but till now the object is marked as being
      executed when the anonymous sp_head is executed. However, there are
      timeframes before and after that during which the event is not marked
      as executed and other thread may delete the object -> so we end with
      a nirvana pointer.

  sql/event.cc
    1.24 06/02/09 14:18:17 andrey@lmy004. +196 -5
    Implemented evex_db_drop_events() which drops all events
    from a specific database. Needed for SQLCOM_DROP_DATABASE

  mysql-test/t/events_stress.test
    1.0 06/02/09 14:18:17 andrey@lmy004. +0 -0
    BitKeeper file /work/mysql-5.1-bug16406/mysql-test/t/events_stress.test

  mysql-test/r/events_stress.result
    1.0 06/02/09 14:18:17 andrey@lmy004. +0 -0
    BitKeeper file /work/mysql-5.1-bug16406/mysql-test/r/events_stress.result

  mysql-test/t/events.test
    1.13 06/02/09 14:18:16 andrey@lmy004. +0 -1
    -redundant line

  mysql-test/t/disabled.def
    1.54 06/02/09 14:18:16 andrey@lmy004. +1 -0
    disable events_stress for now

  mysql-test/r/events.result
    1.12 06/02/09 14:18:16 andrey@lmy004. +1 -1
    update results after TRIGGER_ACL was added

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	andrey
# Host:	lmy004.
# Root:	/work/mysql-5.1-bug16406

--- 1.125/sql/sql_db.cc	2006-01-19 03:56:00 +01:00
+++ 1.126/sql/sql_db.cc	2006-02-09 14:18:17 +01:00
@@ -20,6 +20,7 @@
 #include "mysql_priv.h"
 #include <mysys_err.h>
 #include "sp.h"
+#include "event.h"
 #include <my_dir.h>
 #include <m_ctype.h>
 #ifdef __WIN__
@@ -748,6 +749,7 @@
 
 exit:
   (void)sp_drop_db_routines(thd, db); /* QQ Ignore errors for now  */
+  (void)evex_drop_db_events(thd, db); /* QQ Ignore errors for now  */
   start_waiting_global_read_lock(thd);
   /*
     If this database was the client's selected database, we silently change the

--- 1.11/mysql-test/r/events.result	2006-01-30 17:11:41 +01:00
+++ 1.12/mysql-test/r/events.result	2006-02-09 14:18:16 +01:00
@@ -64,7 +64,7 @@
 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'
+GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, TRIGGER 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'
--- New file ---
+++ mysql-test/r/events_stress.result	06/02/09 14:18:17
CREATE DATABASE IF NOT EXISTS events_test;
CREATE DATABASE events_test2;
USE events_test2;
CREATE EVENT ev_drop1 ON SCHEDULE EVERY 10 MINUTE DISABLE DO SELECT 1;
CREATE EVENT ev_drop2 ON SCHEDULE EVERY 10 MINUTE DISABLE DO SELECT 1;
CREATE EVENT ev_drop3 ON SCHEDULE EVERY 10 MINUTE DISABLE DO SELECT 1;
USE events_test;
SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_test2';
COUNT(*)
3
DROP DATABASE events_test2;
SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_test2';
COUNT(*)
0
"Now testing stability - dropping db -> events while they are running"
CREATE DATABASE events_test2;
USE events_test2;
CREATE EVENT ev_drop0 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop1 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop2 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop3 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop4 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop5 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop6 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop7 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop8 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop9 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop10 ON SCHEDULE EVERY 1 SECOND DO SELECT 10;
CREATE EVENT ev_drop11 ON SCHEDULE EVERY 1 SECOND DO SELECT 11;
CREATE EVENT ev_drop12 ON SCHEDULE EVERY 1 SECOND DO SELECT 12;
CREATE EVENT ev_drop13 ON SCHEDULE EVERY 1 SECOND DO SELECT 13;
CREATE EVENT ev_drop14 ON SCHEDULE EVERY 1 SECOND DO SELECT 14;
CREATE EVENT ev_drop15 ON SCHEDULE EVERY 1 SECOND DO SELECT 15;
CREATE EVENT ev_drop16 ON SCHEDULE EVERY 1 SECOND DO SELECT 16;
CREATE EVENT ev_drop17 ON SCHEDULE EVERY 1 SECOND DO SELECT 17;
CREATE EVENT ev_drop18 ON SCHEDULE EVERY 1 SECOND DO SELECT 18;
CREATE EVENT ev_drop19 ON SCHEDULE EVERY 1 SECOND DO SELECT 19;
CREATE EVENT ev_drop20 ON SCHEDULE EVERY 1 SECOND DO SELECT 20;
CREATE EVENT ev_drop21 ON SCHEDULE EVERY 1 SECOND DO SELECT 21;
CREATE EVENT ev_drop22 ON SCHEDULE EVERY 1 SECOND DO SELECT 22;
CREATE EVENT ev_drop23 ON SCHEDULE EVERY 1 SECOND DO SELECT 23;
CREATE EVENT ev_drop24 ON SCHEDULE EVERY 1 SECOND DO SELECT 24;
CREATE EVENT ev_drop25 ON SCHEDULE EVERY 1 SECOND DO SELECT 25;
CREATE EVENT ev_drop26 ON SCHEDULE EVERY 1 SECOND DO SELECT 26;
CREATE EVENT ev_drop27 ON SCHEDULE EVERY 1 SECOND DO SELECT 27;
CREATE EVENT ev_drop28 ON SCHEDULE EVERY 1 SECOND DO SELECT 28;
CREATE EVENT ev_drop29 ON SCHEDULE EVERY 1 SECOND DO SELECT 29;
CREATE EVENT ev_drop30 ON SCHEDULE EVERY 1 SECOND DO SELECT 30;
CREATE EVENT ev_drop31 ON SCHEDULE EVERY 1 SECOND DO SELECT 31;
CREATE EVENT ev_drop32 ON SCHEDULE EVERY 1 SECOND DO SELECT 32;
CREATE EVENT ev_drop33 ON SCHEDULE EVERY 1 SECOND DO SELECT 33;
CREATE EVENT ev_drop34 ON SCHEDULE EVERY 1 SECOND DO SELECT 34;
CREATE EVENT ev_drop35 ON SCHEDULE EVERY 1 SECOND DO SELECT 35;
CREATE EVENT ev_drop36 ON SCHEDULE EVERY 1 SECOND DO SELECT 36;
CREATE EVENT ev_drop37 ON SCHEDULE EVERY 1 SECOND DO SELECT 37;
CREATE EVENT ev_drop38 ON SCHEDULE EVERY 1 SECOND DO SELECT 38;
CREATE EVENT ev_drop39 ON SCHEDULE EVERY 1 SECOND DO SELECT 39;
CREATE EVENT ev_drop40 ON SCHEDULE EVERY 1 SECOND DO SELECT 40;
CREATE EVENT ev_drop41 ON SCHEDULE EVERY 1 SECOND DO SELECT 41;
CREATE EVENT ev_drop42 ON SCHEDULE EVERY 1 SECOND DO SELECT 42;
CREATE EVENT ev_drop43 ON SCHEDULE EVERY 1 SECOND DO SELECT 43;
CREATE EVENT ev_drop44 ON SCHEDULE EVERY 1 SECOND DO SELECT 44;
CREATE EVENT ev_drop45 ON SCHEDULE EVERY 1 SECOND DO SELECT 45;
CREATE EVENT ev_drop46 ON SCHEDULE EVERY 1 SECOND DO SELECT 46;
CREATE EVENT ev_drop47 ON SCHEDULE EVERY 1 SECOND DO SELECT 47;
CREATE EVENT ev_drop48 ON SCHEDULE EVERY 1 SECOND DO SELECT 48;
CREATE EVENT ev_drop49 ON SCHEDULE EVERY 1 SECOND DO SELECT 49;
CREATE EVENT ev_drop50 ON SCHEDULE EVERY 1 SECOND DO SELECT 50;
CREATE EVENT ev_drop51 ON SCHEDULE EVERY 1 SECOND DO SELECT 51;
CREATE EVENT ev_drop52 ON SCHEDULE EVERY 1 SECOND DO SELECT 52;
CREATE EVENT ev_drop53 ON SCHEDULE EVERY 1 SECOND DO SELECT 53;
CREATE EVENT ev_drop54 ON SCHEDULE EVERY 1 SECOND DO SELECT 54;
CREATE EVENT ev_drop55 ON SCHEDULE EVERY 1 SECOND DO SELECT 55;
CREATE EVENT ev_drop56 ON SCHEDULE EVERY 1 SECOND DO SELECT 56;
CREATE EVENT ev_drop57 ON SCHEDULE EVERY 1 SECOND DO SELECT 57;
CREATE EVENT ev_drop58 ON SCHEDULE EVERY 1 SECOND DO SELECT 58;
CREATE EVENT ev_drop59 ON SCHEDULE EVERY 1 SECOND DO SELECT 59;
CREATE EVENT ev_drop60 ON SCHEDULE EVERY 1 SECOND DO SELECT 60;
CREATE EVENT ev_drop61 ON SCHEDULE EVERY 1 SECOND DO SELECT 61;
CREATE EVENT ev_drop62 ON SCHEDULE EVERY 1 SECOND DO SELECT 62;
CREATE EVENT ev_drop63 ON SCHEDULE EVERY 1 SECOND DO SELECT 63;
CREATE EVENT ev_drop64 ON SCHEDULE EVERY 1 SECOND DO SELECT 64;
CREATE EVENT ev_drop65 ON SCHEDULE EVERY 1 SECOND DO SELECT 65;
CREATE EVENT ev_drop66 ON SCHEDULE EVERY 1 SECOND DO SELECT 66;
CREATE EVENT ev_drop67 ON SCHEDULE EVERY 1 SECOND DO SELECT 67;
CREATE EVENT ev_drop68 ON SCHEDULE EVERY 1 SECOND DO SELECT 68;
CREATE EVENT ev_drop69 ON SCHEDULE EVERY 1 SECOND DO SELECT 69;
CREATE EVENT ev_drop70 ON SCHEDULE EVERY 1 SECOND DO SELECT 70;
CREATE EVENT ev_drop71 ON SCHEDULE EVERY 1 SECOND DO SELECT 71;
CREATE EVENT ev_drop72 ON SCHEDULE EVERY 1 SECOND DO SELECT 72;
CREATE EVENT ev_drop73 ON SCHEDULE EVERY 1 SECOND DO SELECT 73;
CREATE EVENT ev_drop74 ON SCHEDULE EVERY 1 SECOND DO SELECT 74;
CREATE EVENT ev_drop75 ON SCHEDULE EVERY 1 SECOND DO SELECT 75;
CREATE EVENT ev_drop76 ON SCHEDULE EVERY 1 SECOND DO SELECT 76;
CREATE EVENT ev_drop77 ON SCHEDULE EVERY 1 SECOND DO SELECT 77;
CREATE EVENT ev_drop78 ON SCHEDULE EVERY 1 SECOND DO SELECT 78;
CREATE EVENT ev_drop79 ON SCHEDULE EVERY 1 SECOND DO SELECT 79;
CREATE EVENT ev_drop80 ON SCHEDULE EVERY 1 SECOND DO SELECT 80;
CREATE EVENT ev_drop81 ON SCHEDULE EVERY 1 SECOND DO SELECT 81;
CREATE EVENT ev_drop82 ON SCHEDULE EVERY 1 SECOND DO SELECT 82;
CREATE EVENT ev_drop83 ON SCHEDULE EVERY 1 SECOND DO SELECT 83;
CREATE EVENT ev_drop84 ON SCHEDULE EVERY 1 SECOND DO SELECT 84;
CREATE EVENT ev_drop85 ON SCHEDULE EVERY 1 SECOND DO SELECT 85;
CREATE EVENT ev_drop86 ON SCHEDULE EVERY 1 SECOND DO SELECT 86;
CREATE EVENT ev_drop87 ON SCHEDULE EVERY 1 SECOND DO SELECT 87;
CREATE EVENT ev_drop88 ON SCHEDULE EVERY 1 SECOND DO SELECT 88;
CREATE EVENT ev_drop89 ON SCHEDULE EVERY 1 SECOND DO SELECT 89;
CREATE EVENT ev_drop90 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop91 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop92 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop93 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop94 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop95 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop96 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop97 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop98 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop99 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop100 ON SCHEDULE EVERY 1 SECOND DO SELECT 100;
CREATE EVENT ev_drop101 ON SCHEDULE EVERY 1 SECOND DO SELECT 101;
CREATE EVENT ev_drop102 ON SCHEDULE EVERY 1 SECOND DO SELECT 102;
CREATE EVENT ev_drop103 ON SCHEDULE EVERY 1 SECOND DO SELECT 103;
CREATE EVENT ev_drop104 ON SCHEDULE EVERY 1 SECOND DO SELECT 104;
CREATE EVENT ev_drop105 ON SCHEDULE EVERY 1 SECOND DO SELECT 105;
CREATE EVENT ev_drop106 ON SCHEDULE EVERY 1 SECOND DO SELECT 106;
CREATE EVENT ev_drop107 ON SCHEDULE EVERY 1 SECOND DO SELECT 107;
CREATE EVENT ev_drop108 ON SCHEDULE EVERY 1 SECOND DO SELECT 108;
CREATE EVENT ev_drop109 ON SCHEDULE EVERY 1 SECOND DO SELECT 109;
CREATE EVENT ev_drop110 ON SCHEDULE EVERY 1 SECOND DO SELECT 110;
CREATE EVENT ev_drop111 ON SCHEDULE EVERY 1 SECOND DO SELECT 111;
CREATE EVENT ev_drop112 ON SCHEDULE EVERY 1 SECOND DO SELECT 112;
CREATE EVENT ev_drop113 ON SCHEDULE EVERY 1 SECOND DO SELECT 113;
CREATE EVENT ev_drop114 ON SCHEDULE EVERY 1 SECOND DO SELECT 114;
CREATE EVENT ev_drop115 ON SCHEDULE EVERY 1 SECOND DO SELECT 115;
CREATE EVENT ev_drop116 ON SCHEDULE EVERY 1 SECOND DO SELECT 116;
CREATE EVENT ev_drop117 ON SCHEDULE EVERY 1 SECOND DO SELECT 117;
CREATE EVENT ev_drop118 ON SCHEDULE EVERY 1 SECOND DO SELECT 118;
CREATE EVENT ev_drop119 ON SCHEDULE EVERY 1 SECOND DO SELECT 119;
CREATE EVENT ev_drop120 ON SCHEDULE EVERY 1 SECOND DO SELECT 120;
CREATE EVENT ev_drop121 ON SCHEDULE EVERY 1 SECOND DO SELECT 121;
CREATE EVENT ev_drop122 ON SCHEDULE EVERY 1 SECOND DO SELECT 122;
CREATE EVENT ev_drop123 ON SCHEDULE EVERY 1 SECOND DO SELECT 123;
CREATE EVENT ev_drop124 ON SCHEDULE EVERY 1 SECOND DO SELECT 124;
CREATE EVENT ev_drop125 ON SCHEDULE EVERY 1 SECOND DO SELECT 125;
CREATE EVENT ev_drop126 ON SCHEDULE EVERY 1 SECOND DO SELECT 126;
CREATE EVENT ev_drop127 ON SCHEDULE EVERY 1 SECOND DO SELECT 127;
CREATE EVENT ev_drop128 ON SCHEDULE EVERY 1 SECOND DO SELECT 128;
CREATE EVENT ev_drop129 ON SCHEDULE EVERY 1 SECOND DO SELECT 129;
CREATE EVENT ev_drop130 ON SCHEDULE EVERY 1 SECOND DO SELECT 130;
CREATE EVENT ev_drop131 ON SCHEDULE EVERY 1 SECOND DO SELECT 131;
CREATE EVENT ev_drop132 ON SCHEDULE EVERY 1 SECOND DO SELECT 132;
CREATE EVENT ev_drop133 ON SCHEDULE EVERY 1 SECOND DO SELECT 133;
CREATE EVENT ev_drop134 ON SCHEDULE EVERY 1 SECOND DO SELECT 134;
CREATE EVENT ev_drop135 ON SCHEDULE EVERY 1 SECOND DO SELECT 135;
CREATE EVENT ev_drop136 ON SCHEDULE EVERY 1 SECOND DO SELECT 136;
CREATE EVENT ev_drop137 ON SCHEDULE EVERY 1 SECOND DO SELECT 137;
CREATE EVENT ev_drop138 ON SCHEDULE EVERY 1 SECOND DO SELECT 138;
CREATE EVENT ev_drop139 ON SCHEDULE EVERY 1 SECOND DO SELECT 139;
CREATE EVENT ev_drop140 ON SCHEDULE EVERY 1 SECOND DO SELECT 140;
CREATE EVENT ev_drop141 ON SCHEDULE EVERY 1 SECOND DO SELECT 141;
CREATE EVENT ev_drop142 ON SCHEDULE EVERY 1 SECOND DO SELECT 142;
CREATE EVENT ev_drop143 ON SCHEDULE EVERY 1 SECOND DO SELECT 143;
CREATE EVENT ev_drop144 ON SCHEDULE EVERY 1 SECOND DO SELECT 144;
CREATE EVENT ev_drop145 ON SCHEDULE EVERY 1 SECOND DO SELECT 145;
CREATE EVENT ev_drop146 ON SCHEDULE EVERY 1 SECOND DO SELECT 146;
CREATE EVENT ev_drop147 ON SCHEDULE EVERY 1 SECOND DO SELECT 147;
CREATE EVENT ev_drop148 ON SCHEDULE EVERY 1 SECOND DO SELECT 148;
CREATE EVENT ev_drop149 ON SCHEDULE EVERY 1 SECOND DO SELECT 149;
CREATE EVENT ev_drop150 ON SCHEDULE EVERY 1 SECOND DO SELECT 150;
CREATE EVENT ev_drop151 ON SCHEDULE EVERY 1 SECOND DO SELECT 151;
CREATE EVENT ev_drop152 ON SCHEDULE EVERY 1 SECOND DO SELECT 152;
CREATE EVENT ev_drop153 ON SCHEDULE EVERY 1 SECOND DO SELECT 153;
CREATE EVENT ev_drop154 ON SCHEDULE EVERY 1 SECOND DO SELECT 154;
CREATE EVENT ev_drop155 ON SCHEDULE EVERY 1 SECOND DO SELECT 155;
CREATE EVENT ev_drop156 ON SCHEDULE EVERY 1 SECOND DO SELECT 156;
CREATE EVENT ev_drop157 ON SCHEDULE EVERY 1 SECOND DO SELECT 157;
CREATE EVENT ev_drop158 ON SCHEDULE EVERY 1 SECOND DO SELECT 158;
CREATE EVENT ev_drop159 ON SCHEDULE EVERY 1 SECOND DO SELECT 159;
SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_test2';
COUNT(*)
160
SET GLOBAL event_scheduler=1;
DROP DATABASE events_test2;
SET GLOBAL event_scheduler=0;
SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_test2';
COUNT(*)
0
CREATE DATABASE events_test3;
USE events_test3;
CREATE EVENT ev_drop0 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop1 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop2 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop3 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop4 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop5 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop6 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop7 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop8 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop9 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop10 ON SCHEDULE EVERY 1 SECOND DO SELECT 10;
CREATE EVENT ev_drop11 ON SCHEDULE EVERY 1 SECOND DO SELECT 11;
CREATE EVENT ev_drop12 ON SCHEDULE EVERY 1 SECOND DO SELECT 12;
CREATE EVENT ev_drop13 ON SCHEDULE EVERY 1 SECOND DO SELECT 13;
CREATE EVENT ev_drop14 ON SCHEDULE EVERY 1 SECOND DO SELECT 14;
CREATE EVENT ev_drop15 ON SCHEDULE EVERY 1 SECOND DO SELECT 15;
CREATE EVENT ev_drop16 ON SCHEDULE EVERY 1 SECOND DO SELECT 16;
CREATE EVENT ev_drop17 ON SCHEDULE EVERY 1 SECOND DO SELECT 17;
CREATE EVENT ev_drop18 ON SCHEDULE EVERY 1 SECOND DO SELECT 18;
CREATE EVENT ev_drop19 ON SCHEDULE EVERY 1 SECOND DO SELECT 19;
CREATE EVENT ev_drop20 ON SCHEDULE EVERY 1 SECOND DO SELECT 20;
CREATE EVENT ev_drop21 ON SCHEDULE EVERY 1 SECOND DO SELECT 21;
CREATE EVENT ev_drop22 ON SCHEDULE EVERY 1 SECOND DO SELECT 22;
CREATE EVENT ev_drop23 ON SCHEDULE EVERY 1 SECOND DO SELECT 23;
CREATE EVENT ev_drop24 ON SCHEDULE EVERY 1 SECOND DO SELECT 24;
CREATE EVENT ev_drop25 ON SCHEDULE EVERY 1 SECOND DO SELECT 25;
CREATE EVENT ev_drop26 ON SCHEDULE EVERY 1 SECOND DO SELECT 26;
CREATE EVENT ev_drop27 ON SCHEDULE EVERY 1 SECOND DO SELECT 27;
CREATE EVENT ev_drop28 ON SCHEDULE EVERY 1 SECOND DO SELECT 28;
CREATE EVENT ev_drop29 ON SCHEDULE EVERY 1 SECOND DO SELECT 29;
CREATE EVENT ev_drop30 ON SCHEDULE EVERY 1 SECOND DO SELECT 30;
CREATE EVENT ev_drop31 ON SCHEDULE EVERY 1 SECOND DO SELECT 31;
CREATE EVENT ev_drop32 ON SCHEDULE EVERY 1 SECOND DO SELECT 32;
CREATE EVENT ev_drop33 ON SCHEDULE EVERY 1 SECOND DO SELECT 33;
CREATE EVENT ev_drop34 ON SCHEDULE EVERY 1 SECOND DO SELECT 34;
CREATE EVENT ev_drop35 ON SCHEDULE EVERY 1 SECOND DO SELECT 35;
CREATE EVENT ev_drop36 ON SCHEDULE EVERY 1 SECOND DO SELECT 36;
CREATE EVENT ev_drop37 ON SCHEDULE EVERY 1 SECOND DO SELECT 37;
CREATE EVENT ev_drop38 ON SCHEDULE EVERY 1 SECOND DO SELECT 38;
CREATE EVENT ev_drop39 ON SCHEDULE EVERY 1 SECOND DO SELECT 39;
CREATE EVENT ev_drop40 ON SCHEDULE EVERY 1 SECOND DO SELECT 40;
CREATE EVENT ev_drop41 ON SCHEDULE EVERY 1 SECOND DO SELECT 41;
CREATE EVENT ev_drop42 ON SCHEDULE EVERY 1 SECOND DO SELECT 42;
CREATE EVENT ev_drop43 ON SCHEDULE EVERY 1 SECOND DO SELECT 43;
CREATE EVENT ev_drop44 ON SCHEDULE EVERY 1 SECOND DO SELECT 44;
CREATE EVENT ev_drop45 ON SCHEDULE EVERY 1 SECOND DO SELECT 45;
CREATE EVENT ev_drop46 ON SCHEDULE EVERY 1 SECOND DO SELECT 46;
CREATE EVENT ev_drop47 ON SCHEDULE EVERY 1 SECOND DO SELECT 47;
CREATE EVENT ev_drop48 ON SCHEDULE EVERY 1 SECOND DO SELECT 48;
CREATE EVENT ev_drop49 ON SCHEDULE EVERY 1 SECOND DO SELECT 49;
CREATE EVENT ev_drop50 ON SCHEDULE EVERY 1 SECOND DO SELECT 50;
CREATE EVENT ev_drop51 ON SCHEDULE EVERY 1 SECOND DO SELECT 51;
CREATE EVENT ev_drop52 ON SCHEDULE EVERY 1 SECOND DO SELECT 52;
CREATE EVENT ev_drop53 ON SCHEDULE EVERY 1 SECOND DO SELECT 53;
CREATE EVENT ev_drop54 ON SCHEDULE EVERY 1 SECOND DO SELECT 54;
CREATE EVENT ev_drop55 ON SCHEDULE EVERY 1 SECOND DO SELECT 55;
CREATE EVENT ev_drop56 ON SCHEDULE EVERY 1 SECOND DO SELECT 56;
CREATE EVENT ev_drop57 ON SCHEDULE EVERY 1 SECOND DO SELECT 57;
CREATE EVENT ev_drop58 ON SCHEDULE EVERY 1 SECOND DO SELECT 58;
CREATE EVENT ev_drop59 ON SCHEDULE EVERY 1 SECOND DO SELECT 59;
CREATE EVENT ev_drop60 ON SCHEDULE EVERY 1 SECOND DO SELECT 60;
CREATE EVENT ev_drop61 ON SCHEDULE EVERY 1 SECOND DO SELECT 61;
CREATE EVENT ev_drop62 ON SCHEDULE EVERY 1 SECOND DO SELECT 62;
CREATE EVENT ev_drop63 ON SCHEDULE EVERY 1 SECOND DO SELECT 63;
CREATE EVENT ev_drop64 ON SCHEDULE EVERY 1 SECOND DO SELECT 64;
CREATE EVENT ev_drop65 ON SCHEDULE EVERY 1 SECOND DO SELECT 65;
CREATE EVENT ev_drop66 ON SCHEDULE EVERY 1 SECOND DO SELECT 66;
CREATE EVENT ev_drop67 ON SCHEDULE EVERY 1 SECOND DO SELECT 67;
CREATE EVENT ev_drop68 ON SCHEDULE EVERY 1 SECOND DO SELECT 68;
CREATE EVENT ev_drop69 ON SCHEDULE EVERY 1 SECOND DO SELECT 69;
CREATE EVENT ev_drop70 ON SCHEDULE EVERY 1 SECOND DO SELECT 70;
CREATE EVENT ev_drop71 ON SCHEDULE EVERY 1 SECOND DO SELECT 71;
CREATE EVENT ev_drop72 ON SCHEDULE EVERY 1 SECOND DO SELECT 72;
CREATE EVENT ev_drop73 ON SCHEDULE EVERY 1 SECOND DO SELECT 73;
CREATE EVENT ev_drop74 ON SCHEDULE EVERY 1 SECOND DO SELECT 74;
CREATE EVENT ev_drop75 ON SCHEDULE EVERY 1 SECOND DO SELECT 75;
CREATE EVENT ev_drop76 ON SCHEDULE EVERY 1 SECOND DO SELECT 76;
CREATE EVENT ev_drop77 ON SCHEDULE EVERY 1 SECOND DO SELECT 77;
CREATE EVENT ev_drop78 ON SCHEDULE EVERY 1 SECOND DO SELECT 78;
CREATE EVENT ev_drop79 ON SCHEDULE EVERY 1 SECOND DO SELECT 79;
CREATE EVENT ev_drop80 ON SCHEDULE EVERY 1 SECOND DO SELECT 80;
CREATE EVENT ev_drop81 ON SCHEDULE EVERY 1 SECOND DO SELECT 81;
CREATE EVENT ev_drop82 ON SCHEDULE EVERY 1 SECOND DO SELECT 82;
CREATE EVENT ev_drop83 ON SCHEDULE EVERY 1 SECOND DO SELECT 83;
CREATE EVENT ev_drop84 ON SCHEDULE EVERY 1 SECOND DO SELECT 84;
CREATE EVENT ev_drop85 ON SCHEDULE EVERY 1 SECOND DO SELECT 85;
CREATE EVENT ev_drop86 ON SCHEDULE EVERY 1 SECOND DO SELECT 86;
CREATE EVENT ev_drop87 ON SCHEDULE EVERY 1 SECOND DO SELECT 87;
CREATE EVENT ev_drop88 ON SCHEDULE EVERY 1 SECOND DO SELECT 88;
CREATE EVENT ev_drop89 ON SCHEDULE EVERY 1 SECOND DO SELECT 89;
CREATE EVENT ev_drop90 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop91 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop92 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop93 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop94 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop95 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop96 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop97 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop98 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop99 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop100 ON SCHEDULE EVERY 1 SECOND DO SELECT 100;
CREATE EVENT ev_drop101 ON SCHEDULE EVERY 1 SECOND DO SELECT 101;
CREATE EVENT ev_drop102 ON SCHEDULE EVERY 1 SECOND DO SELECT 102;
CREATE EVENT ev_drop103 ON SCHEDULE EVERY 1 SECOND DO SELECT 103;
CREATE EVENT ev_drop104 ON SCHEDULE EVERY 1 SECOND DO SELECT 104;
CREATE EVENT ev_drop105 ON SCHEDULE EVERY 1 SECOND DO SELECT 105;
CREATE EVENT ev_drop106 ON SCHEDULE EVERY 1 SECOND DO SELECT 106;
CREATE EVENT ev_drop107 ON SCHEDULE EVERY 1 SECOND DO SELECT 107;
CREATE EVENT ev_drop108 ON SCHEDULE EVERY 1 SECOND DO SELECT 108;
CREATE EVENT ev_drop109 ON SCHEDULE EVERY 1 SECOND DO SELECT 109;
CREATE EVENT ev_drop110 ON SCHEDULE EVERY 1 SECOND DO SELECT 110;
CREATE EVENT ev_drop111 ON SCHEDULE EVERY 1 SECOND DO SELECT 111;
CREATE EVENT ev_drop112 ON SCHEDULE EVERY 1 SECOND DO SELECT 112;
CREATE EVENT ev_drop113 ON SCHEDULE EVERY 1 SECOND DO SELECT 113;
CREATE EVENT ev_drop114 ON SCHEDULE EVERY 1 SECOND DO SELECT 114;
CREATE EVENT ev_drop115 ON SCHEDULE EVERY 1 SECOND DO SELECT 115;
CREATE EVENT ev_drop116 ON SCHEDULE EVERY 1 SECOND DO SELECT 116;
CREATE EVENT ev_drop117 ON SCHEDULE EVERY 1 SECOND DO SELECT 117;
CREATE EVENT ev_drop118 ON SCHEDULE EVERY 1 SECOND DO SELECT 118;
CREATE EVENT ev_drop119 ON SCHEDULE EVERY 1 SECOND DO SELECT 119;
CREATE EVENT ev_drop120 ON SCHEDULE EVERY 1 SECOND DO SELECT 120;
CREATE EVENT ev_drop121 ON SCHEDULE EVERY 1 SECOND DO SELECT 121;
CREATE EVENT ev_drop122 ON SCHEDULE EVERY 1 SECOND DO SELECT 122;
CREATE EVENT ev_drop123 ON SCHEDULE EVERY 1 SECOND DO SELECT 123;
CREATE EVENT ev_drop124 ON SCHEDULE EVERY 1 SECOND DO SELECT 124;
CREATE EVENT ev_drop125 ON SCHEDULE EVERY 1 SECOND DO SELECT 125;
CREATE EVENT ev_drop126 ON SCHEDULE EVERY 1 SECOND DO SELECT 126;
CREATE EVENT ev_drop127 ON SCHEDULE EVERY 1 SECOND DO SELECT 127;
CREATE EVENT ev_drop128 ON SCHEDULE EVERY 1 SECOND DO SELECT 128;
CREATE EVENT ev_drop129 ON SCHEDULE EVERY 1 SECOND DO SELECT 129;
CREATE EVENT ev_drop130 ON SCHEDULE EVERY 1 SECOND DO SELECT 130;
CREATE EVENT ev_drop131 ON SCHEDULE EVERY 1 SECOND DO SELECT 131;
CREATE EVENT ev_drop132 ON SCHEDULE EVERY 1 SECOND DO SELECT 132;
CREATE EVENT ev_drop133 ON SCHEDULE EVERY 1 SECOND DO SELECT 133;
CREATE EVENT ev_drop134 ON SCHEDULE EVERY 1 SECOND DO SELECT 134;
CREATE EVENT ev_drop135 ON SCHEDULE EVERY 1 SECOND DO SELECT 135;
CREATE EVENT ev_drop136 ON SCHEDULE EVERY 1 SECOND DO SELECT 136;
CREATE EVENT ev_drop137 ON SCHEDULE EVERY 1 SECOND DO SELECT 137;
CREATE EVENT ev_drop138 ON SCHEDULE EVERY 1 SECOND DO SELECT 138;
CREATE EVENT ev_drop139 ON SCHEDULE EVERY 1 SECOND DO SELECT 139;
CREATE EVENT ev_drop140 ON SCHEDULE EVERY 1 SECOND DO SELECT 140;
CREATE EVENT ev_drop141 ON SCHEDULE EVERY 1 SECOND DO SELECT 141;
CREATE EVENT ev_drop142 ON SCHEDULE EVERY 1 SECOND DO SELECT 142;
CREATE EVENT ev_drop143 ON SCHEDULE EVERY 1 SECOND DO SELECT 143;
CREATE EVENT ev_drop144 ON SCHEDULE EVERY 1 SECOND DO SELECT 144;
CREATE EVENT ev_drop145 ON SCHEDULE EVERY 1 SECOND DO SELECT 145;
CREATE EVENT ev_drop146 ON SCHEDULE EVERY 1 SECOND DO SELECT 146;
CREATE EVENT ev_drop147 ON SCHEDULE EVERY 1 SECOND DO SELECT 147;
CREATE EVENT ev_drop148 ON SCHEDULE EVERY 1 SECOND DO SELECT 148;
CREATE EVENT ev_drop149 ON SCHEDULE EVERY 1 SECOND DO SELECT 149;
CREATE EVENT ev_drop150 ON SCHEDULE EVERY 1 SECOND DO SELECT 150;
CREATE EVENT ev_drop151 ON SCHEDULE EVERY 1 SECOND DO SELECT 151;
CREATE EVENT ev_drop152 ON SCHEDULE EVERY 1 SECOND DO SELECT 152;
CREATE EVENT ev_drop153 ON SCHEDULE EVERY 1 SECOND DO SELECT 153;
CREATE EVENT ev_drop154 ON SCHEDULE EVERY 1 SECOND DO SELECT 154;
CREATE EVENT ev_drop155 ON SCHEDULE EVERY 1 SECOND DO SELECT 155;
CREATE EVENT ev_drop156 ON SCHEDULE EVERY 1 SECOND DO SELECT 156;
CREATE EVENT ev_drop157 ON SCHEDULE EVERY 1 SECOND DO SELECT 157;
CREATE EVENT ev_drop158 ON SCHEDULE EVERY 1 SECOND DO SELECT 158;
CREATE EVENT ev_drop159 ON SCHEDULE EVERY 1 SECOND DO SELECT 159;
CREATE DATABASE events_test4;
USE events_test4;
CREATE EVENT ev_drop0 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop1 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop2 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop3 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop4 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop5 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop6 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop7 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop8 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop9 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop10 ON SCHEDULE EVERY 1 SECOND DO SELECT 10;
CREATE EVENT ev_drop11 ON SCHEDULE EVERY 1 SECOND DO SELECT 11;
CREATE EVENT ev_drop12 ON SCHEDULE EVERY 1 SECOND DO SELECT 12;
CREATE EVENT ev_drop13 ON SCHEDULE EVERY 1 SECOND DO SELECT 13;
CREATE EVENT ev_drop14 ON SCHEDULE EVERY 1 SECOND DO SELECT 14;
CREATE EVENT ev_drop15 ON SCHEDULE EVERY 1 SECOND DO SELECT 15;
CREATE EVENT ev_drop16 ON SCHEDULE EVERY 1 SECOND DO SELECT 16;
CREATE EVENT ev_drop17 ON SCHEDULE EVERY 1 SECOND DO SELECT 17;
CREATE EVENT ev_drop18 ON SCHEDULE EVERY 1 SECOND DO SELECT 18;
CREATE EVENT ev_drop19 ON SCHEDULE EVERY 1 SECOND DO SELECT 19;
CREATE EVENT ev_drop20 ON SCHEDULE EVERY 1 SECOND DO SELECT 20;
CREATE EVENT ev_drop21 ON SCHEDULE EVERY 1 SECOND DO SELECT 21;
CREATE EVENT ev_drop22 ON SCHEDULE EVERY 1 SECOND DO SELECT 22;
CREATE EVENT ev_drop23 ON SCHEDULE EVERY 1 SECOND DO SELECT 23;
CREATE EVENT ev_drop24 ON SCHEDULE EVERY 1 SECOND DO SELECT 24;
CREATE EVENT ev_drop25 ON SCHEDULE EVERY 1 SECOND DO SELECT 25;
CREATE EVENT ev_drop26 ON SCHEDULE EVERY 1 SECOND DO SELECT 26;
CREATE EVENT ev_drop27 ON SCHEDULE EVERY 1 SECOND DO SELECT 27;
CREATE EVENT ev_drop28 ON SCHEDULE EVERY 1 SECOND DO SELECT 28;
CREATE EVENT ev_drop29 ON SCHEDULE EVERY 1 SECOND DO SELECT 29;
CREATE EVENT ev_drop30 ON SCHEDULE EVERY 1 SECOND DO SELECT 30;
CREATE EVENT ev_drop31 ON SCHEDULE EVERY 1 SECOND DO SELECT 31;
CREATE EVENT ev_drop32 ON SCHEDULE EVERY 1 SECOND DO SELECT 32;
CREATE EVENT ev_drop33 ON SCHEDULE EVERY 1 SECOND DO SELECT 33;
CREATE EVENT ev_drop34 ON SCHEDULE EVERY 1 SECOND DO SELECT 34;
CREATE EVENT ev_drop35 ON SCHEDULE EVERY 1 SECOND DO SELECT 35;
CREATE EVENT ev_drop36 ON SCHEDULE EVERY 1 SECOND DO SELECT 36;
CREATE EVENT ev_drop37 ON SCHEDULE EVERY 1 SECOND DO SELECT 37;
CREATE EVENT ev_drop38 ON SCHEDULE EVERY 1 SECOND DO SELECT 38;
CREATE EVENT ev_drop39 ON SCHEDULE EVERY 1 SECOND DO SELECT 39;
CREATE EVENT ev_drop40 ON SCHEDULE EVERY 1 SECOND DO SELECT 40;
CREATE EVENT ev_drop41 ON SCHEDULE EVERY 1 SECOND DO SELECT 41;
CREATE EVENT ev_drop42 ON SCHEDULE EVERY 1 SECOND DO SELECT 42;
CREATE EVENT ev_drop43 ON SCHEDULE EVERY 1 SECOND DO SELECT 43;
CREATE EVENT ev_drop44 ON SCHEDULE EVERY 1 SECOND DO SELECT 44;
CREATE EVENT ev_drop45 ON SCHEDULE EVERY 1 SECOND DO SELECT 45;
CREATE EVENT ev_drop46 ON SCHEDULE EVERY 1 SECOND DO SELECT 46;
CREATE EVENT ev_drop47 ON SCHEDULE EVERY 1 SECOND DO SELECT 47;
CREATE EVENT ev_drop48 ON SCHEDULE EVERY 1 SECOND DO SELECT 48;
CREATE EVENT ev_drop49 ON SCHEDULE EVERY 1 SECOND DO SELECT 49;
CREATE EVENT ev_drop50 ON SCHEDULE EVERY 1 SECOND DO SELECT 50;
CREATE EVENT ev_drop51 ON SCHEDULE EVERY 1 SECOND DO SELECT 51;
CREATE EVENT ev_drop52 ON SCHEDULE EVERY 1 SECOND DO SELECT 52;
CREATE EVENT ev_drop53 ON SCHEDULE EVERY 1 SECOND DO SELECT 53;
CREATE EVENT ev_drop54 ON SCHEDULE EVERY 1 SECOND DO SELECT 54;
CREATE EVENT ev_drop55 ON SCHEDULE EVERY 1 SECOND DO SELECT 55;
CREATE EVENT ev_drop56 ON SCHEDULE EVERY 1 SECOND DO SELECT 56;
CREATE EVENT ev_drop57 ON SCHEDULE EVERY 1 SECOND DO SELECT 57;
CREATE EVENT ev_drop58 ON SCHEDULE EVERY 1 SECOND DO SELECT 58;
CREATE EVENT ev_drop59 ON SCHEDULE EVERY 1 SECOND DO SELECT 59;
CREATE EVENT ev_drop60 ON SCHEDULE EVERY 1 SECOND DO SELECT 60;
CREATE EVENT ev_drop61 ON SCHEDULE EVERY 1 SECOND DO SELECT 61;
CREATE EVENT ev_drop62 ON SCHEDULE EVERY 1 SECOND DO SELECT 62;
CREATE EVENT ev_drop63 ON SCHEDULE EVERY 1 SECOND DO SELECT 63;
CREATE EVENT ev_drop64 ON SCHEDULE EVERY 1 SECOND DO SELECT 64;
CREATE EVENT ev_drop65 ON SCHEDULE EVERY 1 SECOND DO SELECT 65;
CREATE EVENT ev_drop66 ON SCHEDULE EVERY 1 SECOND DO SELECT 66;
CREATE EVENT ev_drop67 ON SCHEDULE EVERY 1 SECOND DO SELECT 67;
CREATE EVENT ev_drop68 ON SCHEDULE EVERY 1 SECOND DO SELECT 68;
CREATE EVENT ev_drop69 ON SCHEDULE EVERY 1 SECOND DO SELECT 69;
CREATE EVENT ev_drop70 ON SCHEDULE EVERY 1 SECOND DO SELECT 70;
CREATE EVENT ev_drop71 ON SCHEDULE EVERY 1 SECOND DO SELECT 71;
CREATE EVENT ev_drop72 ON SCHEDULE EVERY 1 SECOND DO SELECT 72;
CREATE EVENT ev_drop73 ON SCHEDULE EVERY 1 SECOND DO SELECT 73;
CREATE EVENT ev_drop74 ON SCHEDULE EVERY 1 SECOND DO SELECT 74;
CREATE EVENT ev_drop75 ON SCHEDULE EVERY 1 SECOND DO SELECT 75;
CREATE EVENT ev_drop76 ON SCHEDULE EVERY 1 SECOND DO SELECT 76;
CREATE EVENT ev_drop77 ON SCHEDULE EVERY 1 SECOND DO SELECT 77;
CREATE EVENT ev_drop78 ON SCHEDULE EVERY 1 SECOND DO SELECT 78;
CREATE EVENT ev_drop79 ON SCHEDULE EVERY 1 SECOND DO SELECT 79;
CREATE EVENT ev_drop80 ON SCHEDULE EVERY 1 SECOND DO SELECT 80;
CREATE EVENT ev_drop81 ON SCHEDULE EVERY 1 SECOND DO SELECT 81;
CREATE EVENT ev_drop82 ON SCHEDULE EVERY 1 SECOND DO SELECT 82;
CREATE EVENT ev_drop83 ON SCHEDULE EVERY 1 SECOND DO SELECT 83;
CREATE EVENT ev_drop84 ON SCHEDULE EVERY 1 SECOND DO SELECT 84;
CREATE EVENT ev_drop85 ON SCHEDULE EVERY 1 SECOND DO SELECT 85;
CREATE EVENT ev_drop86 ON SCHEDULE EVERY 1 SECOND DO SELECT 86;
CREATE EVENT ev_drop87 ON SCHEDULE EVERY 1 SECOND DO SELECT 87;
CREATE EVENT ev_drop88 ON SCHEDULE EVERY 1 SECOND DO SELECT 88;
CREATE EVENT ev_drop89 ON SCHEDULE EVERY 1 SECOND DO SELECT 89;
CREATE EVENT ev_drop90 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop91 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop92 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop93 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop94 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop95 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop96 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop97 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop98 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop99 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop100 ON SCHEDULE EVERY 1 SECOND DO SELECT 100;
CREATE EVENT ev_drop101 ON SCHEDULE EVERY 1 SECOND DO SELECT 101;
CREATE EVENT ev_drop102 ON SCHEDULE EVERY 1 SECOND DO SELECT 102;
CREATE EVENT ev_drop103 ON SCHEDULE EVERY 1 SECOND DO SELECT 103;
CREATE EVENT ev_drop104 ON SCHEDULE EVERY 1 SECOND DO SELECT 104;
CREATE EVENT ev_drop105 ON SCHEDULE EVERY 1 SECOND DO SELECT 105;
CREATE EVENT ev_drop106 ON SCHEDULE EVERY 1 SECOND DO SELECT 106;
CREATE EVENT ev_drop107 ON SCHEDULE EVERY 1 SECOND DO SELECT 107;
CREATE EVENT ev_drop108 ON SCHEDULE EVERY 1 SECOND DO SELECT 108;
CREATE EVENT ev_drop109 ON SCHEDULE EVERY 1 SECOND DO SELECT 109;
CREATE EVENT ev_drop110 ON SCHEDULE EVERY 1 SECOND DO SELECT 110;
CREATE EVENT ev_drop111 ON SCHEDULE EVERY 1 SECOND DO SELECT 111;
CREATE EVENT ev_drop112 ON SCHEDULE EVERY 1 SECOND DO SELECT 112;
CREATE EVENT ev_drop113 ON SCHEDULE EVERY 1 SECOND DO SELECT 113;
CREATE EVENT ev_drop114 ON SCHEDULE EVERY 1 SECOND DO SELECT 114;
CREATE EVENT ev_drop115 ON SCHEDULE EVERY 1 SECOND DO SELECT 115;
CREATE EVENT ev_drop116 ON SCHEDULE EVERY 1 SECOND DO SELECT 116;
CREATE EVENT ev_drop117 ON SCHEDULE EVERY 1 SECOND DO SELECT 117;
CREATE EVENT ev_drop118 ON SCHEDULE EVERY 1 SECOND DO SELECT 118;
CREATE EVENT ev_drop119 ON SCHEDULE EVERY 1 SECOND DO SELECT 119;
CREATE EVENT ev_drop120 ON SCHEDULE EVERY 1 SECOND DO SELECT 120;
CREATE EVENT ev_drop121 ON SCHEDULE EVERY 1 SECOND DO SELECT 121;
CREATE EVENT ev_drop122 ON SCHEDULE EVERY 1 SECOND DO SELECT 122;
CREATE EVENT ev_drop123 ON SCHEDULE EVERY 1 SECOND DO SELECT 123;
CREATE EVENT ev_drop124 ON SCHEDULE EVERY 1 SECOND DO SELECT 124;
CREATE EVENT ev_drop125 ON SCHEDULE EVERY 1 SECOND DO SELECT 125;
CREATE EVENT ev_drop126 ON SCHEDULE EVERY 1 SECOND DO SELECT 126;
CREATE EVENT ev_drop127 ON SCHEDULE EVERY 1 SECOND DO SELECT 127;
CREATE EVENT ev_drop128 ON SCHEDULE EVERY 1 SECOND DO SELECT 128;
CREATE EVENT ev_drop129 ON SCHEDULE EVERY 1 SECOND DO SELECT 129;
CREATE EVENT ev_drop130 ON SCHEDULE EVERY 1 SECOND DO SELECT 130;
CREATE EVENT ev_drop131 ON SCHEDULE EVERY 1 SECOND DO SELECT 131;
CREATE EVENT ev_drop132 ON SCHEDULE EVERY 1 SECOND DO SELECT 132;
CREATE EVENT ev_drop133 ON SCHEDULE EVERY 1 SECOND DO SELECT 133;
CREATE EVENT ev_drop134 ON SCHEDULE EVERY 1 SECOND DO SELECT 134;
CREATE EVENT ev_drop135 ON SCHEDULE EVERY 1 SECOND DO SELECT 135;
CREATE EVENT ev_drop136 ON SCHEDULE EVERY 1 SECOND DO SELECT 136;
CREATE EVENT ev_drop137 ON SCHEDULE EVERY 1 SECOND DO SELECT 137;
CREATE EVENT ev_drop138 ON SCHEDULE EVERY 1 SECOND DO SELECT 138;
CREATE EVENT ev_drop139 ON SCHEDULE EVERY 1 SECOND DO SELECT 139;
CREATE EVENT ev_drop140 ON SCHEDULE EVERY 1 SECOND DO SELECT 140;
CREATE EVENT ev_drop141 ON SCHEDULE EVERY 1 SECOND DO SELECT 141;
CREATE EVENT ev_drop142 ON SCHEDULE EVERY 1 SECOND DO SELECT 142;
CREATE EVENT ev_drop143 ON SCHEDULE EVERY 1 SECOND DO SELECT 143;
CREATE EVENT ev_drop144 ON SCHEDULE EVERY 1 SECOND DO SELECT 144;
CREATE EVENT ev_drop145 ON SCHEDULE EVERY 1 SECOND DO SELECT 145;
CREATE EVENT ev_drop146 ON SCHEDULE EVERY 1 SECOND DO SELECT 146;
CREATE EVENT ev_drop147 ON SCHEDULE EVERY 1 SECOND DO SELECT 147;
CREATE EVENT ev_drop148 ON SCHEDULE EVERY 1 SECOND DO SELECT 148;
CREATE EVENT ev_drop149 ON SCHEDULE EVERY 1 SECOND DO SELECT 149;
CREATE EVENT ev_drop150 ON SCHEDULE EVERY 1 SECOND DO SELECT 150;
CREATE EVENT ev_drop151 ON SCHEDULE EVERY 1 SECOND DO SELECT 151;
CREATE EVENT ev_drop152 ON SCHEDULE EVERY 1 SECOND DO SELECT 152;
CREATE EVENT ev_drop153 ON SCHEDULE EVERY 1 SECOND DO SELECT 153;
CREATE EVENT ev_drop154 ON SCHEDULE EVERY 1 SECOND DO SELECT 154;
CREATE EVENT ev_drop155 ON SCHEDULE EVERY 1 SECOND DO SELECT 155;
CREATE EVENT ev_drop156 ON SCHEDULE EVERY 1 SECOND DO SELECT 156;
CREATE EVENT ev_drop157 ON SCHEDULE EVERY 1 SECOND DO SELECT 157;
CREATE EVENT ev_drop158 ON SCHEDULE EVERY 1 SECOND DO SELECT 158;
CREATE EVENT ev_drop159 ON SCHEDULE EVERY 1 SECOND DO SELECT 159;
CREATE DATABASE events_test2;
USE events_test2;
SET GLOBAL event_scheduler=1;
CREATE EVENT ev_drop0 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop1 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop2 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop3 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop4 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop5 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop6 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop7 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop8 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop9 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop10 ON SCHEDULE EVERY 1 SECOND DO SELECT 10;
CREATE EVENT ev_drop11 ON SCHEDULE EVERY 1 SECOND DO SELECT 11;
CREATE EVENT ev_drop12 ON SCHEDULE EVERY 1 SECOND DO SELECT 12;
CREATE EVENT ev_drop13 ON SCHEDULE EVERY 1 SECOND DO SELECT 13;
CREATE EVENT ev_drop14 ON SCHEDULE EVERY 1 SECOND DO SELECT 14;
CREATE EVENT ev_drop15 ON SCHEDULE EVERY 1 SECOND DO SELECT 15;
CREATE EVENT ev_drop16 ON SCHEDULE EVERY 1 SECOND DO SELECT 16;
CREATE EVENT ev_drop17 ON SCHEDULE EVERY 1 SECOND DO SELECT 17;
CREATE EVENT ev_drop18 ON SCHEDULE EVERY 1 SECOND DO SELECT 18;
CREATE EVENT ev_drop19 ON SCHEDULE EVERY 1 SECOND DO SELECT 19;
CREATE EVENT ev_drop20 ON SCHEDULE EVERY 1 SECOND DO SELECT 20;
CREATE EVENT ev_drop21 ON SCHEDULE EVERY 1 SECOND DO SELECT 21;
CREATE EVENT ev_drop22 ON SCHEDULE EVERY 1 SECOND DO SELECT 22;
CREATE EVENT ev_drop23 ON SCHEDULE EVERY 1 SECOND DO SELECT 23;
CREATE EVENT ev_drop24 ON SCHEDULE EVERY 1 SECOND DO SELECT 24;
CREATE EVENT ev_drop25 ON SCHEDULE EVERY 1 SECOND DO SELECT 25;
CREATE EVENT ev_drop26 ON SCHEDULE EVERY 1 SECOND DO SELECT 26;
CREATE EVENT ev_drop27 ON SCHEDULE EVERY 1 SECOND DO SELECT 27;
CREATE EVENT ev_drop28 ON SCHEDULE EVERY 1 SECOND DO SELECT 28;
CREATE EVENT ev_drop29 ON SCHEDULE EVERY 1 SECOND DO SELECT 29;
CREATE EVENT ev_drop30 ON SCHEDULE EVERY 1 SECOND DO SELECT 30;
CREATE EVENT ev_drop31 ON SCHEDULE EVERY 1 SECOND DO SELECT 31;
CREATE EVENT ev_drop32 ON SCHEDULE EVERY 1 SECOND DO SELECT 32;
CREATE EVENT ev_drop33 ON SCHEDULE EVERY 1 SECOND DO SELECT 33;
CREATE EVENT ev_drop34 ON SCHEDULE EVERY 1 SECOND DO SELECT 34;
CREATE EVENT ev_drop35 ON SCHEDULE EVERY 1 SECOND DO SELECT 35;
CREATE EVENT ev_drop36 ON SCHEDULE EVERY 1 SECOND DO SELECT 36;
CREATE EVENT ev_drop37 ON SCHEDULE EVERY 1 SECOND DO SELECT 37;
CREATE EVENT ev_drop38 ON SCHEDULE EVERY 1 SECOND DO SELECT 38;
CREATE EVENT ev_drop39 ON SCHEDULE EVERY 1 SECOND DO SELECT 39;
CREATE EVENT ev_drop40 ON SCHEDULE EVERY 1 SECOND DO SELECT 40;
CREATE EVENT ev_drop41 ON SCHEDULE EVERY 1 SECOND DO SELECT 41;
CREATE EVENT ev_drop42 ON SCHEDULE EVERY 1 SECOND DO SELECT 42;
CREATE EVENT ev_drop43 ON SCHEDULE EVERY 1 SECOND DO SELECT 43;
CREATE EVENT ev_drop44 ON SCHEDULE EVERY 1 SECOND DO SELECT 44;
CREATE EVENT ev_drop45 ON SCHEDULE EVERY 1 SECOND DO SELECT 45;
CREATE EVENT ev_drop46 ON SCHEDULE EVERY 1 SECOND DO SELECT 46;
CREATE EVENT ev_drop47 ON SCHEDULE EVERY 1 SECOND DO SELECT 47;
CREATE EVENT ev_drop48 ON SCHEDULE EVERY 1 SECOND DO SELECT 48;
CREATE EVENT ev_drop49 ON SCHEDULE EVERY 1 SECOND DO SELECT 49;
CREATE EVENT ev_drop50 ON SCHEDULE EVERY 1 SECOND DO SELECT 50;
CREATE EVENT ev_drop51 ON SCHEDULE EVERY 1 SECOND DO SELECT 51;
CREATE EVENT ev_drop52 ON SCHEDULE EVERY 1 SECOND DO SELECT 52;
CREATE EVENT ev_drop53 ON SCHEDULE EVERY 1 SECOND DO SELECT 53;
CREATE EVENT ev_drop54 ON SCHEDULE EVERY 1 SECOND DO SELECT 54;
CREATE EVENT ev_drop55 ON SCHEDULE EVERY 1 SECOND DO SELECT 55;
CREATE EVENT ev_drop56 ON SCHEDULE EVERY 1 SECOND DO SELECT 56;
CREATE EVENT ev_drop57 ON SCHEDULE EVERY 1 SECOND DO SELECT 57;
CREATE EVENT ev_drop58 ON SCHEDULE EVERY 1 SECOND DO SELECT 58;
CREATE EVENT ev_drop59 ON SCHEDULE EVERY 1 SECOND DO SELECT 59;
CREATE EVENT ev_drop60 ON SCHEDULE EVERY 1 SECOND DO SELECT 60;
CREATE EVENT ev_drop61 ON SCHEDULE EVERY 1 SECOND DO SELECT 61;
CREATE EVENT ev_drop62 ON SCHEDULE EVERY 1 SECOND DO SELECT 62;
CREATE EVENT ev_drop63 ON SCHEDULE EVERY 1 SECOND DO SELECT 63;
CREATE EVENT ev_drop64 ON SCHEDULE EVERY 1 SECOND DO SELECT 64;
CREATE EVENT ev_drop65 ON SCHEDULE EVERY 1 SECOND DO SELECT 65;
CREATE EVENT ev_drop66 ON SCHEDULE EVERY 1 SECOND DO SELECT 66;
CREATE EVENT ev_drop67 ON SCHEDULE EVERY 1 SECOND DO SELECT 67;
CREATE EVENT ev_drop68 ON SCHEDULE EVERY 1 SECOND DO SELECT 68;
CREATE EVENT ev_drop69 ON SCHEDULE EVERY 1 SECOND DO SELECT 69;
CREATE EVENT ev_drop70 ON SCHEDULE EVERY 1 SECOND DO SELECT 70;
CREATE EVENT ev_drop71 ON SCHEDULE EVERY 1 SECOND DO SELECT 71;
CREATE EVENT ev_drop72 ON SCHEDULE EVERY 1 SECOND DO SELECT 72;
CREATE EVENT ev_drop73 ON SCHEDULE EVERY 1 SECOND DO SELECT 73;
CREATE EVENT ev_drop74 ON SCHEDULE EVERY 1 SECOND DO SELECT 74;
CREATE EVENT ev_drop75 ON SCHEDULE EVERY 1 SECOND DO SELECT 75;
CREATE EVENT ev_drop76 ON SCHEDULE EVERY 1 SECOND DO SELECT 76;
CREATE EVENT ev_drop77 ON SCHEDULE EVERY 1 SECOND DO SELECT 77;
CREATE EVENT ev_drop78 ON SCHEDULE EVERY 1 SECOND DO SELECT 78;
CREATE EVENT ev_drop79 ON SCHEDULE EVERY 1 SECOND DO SELECT 79;
CREATE EVENT ev_drop80 ON SCHEDULE EVERY 1 SECOND DO SELECT 80;
CREATE EVENT ev_drop81 ON SCHEDULE EVERY 1 SECOND DO SELECT 81;
CREATE EVENT ev_drop82 ON SCHEDULE EVERY 1 SECOND DO SELECT 82;
CREATE EVENT ev_drop83 ON SCHEDULE EVERY 1 SECOND DO SELECT 83;
CREATE EVENT ev_drop84 ON SCHEDULE EVERY 1 SECOND DO SELECT 84;
CREATE EVENT ev_drop85 ON SCHEDULE EVERY 1 SECOND DO SELECT 85;
CREATE EVENT ev_drop86 ON SCHEDULE EVERY 1 SECOND DO SELECT 86;
CREATE EVENT ev_drop87 ON SCHEDULE EVERY 1 SECOND DO SELECT 87;
CREATE EVENT ev_drop88 ON SCHEDULE EVERY 1 SECOND DO SELECT 88;
CREATE EVENT ev_drop89 ON SCHEDULE EVERY 1 SECOND DO SELECT 89;
CREATE EVENT ev_drop90 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop91 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop92 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop93 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop94 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop95 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop96 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop97 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop98 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop99 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop100 ON SCHEDULE EVERY 1 SECOND DO SELECT 100;
CREATE EVENT ev_drop101 ON SCHEDULE EVERY 1 SECOND DO SELECT 101;
CREATE EVENT ev_drop102 ON SCHEDULE EVERY 1 SECOND DO SELECT 102;
CREATE EVENT ev_drop103 ON SCHEDULE EVERY 1 SECOND DO SELECT 103;
CREATE EVENT ev_drop104 ON SCHEDULE EVERY 1 SECOND DO SELECT 104;
CREATE EVENT ev_drop105 ON SCHEDULE EVERY 1 SECOND DO SELECT 105;
CREATE EVENT ev_drop106 ON SCHEDULE EVERY 1 SECOND DO SELECT 106;
CREATE EVENT ev_drop107 ON SCHEDULE EVERY 1 SECOND DO SELECT 107;
CREATE EVENT ev_drop108 ON SCHEDULE EVERY 1 SECOND DO SELECT 108;
CREATE EVENT ev_drop109 ON SCHEDULE EVERY 1 SECOND DO SELECT 109;
CREATE EVENT ev_drop110 ON SCHEDULE EVERY 1 SECOND DO SELECT 110;
CREATE EVENT ev_drop111 ON SCHEDULE EVERY 1 SECOND DO SELECT 111;
CREATE EVENT ev_drop112 ON SCHEDULE EVERY 1 SECOND DO SELECT 112;
CREATE EVENT ev_drop113 ON SCHEDULE EVERY 1 SECOND DO SELECT 113;
CREATE EVENT ev_drop114 ON SCHEDULE EVERY 1 SECOND DO SELECT 114;
CREATE EVENT ev_drop115 ON SCHEDULE EVERY 1 SECOND DO SELECT 115;
CREATE EVENT ev_drop116 ON SCHEDULE EVERY 1 SECOND DO SELECT 116;
CREATE EVENT ev_drop117 ON SCHEDULE EVERY 1 SECOND DO SELECT 117;
CREATE EVENT ev_drop118 ON SCHEDULE EVERY 1 SECOND DO SELECT 118;
CREATE EVENT ev_drop119 ON SCHEDULE EVERY 1 SECOND DO SELECT 119;
CREATE EVENT ev_drop120 ON SCHEDULE EVERY 1 SECOND DO SELECT 120;
CREATE EVENT ev_drop121 ON SCHEDULE EVERY 1 SECOND DO SELECT 121;
CREATE EVENT ev_drop122 ON SCHEDULE EVERY 1 SECOND DO SELECT 122;
CREATE EVENT ev_drop123 ON SCHEDULE EVERY 1 SECOND DO SELECT 123;
CREATE EVENT ev_drop124 ON SCHEDULE EVERY 1 SECOND DO SELECT 124;
CREATE EVENT ev_drop125 ON SCHEDULE EVERY 1 SECOND DO SELECT 125;
CREATE EVENT ev_drop126 ON SCHEDULE EVERY 1 SECOND DO SELECT 126;
CREATE EVENT ev_drop127 ON SCHEDULE EVERY 1 SECOND DO SELECT 127;
CREATE EVENT ev_drop128 ON SCHEDULE EVERY 1 SECOND DO SELECT 128;
CREATE EVENT ev_drop129 ON SCHEDULE EVERY 1 SECOND DO SELECT 129;
CREATE EVENT ev_drop130 ON SCHEDULE EVERY 1 SECOND DO SELECT 130;
CREATE EVENT ev_drop131 ON SCHEDULE EVERY 1 SECOND DO SELECT 131;
CREATE EVENT ev_drop132 ON SCHEDULE EVERY 1 SECOND DO SELECT 132;
CREATE EVENT ev_drop133 ON SCHEDULE EVERY 1 SECOND DO SELECT 133;
CREATE EVENT ev_drop134 ON SCHEDULE EVERY 1 SECOND DO SELECT 134;
CREATE EVENT ev_drop135 ON SCHEDULE EVERY 1 SECOND DO SELECT 135;
CREATE EVENT ev_drop136 ON SCHEDULE EVERY 1 SECOND DO SELECT 136;
CREATE EVENT ev_drop137 ON SCHEDULE EVERY 1 SECOND DO SELECT 137;
CREATE EVENT ev_drop138 ON SCHEDULE EVERY 1 SECOND DO SELECT 138;
CREATE EVENT ev_drop139 ON SCHEDULE EVERY 1 SECOND DO SELECT 139;
CREATE EVENT ev_drop140 ON SCHEDULE EVERY 1 SECOND DO SELECT 140;
CREATE EVENT ev_drop141 ON SCHEDULE EVERY 1 SECOND DO SELECT 141;
CREATE EVENT ev_drop142 ON SCHEDULE EVERY 1 SECOND DO SELECT 142;
CREATE EVENT ev_drop143 ON SCHEDULE EVERY 1 SECOND DO SELECT 143;
CREATE EVENT ev_drop144 ON SCHEDULE EVERY 1 SECOND DO SELECT 144;
CREATE EVENT ev_drop145 ON SCHEDULE EVERY 1 SECOND DO SELECT 145;
CREATE EVENT ev_drop146 ON SCHEDULE EVERY 1 SECOND DO SELECT 146;
CREATE EVENT ev_drop147 ON SCHEDULE EVERY 1 SECOND DO SELECT 147;
CREATE EVENT ev_drop148 ON SCHEDULE EVERY 1 SECOND DO SELECT 148;
CREATE EVENT ev_drop149 ON SCHEDULE EVERY 1 SECOND DO SELECT 149;
CREATE EVENT ev_drop150 ON SCHEDULE EVERY 1 SECOND DO SELECT 150;
CREATE EVENT ev_drop151 ON SCHEDULE EVERY 1 SECOND DO SELECT 151;
CREATE EVENT ev_drop152 ON SCHEDULE EVERY 1 SECOND DO SELECT 152;
CREATE EVENT ev_drop153 ON SCHEDULE EVERY 1 SECOND DO SELECT 153;
CREATE EVENT ev_drop154 ON SCHEDULE EVERY 1 SECOND DO SELECT 154;
CREATE EVENT ev_drop155 ON SCHEDULE EVERY 1 SECOND DO SELECT 155;
CREATE EVENT ev_drop156 ON SCHEDULE EVERY 1 SECOND DO SELECT 156;
CREATE EVENT ev_drop157 ON SCHEDULE EVERY 1 SECOND DO SELECT 157;
CREATE EVENT ev_drop158 ON SCHEDULE EVERY 1 SECOND DO SELECT 158;
CREATE EVENT ev_drop159 ON SCHEDULE EVERY 1 SECOND DO SELECT 159;
SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_test2';
COUNT(*)
160
DROP DATABASE events_test2;
SET GLOBAL event_scheduler=0;
DROP DATABASE events_test3;
SET GLOBAL event_scheduler=1;
DROP DATABASE events_test4;
SET GLOBAL event_scheduler=1;
USE events_test;
DROP DATABASE events_test;


--- 1.12/mysql-test/t/events.test	2006-01-30 17:11:42 +01:00
+++ 1.13/mysql-test/t/events.test	2006-02-09 14:18:16 +01:00
@@ -109,7 +109,6 @@
 
 
 
-
 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;
 drop event e_26;
--- New file ---
+++ mysql-test/t/events_stress.test	06/02/09 14:18:17
CREATE DATABASE IF NOT EXISTS events_test;
#
# DROP DATABASE test start (bug #16406)
#
CREATE DATABASE events_test2;
USE events_test2;
CREATE EVENT ev_drop1 ON SCHEDULE EVERY 10 MINUTE DISABLE DO SELECT 1;
CREATE EVENT ev_drop2 ON SCHEDULE EVERY 10 MINUTE DISABLE DO SELECT 1;
CREATE EVENT ev_drop3 ON SCHEDULE EVERY 10 MINUTE DISABLE DO SELECT 1;
USE events_test;
SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_test2';
DROP DATABASE events_test2;
SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_test2';
--echo "Now testing stability - dropping db -> events while they are running"
CREATE DATABASE events_test2;
USE events_test2;
CREATE EVENT ev_drop0 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop1 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop2 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop3 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop4 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop5 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop6 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop7 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop8 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop9 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop10 ON SCHEDULE EVERY 1 SECOND DO SELECT 10;
CREATE EVENT ev_drop11 ON SCHEDULE EVERY 1 SECOND DO SELECT 11;
CREATE EVENT ev_drop12 ON SCHEDULE EVERY 1 SECOND DO SELECT 12;
CREATE EVENT ev_drop13 ON SCHEDULE EVERY 1 SECOND DO SELECT 13;
CREATE EVENT ev_drop14 ON SCHEDULE EVERY 1 SECOND DO SELECT 14;
CREATE EVENT ev_drop15 ON SCHEDULE EVERY 1 SECOND DO SELECT 15;
CREATE EVENT ev_drop16 ON SCHEDULE EVERY 1 SECOND DO SELECT 16;
CREATE EVENT ev_drop17 ON SCHEDULE EVERY 1 SECOND DO SELECT 17;
CREATE EVENT ev_drop18 ON SCHEDULE EVERY 1 SECOND DO SELECT 18;
CREATE EVENT ev_drop19 ON SCHEDULE EVERY 1 SECOND DO SELECT 19;
CREATE EVENT ev_drop20 ON SCHEDULE EVERY 1 SECOND DO SELECT 20;
CREATE EVENT ev_drop21 ON SCHEDULE EVERY 1 SECOND DO SELECT 21;
CREATE EVENT ev_drop22 ON SCHEDULE EVERY 1 SECOND DO SELECT 22;
CREATE EVENT ev_drop23 ON SCHEDULE EVERY 1 SECOND DO SELECT 23;
CREATE EVENT ev_drop24 ON SCHEDULE EVERY 1 SECOND DO SELECT 24;
CREATE EVENT ev_drop25 ON SCHEDULE EVERY 1 SECOND DO SELECT 25;
CREATE EVENT ev_drop26 ON SCHEDULE EVERY 1 SECOND DO SELECT 26;
CREATE EVENT ev_drop27 ON SCHEDULE EVERY 1 SECOND DO SELECT 27;
CREATE EVENT ev_drop28 ON SCHEDULE EVERY 1 SECOND DO SELECT 28;
CREATE EVENT ev_drop29 ON SCHEDULE EVERY 1 SECOND DO SELECT 29;
CREATE EVENT ev_drop30 ON SCHEDULE EVERY 1 SECOND DO SELECT 30;
CREATE EVENT ev_drop31 ON SCHEDULE EVERY 1 SECOND DO SELECT 31;
CREATE EVENT ev_drop32 ON SCHEDULE EVERY 1 SECOND DO SELECT 32;
CREATE EVENT ev_drop33 ON SCHEDULE EVERY 1 SECOND DO SELECT 33;
CREATE EVENT ev_drop34 ON SCHEDULE EVERY 1 SECOND DO SELECT 34;
CREATE EVENT ev_drop35 ON SCHEDULE EVERY 1 SECOND DO SELECT 35;
CREATE EVENT ev_drop36 ON SCHEDULE EVERY 1 SECOND DO SELECT 36;
CREATE EVENT ev_drop37 ON SCHEDULE EVERY 1 SECOND DO SELECT 37;
CREATE EVENT ev_drop38 ON SCHEDULE EVERY 1 SECOND DO SELECT 38;
CREATE EVENT ev_drop39 ON SCHEDULE EVERY 1 SECOND DO SELECT 39;
CREATE EVENT ev_drop40 ON SCHEDULE EVERY 1 SECOND DO SELECT 40;
CREATE EVENT ev_drop41 ON SCHEDULE EVERY 1 SECOND DO SELECT 41;
CREATE EVENT ev_drop42 ON SCHEDULE EVERY 1 SECOND DO SELECT 42;
CREATE EVENT ev_drop43 ON SCHEDULE EVERY 1 SECOND DO SELECT 43;
CREATE EVENT ev_drop44 ON SCHEDULE EVERY 1 SECOND DO SELECT 44;
CREATE EVENT ev_drop45 ON SCHEDULE EVERY 1 SECOND DO SELECT 45;
CREATE EVENT ev_drop46 ON SCHEDULE EVERY 1 SECOND DO SELECT 46;
CREATE EVENT ev_drop47 ON SCHEDULE EVERY 1 SECOND DO SELECT 47;
CREATE EVENT ev_drop48 ON SCHEDULE EVERY 1 SECOND DO SELECT 48;
CREATE EVENT ev_drop49 ON SCHEDULE EVERY 1 SECOND DO SELECT 49;
CREATE EVENT ev_drop50 ON SCHEDULE EVERY 1 SECOND DO SELECT 50;
CREATE EVENT ev_drop51 ON SCHEDULE EVERY 1 SECOND DO SELECT 51;
CREATE EVENT ev_drop52 ON SCHEDULE EVERY 1 SECOND DO SELECT 52;
CREATE EVENT ev_drop53 ON SCHEDULE EVERY 1 SECOND DO SELECT 53;
CREATE EVENT ev_drop54 ON SCHEDULE EVERY 1 SECOND DO SELECT 54;
CREATE EVENT ev_drop55 ON SCHEDULE EVERY 1 SECOND DO SELECT 55;
CREATE EVENT ev_drop56 ON SCHEDULE EVERY 1 SECOND DO SELECT 56;
CREATE EVENT ev_drop57 ON SCHEDULE EVERY 1 SECOND DO SELECT 57;
CREATE EVENT ev_drop58 ON SCHEDULE EVERY 1 SECOND DO SELECT 58;
CREATE EVENT ev_drop59 ON SCHEDULE EVERY 1 SECOND DO SELECT 59;
CREATE EVENT ev_drop60 ON SCHEDULE EVERY 1 SECOND DO SELECT 60;
CREATE EVENT ev_drop61 ON SCHEDULE EVERY 1 SECOND DO SELECT 61;
CREATE EVENT ev_drop62 ON SCHEDULE EVERY 1 SECOND DO SELECT 62;
CREATE EVENT ev_drop63 ON SCHEDULE EVERY 1 SECOND DO SELECT 63;
CREATE EVENT ev_drop64 ON SCHEDULE EVERY 1 SECOND DO SELECT 64;
CREATE EVENT ev_drop65 ON SCHEDULE EVERY 1 SECOND DO SELECT 65;
CREATE EVENT ev_drop66 ON SCHEDULE EVERY 1 SECOND DO SELECT 66;
CREATE EVENT ev_drop67 ON SCHEDULE EVERY 1 SECOND DO SELECT 67;
CREATE EVENT ev_drop68 ON SCHEDULE EVERY 1 SECOND DO SELECT 68;
CREATE EVENT ev_drop69 ON SCHEDULE EVERY 1 SECOND DO SELECT 69;
CREATE EVENT ev_drop70 ON SCHEDULE EVERY 1 SECOND DO SELECT 70;
CREATE EVENT ev_drop71 ON SCHEDULE EVERY 1 SECOND DO SELECT 71;
CREATE EVENT ev_drop72 ON SCHEDULE EVERY 1 SECOND DO SELECT 72;
CREATE EVENT ev_drop73 ON SCHEDULE EVERY 1 SECOND DO SELECT 73;
CREATE EVENT ev_drop74 ON SCHEDULE EVERY 1 SECOND DO SELECT 74;
CREATE EVENT ev_drop75 ON SCHEDULE EVERY 1 SECOND DO SELECT 75;
CREATE EVENT ev_drop76 ON SCHEDULE EVERY 1 SECOND DO SELECT 76;
CREATE EVENT ev_drop77 ON SCHEDULE EVERY 1 SECOND DO SELECT 77;
CREATE EVENT ev_drop78 ON SCHEDULE EVERY 1 SECOND DO SELECT 78;
CREATE EVENT ev_drop79 ON SCHEDULE EVERY 1 SECOND DO SELECT 79;
CREATE EVENT ev_drop80 ON SCHEDULE EVERY 1 SECOND DO SELECT 80;
CREATE EVENT ev_drop81 ON SCHEDULE EVERY 1 SECOND DO SELECT 81;
CREATE EVENT ev_drop82 ON SCHEDULE EVERY 1 SECOND DO SELECT 82;
CREATE EVENT ev_drop83 ON SCHEDULE EVERY 1 SECOND DO SELECT 83;
CREATE EVENT ev_drop84 ON SCHEDULE EVERY 1 SECOND DO SELECT 84;
CREATE EVENT ev_drop85 ON SCHEDULE EVERY 1 SECOND DO SELECT 85;
CREATE EVENT ev_drop86 ON SCHEDULE EVERY 1 SECOND DO SELECT 86;
CREATE EVENT ev_drop87 ON SCHEDULE EVERY 1 SECOND DO SELECT 87;
CREATE EVENT ev_drop88 ON SCHEDULE EVERY 1 SECOND DO SELECT 88;
CREATE EVENT ev_drop89 ON SCHEDULE EVERY 1 SECOND DO SELECT 89;
CREATE EVENT ev_drop90 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop91 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop92 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop93 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop94 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop95 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop96 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop97 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop98 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop99 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop100 ON SCHEDULE EVERY 1 SECOND DO SELECT 100;
CREATE EVENT ev_drop101 ON SCHEDULE EVERY 1 SECOND DO SELECT 101;
CREATE EVENT ev_drop102 ON SCHEDULE EVERY 1 SECOND DO SELECT 102;
CREATE EVENT ev_drop103 ON SCHEDULE EVERY 1 SECOND DO SELECT 103;
CREATE EVENT ev_drop104 ON SCHEDULE EVERY 1 SECOND DO SELECT 104;
CREATE EVENT ev_drop105 ON SCHEDULE EVERY 1 SECOND DO SELECT 105;
CREATE EVENT ev_drop106 ON SCHEDULE EVERY 1 SECOND DO SELECT 106;
CREATE EVENT ev_drop107 ON SCHEDULE EVERY 1 SECOND DO SELECT 107;
CREATE EVENT ev_drop108 ON SCHEDULE EVERY 1 SECOND DO SELECT 108;
CREATE EVENT ev_drop109 ON SCHEDULE EVERY 1 SECOND DO SELECT 109;
CREATE EVENT ev_drop110 ON SCHEDULE EVERY 1 SECOND DO SELECT 110;
CREATE EVENT ev_drop111 ON SCHEDULE EVERY 1 SECOND DO SELECT 111;
CREATE EVENT ev_drop112 ON SCHEDULE EVERY 1 SECOND DO SELECT 112;
CREATE EVENT ev_drop113 ON SCHEDULE EVERY 1 SECOND DO SELECT 113;
CREATE EVENT ev_drop114 ON SCHEDULE EVERY 1 SECOND DO SELECT 114;
CREATE EVENT ev_drop115 ON SCHEDULE EVERY 1 SECOND DO SELECT 115;
CREATE EVENT ev_drop116 ON SCHEDULE EVERY 1 SECOND DO SELECT 116;
CREATE EVENT ev_drop117 ON SCHEDULE EVERY 1 SECOND DO SELECT 117;
CREATE EVENT ev_drop118 ON SCHEDULE EVERY 1 SECOND DO SELECT 118;
CREATE EVENT ev_drop119 ON SCHEDULE EVERY 1 SECOND DO SELECT 119;
CREATE EVENT ev_drop120 ON SCHEDULE EVERY 1 SECOND DO SELECT 120;
CREATE EVENT ev_drop121 ON SCHEDULE EVERY 1 SECOND DO SELECT 121;
CREATE EVENT ev_drop122 ON SCHEDULE EVERY 1 SECOND DO SELECT 122;
CREATE EVENT ev_drop123 ON SCHEDULE EVERY 1 SECOND DO SELECT 123;
CREATE EVENT ev_drop124 ON SCHEDULE EVERY 1 SECOND DO SELECT 124;
CREATE EVENT ev_drop125 ON SCHEDULE EVERY 1 SECOND DO SELECT 125;
CREATE EVENT ev_drop126 ON SCHEDULE EVERY 1 SECOND DO SELECT 126;
CREATE EVENT ev_drop127 ON SCHEDULE EVERY 1 SECOND DO SELECT 127;
CREATE EVENT ev_drop128 ON SCHEDULE EVERY 1 SECOND DO SELECT 128;
CREATE EVENT ev_drop129 ON SCHEDULE EVERY 1 SECOND DO SELECT 129;
CREATE EVENT ev_drop130 ON SCHEDULE EVERY 1 SECOND DO SELECT 130;
CREATE EVENT ev_drop131 ON SCHEDULE EVERY 1 SECOND DO SELECT 131;
CREATE EVENT ev_drop132 ON SCHEDULE EVERY 1 SECOND DO SELECT 132;
CREATE EVENT ev_drop133 ON SCHEDULE EVERY 1 SECOND DO SELECT 133;
CREATE EVENT ev_drop134 ON SCHEDULE EVERY 1 SECOND DO SELECT 134;
CREATE EVENT ev_drop135 ON SCHEDULE EVERY 1 SECOND DO SELECT 135;
CREATE EVENT ev_drop136 ON SCHEDULE EVERY 1 SECOND DO SELECT 136;
CREATE EVENT ev_drop137 ON SCHEDULE EVERY 1 SECOND DO SELECT 137;
CREATE EVENT ev_drop138 ON SCHEDULE EVERY 1 SECOND DO SELECT 138;
CREATE EVENT ev_drop139 ON SCHEDULE EVERY 1 SECOND DO SELECT 139;
CREATE EVENT ev_drop140 ON SCHEDULE EVERY 1 SECOND DO SELECT 140;
CREATE EVENT ev_drop141 ON SCHEDULE EVERY 1 SECOND DO SELECT 141;
CREATE EVENT ev_drop142 ON SCHEDULE EVERY 1 SECOND DO SELECT 142;
CREATE EVENT ev_drop143 ON SCHEDULE EVERY 1 SECOND DO SELECT 143;
CREATE EVENT ev_drop144 ON SCHEDULE EVERY 1 SECOND DO SELECT 144;
CREATE EVENT ev_drop145 ON SCHEDULE EVERY 1 SECOND DO SELECT 145;
CREATE EVENT ev_drop146 ON SCHEDULE EVERY 1 SECOND DO SELECT 146;
CREATE EVENT ev_drop147 ON SCHEDULE EVERY 1 SECOND DO SELECT 147;
CREATE EVENT ev_drop148 ON SCHEDULE EVERY 1 SECOND DO SELECT 148;
CREATE EVENT ev_drop149 ON SCHEDULE EVERY 1 SECOND DO SELECT 149;
CREATE EVENT ev_drop150 ON SCHEDULE EVERY 1 SECOND DO SELECT 150;
CREATE EVENT ev_drop151 ON SCHEDULE EVERY 1 SECOND DO SELECT 151;
CREATE EVENT ev_drop152 ON SCHEDULE EVERY 1 SECOND DO SELECT 152;
CREATE EVENT ev_drop153 ON SCHEDULE EVERY 1 SECOND DO SELECT 153;
CREATE EVENT ev_drop154 ON SCHEDULE EVERY 1 SECOND DO SELECT 154;
CREATE EVENT ev_drop155 ON SCHEDULE EVERY 1 SECOND DO SELECT 155;
CREATE EVENT ev_drop156 ON SCHEDULE EVERY 1 SECOND DO SELECT 156;
CREATE EVENT ev_drop157 ON SCHEDULE EVERY 1 SECOND DO SELECT 157;
CREATE EVENT ev_drop158 ON SCHEDULE EVERY 1 SECOND DO SELECT 158;
CREATE EVENT ev_drop159 ON SCHEDULE EVERY 1 SECOND DO SELECT 159;
SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_test2';
SET GLOBAL event_scheduler=1;
--sleep 2
DROP DATABASE events_test2;
SET GLOBAL event_scheduler=0;
--sleep 2
SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_test2';
CREATE DATABASE events_test3;
USE events_test3;
CREATE EVENT ev_drop0 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop1 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop2 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop3 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop4 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop5 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop6 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop7 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop8 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop9 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop10 ON SCHEDULE EVERY 1 SECOND DO SELECT 10;
CREATE EVENT ev_drop11 ON SCHEDULE EVERY 1 SECOND DO SELECT 11;
CREATE EVENT ev_drop12 ON SCHEDULE EVERY 1 SECOND DO SELECT 12;
CREATE EVENT ev_drop13 ON SCHEDULE EVERY 1 SECOND DO SELECT 13;
CREATE EVENT ev_drop14 ON SCHEDULE EVERY 1 SECOND DO SELECT 14;
CREATE EVENT ev_drop15 ON SCHEDULE EVERY 1 SECOND DO SELECT 15;
CREATE EVENT ev_drop16 ON SCHEDULE EVERY 1 SECOND DO SELECT 16;
CREATE EVENT ev_drop17 ON SCHEDULE EVERY 1 SECOND DO SELECT 17;
CREATE EVENT ev_drop18 ON SCHEDULE EVERY 1 SECOND DO SELECT 18;
CREATE EVENT ev_drop19 ON SCHEDULE EVERY 1 SECOND DO SELECT 19;
CREATE EVENT ev_drop20 ON SCHEDULE EVERY 1 SECOND DO SELECT 20;
CREATE EVENT ev_drop21 ON SCHEDULE EVERY 1 SECOND DO SELECT 21;
CREATE EVENT ev_drop22 ON SCHEDULE EVERY 1 SECOND DO SELECT 22;
CREATE EVENT ev_drop23 ON SCHEDULE EVERY 1 SECOND DO SELECT 23;
CREATE EVENT ev_drop24 ON SCHEDULE EVERY 1 SECOND DO SELECT 24;
CREATE EVENT ev_drop25 ON SCHEDULE EVERY 1 SECOND DO SELECT 25;
CREATE EVENT ev_drop26 ON SCHEDULE EVERY 1 SECOND DO SELECT 26;
CREATE EVENT ev_drop27 ON SCHEDULE EVERY 1 SECOND DO SELECT 27;
CREATE EVENT ev_drop28 ON SCHEDULE EVERY 1 SECOND DO SELECT 28;
CREATE EVENT ev_drop29 ON SCHEDULE EVERY 1 SECOND DO SELECT 29;
CREATE EVENT ev_drop30 ON SCHEDULE EVERY 1 SECOND DO SELECT 30;
CREATE EVENT ev_drop31 ON SCHEDULE EVERY 1 SECOND DO SELECT 31;
CREATE EVENT ev_drop32 ON SCHEDULE EVERY 1 SECOND DO SELECT 32;
CREATE EVENT ev_drop33 ON SCHEDULE EVERY 1 SECOND DO SELECT 33;
CREATE EVENT ev_drop34 ON SCHEDULE EVERY 1 SECOND DO SELECT 34;
CREATE EVENT ev_drop35 ON SCHEDULE EVERY 1 SECOND DO SELECT 35;
CREATE EVENT ev_drop36 ON SCHEDULE EVERY 1 SECOND DO SELECT 36;
CREATE EVENT ev_drop37 ON SCHEDULE EVERY 1 SECOND DO SELECT 37;
CREATE EVENT ev_drop38 ON SCHEDULE EVERY 1 SECOND DO SELECT 38;
CREATE EVENT ev_drop39 ON SCHEDULE EVERY 1 SECOND DO SELECT 39;
CREATE EVENT ev_drop40 ON SCHEDULE EVERY 1 SECOND DO SELECT 40;
CREATE EVENT ev_drop41 ON SCHEDULE EVERY 1 SECOND DO SELECT 41;
CREATE EVENT ev_drop42 ON SCHEDULE EVERY 1 SECOND DO SELECT 42;
CREATE EVENT ev_drop43 ON SCHEDULE EVERY 1 SECOND DO SELECT 43;
CREATE EVENT ev_drop44 ON SCHEDULE EVERY 1 SECOND DO SELECT 44;
CREATE EVENT ev_drop45 ON SCHEDULE EVERY 1 SECOND DO SELECT 45;
CREATE EVENT ev_drop46 ON SCHEDULE EVERY 1 SECOND DO SELECT 46;
CREATE EVENT ev_drop47 ON SCHEDULE EVERY 1 SECOND DO SELECT 47;
CREATE EVENT ev_drop48 ON SCHEDULE EVERY 1 SECOND DO SELECT 48;
CREATE EVENT ev_drop49 ON SCHEDULE EVERY 1 SECOND DO SELECT 49;
CREATE EVENT ev_drop50 ON SCHEDULE EVERY 1 SECOND DO SELECT 50;
CREATE EVENT ev_drop51 ON SCHEDULE EVERY 1 SECOND DO SELECT 51;
CREATE EVENT ev_drop52 ON SCHEDULE EVERY 1 SECOND DO SELECT 52;
CREATE EVENT ev_drop53 ON SCHEDULE EVERY 1 SECOND DO SELECT 53;
CREATE EVENT ev_drop54 ON SCHEDULE EVERY 1 SECOND DO SELECT 54;
CREATE EVENT ev_drop55 ON SCHEDULE EVERY 1 SECOND DO SELECT 55;
CREATE EVENT ev_drop56 ON SCHEDULE EVERY 1 SECOND DO SELECT 56;
CREATE EVENT ev_drop57 ON SCHEDULE EVERY 1 SECOND DO SELECT 57;
CREATE EVENT ev_drop58 ON SCHEDULE EVERY 1 SECOND DO SELECT 58;
CREATE EVENT ev_drop59 ON SCHEDULE EVERY 1 SECOND DO SELECT 59;
CREATE EVENT ev_drop60 ON SCHEDULE EVERY 1 SECOND DO SELECT 60;
CREATE EVENT ev_drop61 ON SCHEDULE EVERY 1 SECOND DO SELECT 61;
CREATE EVENT ev_drop62 ON SCHEDULE EVERY 1 SECOND DO SELECT 62;
CREATE EVENT ev_drop63 ON SCHEDULE EVERY 1 SECOND DO SELECT 63;
CREATE EVENT ev_drop64 ON SCHEDULE EVERY 1 SECOND DO SELECT 64;
CREATE EVENT ev_drop65 ON SCHEDULE EVERY 1 SECOND DO SELECT 65;
CREATE EVENT ev_drop66 ON SCHEDULE EVERY 1 SECOND DO SELECT 66;
CREATE EVENT ev_drop67 ON SCHEDULE EVERY 1 SECOND DO SELECT 67;
CREATE EVENT ev_drop68 ON SCHEDULE EVERY 1 SECOND DO SELECT 68;
CREATE EVENT ev_drop69 ON SCHEDULE EVERY 1 SECOND DO SELECT 69;
CREATE EVENT ev_drop70 ON SCHEDULE EVERY 1 SECOND DO SELECT 70;
CREATE EVENT ev_drop71 ON SCHEDULE EVERY 1 SECOND DO SELECT 71;
CREATE EVENT ev_drop72 ON SCHEDULE EVERY 1 SECOND DO SELECT 72;
CREATE EVENT ev_drop73 ON SCHEDULE EVERY 1 SECOND DO SELECT 73;
CREATE EVENT ev_drop74 ON SCHEDULE EVERY 1 SECOND DO SELECT 74;
CREATE EVENT ev_drop75 ON SCHEDULE EVERY 1 SECOND DO SELECT 75;
CREATE EVENT ev_drop76 ON SCHEDULE EVERY 1 SECOND DO SELECT 76;
CREATE EVENT ev_drop77 ON SCHEDULE EVERY 1 SECOND DO SELECT 77;
CREATE EVENT ev_drop78 ON SCHEDULE EVERY 1 SECOND DO SELECT 78;
CREATE EVENT ev_drop79 ON SCHEDULE EVERY 1 SECOND DO SELECT 79;
CREATE EVENT ev_drop80 ON SCHEDULE EVERY 1 SECOND DO SELECT 80;
CREATE EVENT ev_drop81 ON SCHEDULE EVERY 1 SECOND DO SELECT 81;
CREATE EVENT ev_drop82 ON SCHEDULE EVERY 1 SECOND DO SELECT 82;
CREATE EVENT ev_drop83 ON SCHEDULE EVERY 1 SECOND DO SELECT 83;
CREATE EVENT ev_drop84 ON SCHEDULE EVERY 1 SECOND DO SELECT 84;
CREATE EVENT ev_drop85 ON SCHEDULE EVERY 1 SECOND DO SELECT 85;
CREATE EVENT ev_drop86 ON SCHEDULE EVERY 1 SECOND DO SELECT 86;
CREATE EVENT ev_drop87 ON SCHEDULE EVERY 1 SECOND DO SELECT 87;
CREATE EVENT ev_drop88 ON SCHEDULE EVERY 1 SECOND DO SELECT 88;
CREATE EVENT ev_drop89 ON SCHEDULE EVERY 1 SECOND DO SELECT 89;
CREATE EVENT ev_drop90 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop91 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop92 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop93 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop94 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop95 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop96 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop97 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop98 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop99 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop100 ON SCHEDULE EVERY 1 SECOND DO SELECT 100;
CREATE EVENT ev_drop101 ON SCHEDULE EVERY 1 SECOND DO SELECT 101;
CREATE EVENT ev_drop102 ON SCHEDULE EVERY 1 SECOND DO SELECT 102;
CREATE EVENT ev_drop103 ON SCHEDULE EVERY 1 SECOND DO SELECT 103;
CREATE EVENT ev_drop104 ON SCHEDULE EVERY 1 SECOND DO SELECT 104;
CREATE EVENT ev_drop105 ON SCHEDULE EVERY 1 SECOND DO SELECT 105;
CREATE EVENT ev_drop106 ON SCHEDULE EVERY 1 SECOND DO SELECT 106;
CREATE EVENT ev_drop107 ON SCHEDULE EVERY 1 SECOND DO SELECT 107;
CREATE EVENT ev_drop108 ON SCHEDULE EVERY 1 SECOND DO SELECT 108;
CREATE EVENT ev_drop109 ON SCHEDULE EVERY 1 SECOND DO SELECT 109;
CREATE EVENT ev_drop110 ON SCHEDULE EVERY 1 SECOND DO SELECT 110;
CREATE EVENT ev_drop111 ON SCHEDULE EVERY 1 SECOND DO SELECT 111;
CREATE EVENT ev_drop112 ON SCHEDULE EVERY 1 SECOND DO SELECT 112;
CREATE EVENT ev_drop113 ON SCHEDULE EVERY 1 SECOND DO SELECT 113;
CREATE EVENT ev_drop114 ON SCHEDULE EVERY 1 SECOND DO SELECT 114;
CREATE EVENT ev_drop115 ON SCHEDULE EVERY 1 SECOND DO SELECT 115;
CREATE EVENT ev_drop116 ON SCHEDULE EVERY 1 SECOND DO SELECT 116;
CREATE EVENT ev_drop117 ON SCHEDULE EVERY 1 SECOND DO SELECT 117;
CREATE EVENT ev_drop118 ON SCHEDULE EVERY 1 SECOND DO SELECT 118;
CREATE EVENT ev_drop119 ON SCHEDULE EVERY 1 SECOND DO SELECT 119;
CREATE EVENT ev_drop120 ON SCHEDULE EVERY 1 SECOND DO SELECT 120;
CREATE EVENT ev_drop121 ON SCHEDULE EVERY 1 SECOND DO SELECT 121;
CREATE EVENT ev_drop122 ON SCHEDULE EVERY 1 SECOND DO SELECT 122;
CREATE EVENT ev_drop123 ON SCHEDULE EVERY 1 SECOND DO SELECT 123;
CREATE EVENT ev_drop124 ON SCHEDULE EVERY 1 SECOND DO SELECT 124;
CREATE EVENT ev_drop125 ON SCHEDULE EVERY 1 SECOND DO SELECT 125;
CREATE EVENT ev_drop126 ON SCHEDULE EVERY 1 SECOND DO SELECT 126;
CREATE EVENT ev_drop127 ON SCHEDULE EVERY 1 SECOND DO SELECT 127;
CREATE EVENT ev_drop128 ON SCHEDULE EVERY 1 SECOND DO SELECT 128;
CREATE EVENT ev_drop129 ON SCHEDULE EVERY 1 SECOND DO SELECT 129;
CREATE EVENT ev_drop130 ON SCHEDULE EVERY 1 SECOND DO SELECT 130;
CREATE EVENT ev_drop131 ON SCHEDULE EVERY 1 SECOND DO SELECT 131;
CREATE EVENT ev_drop132 ON SCHEDULE EVERY 1 SECOND DO SELECT 132;
CREATE EVENT ev_drop133 ON SCHEDULE EVERY 1 SECOND DO SELECT 133;
CREATE EVENT ev_drop134 ON SCHEDULE EVERY 1 SECOND DO SELECT 134;
CREATE EVENT ev_drop135 ON SCHEDULE EVERY 1 SECOND DO SELECT 135;
CREATE EVENT ev_drop136 ON SCHEDULE EVERY 1 SECOND DO SELECT 136;
CREATE EVENT ev_drop137 ON SCHEDULE EVERY 1 SECOND DO SELECT 137;
CREATE EVENT ev_drop138 ON SCHEDULE EVERY 1 SECOND DO SELECT 138;
CREATE EVENT ev_drop139 ON SCHEDULE EVERY 1 SECOND DO SELECT 139;
CREATE EVENT ev_drop140 ON SCHEDULE EVERY 1 SECOND DO SELECT 140;
CREATE EVENT ev_drop141 ON SCHEDULE EVERY 1 SECOND DO SELECT 141;
CREATE EVENT ev_drop142 ON SCHEDULE EVERY 1 SECOND DO SELECT 142;
CREATE EVENT ev_drop143 ON SCHEDULE EVERY 1 SECOND DO SELECT 143;
CREATE EVENT ev_drop144 ON SCHEDULE EVERY 1 SECOND DO SELECT 144;
CREATE EVENT ev_drop145 ON SCHEDULE EVERY 1 SECOND DO SELECT 145;
CREATE EVENT ev_drop146 ON SCHEDULE EVERY 1 SECOND DO SELECT 146;
CREATE EVENT ev_drop147 ON SCHEDULE EVERY 1 SECOND DO SELECT 147;
CREATE EVENT ev_drop148 ON SCHEDULE EVERY 1 SECOND DO SELECT 148;
CREATE EVENT ev_drop149 ON SCHEDULE EVERY 1 SECOND DO SELECT 149;
CREATE EVENT ev_drop150 ON SCHEDULE EVERY 1 SECOND DO SELECT 150;
CREATE EVENT ev_drop151 ON SCHEDULE EVERY 1 SECOND DO SELECT 151;
CREATE EVENT ev_drop152 ON SCHEDULE EVERY 1 SECOND DO SELECT 152;
CREATE EVENT ev_drop153 ON SCHEDULE EVERY 1 SECOND DO SELECT 153;
CREATE EVENT ev_drop154 ON SCHEDULE EVERY 1 SECOND DO SELECT 154;
CREATE EVENT ev_drop155 ON SCHEDULE EVERY 1 SECOND DO SELECT 155;
CREATE EVENT ev_drop156 ON SCHEDULE EVERY 1 SECOND DO SELECT 156;
CREATE EVENT ev_drop157 ON SCHEDULE EVERY 1 SECOND DO SELECT 157;
CREATE EVENT ev_drop158 ON SCHEDULE EVERY 1 SECOND DO SELECT 158;
CREATE EVENT ev_drop159 ON SCHEDULE EVERY 1 SECOND DO SELECT 159;
CREATE DATABASE events_test4;
USE events_test4;
CREATE EVENT ev_drop0 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop1 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop2 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop3 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop4 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop5 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop6 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop7 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop8 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop9 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop10 ON SCHEDULE EVERY 1 SECOND DO SELECT 10;
CREATE EVENT ev_drop11 ON SCHEDULE EVERY 1 SECOND DO SELECT 11;
CREATE EVENT ev_drop12 ON SCHEDULE EVERY 1 SECOND DO SELECT 12;
CREATE EVENT ev_drop13 ON SCHEDULE EVERY 1 SECOND DO SELECT 13;
CREATE EVENT ev_drop14 ON SCHEDULE EVERY 1 SECOND DO SELECT 14;
CREATE EVENT ev_drop15 ON SCHEDULE EVERY 1 SECOND DO SELECT 15;
CREATE EVENT ev_drop16 ON SCHEDULE EVERY 1 SECOND DO SELECT 16;
CREATE EVENT ev_drop17 ON SCHEDULE EVERY 1 SECOND DO SELECT 17;
CREATE EVENT ev_drop18 ON SCHEDULE EVERY 1 SECOND DO SELECT 18;
CREATE EVENT ev_drop19 ON SCHEDULE EVERY 1 SECOND DO SELECT 19;
CREATE EVENT ev_drop20 ON SCHEDULE EVERY 1 SECOND DO SELECT 20;
CREATE EVENT ev_drop21 ON SCHEDULE EVERY 1 SECOND DO SELECT 21;
CREATE EVENT ev_drop22 ON SCHEDULE EVERY 1 SECOND DO SELECT 22;
CREATE EVENT ev_drop23 ON SCHEDULE EVERY 1 SECOND DO SELECT 23;
CREATE EVENT ev_drop24 ON SCHEDULE EVERY 1 SECOND DO SELECT 24;
CREATE EVENT ev_drop25 ON SCHEDULE EVERY 1 SECOND DO SELECT 25;
CREATE EVENT ev_drop26 ON SCHEDULE EVERY 1 SECOND DO SELECT 26;
CREATE EVENT ev_drop27 ON SCHEDULE EVERY 1 SECOND DO SELECT 27;
CREATE EVENT ev_drop28 ON SCHEDULE EVERY 1 SECOND DO SELECT 28;
CREATE EVENT ev_drop29 ON SCHEDULE EVERY 1 SECOND DO SELECT 29;
CREATE EVENT ev_drop30 ON SCHEDULE EVERY 1 SECOND DO SELECT 30;
CREATE EVENT ev_drop31 ON SCHEDULE EVERY 1 SECOND DO SELECT 31;
CREATE EVENT ev_drop32 ON SCHEDULE EVERY 1 SECOND DO SELECT 32;
CREATE EVENT ev_drop33 ON SCHEDULE EVERY 1 SECOND DO SELECT 33;
CREATE EVENT ev_drop34 ON SCHEDULE EVERY 1 SECOND DO SELECT 34;
CREATE EVENT ev_drop35 ON SCHEDULE EVERY 1 SECOND DO SELECT 35;
CREATE EVENT ev_drop36 ON SCHEDULE EVERY 1 SECOND DO SELECT 36;
CREATE EVENT ev_drop37 ON SCHEDULE EVERY 1 SECOND DO SELECT 37;
CREATE EVENT ev_drop38 ON SCHEDULE EVERY 1 SECOND DO SELECT 38;
CREATE EVENT ev_drop39 ON SCHEDULE EVERY 1 SECOND DO SELECT 39;
CREATE EVENT ev_drop40 ON SCHEDULE EVERY 1 SECOND DO SELECT 40;
CREATE EVENT ev_drop41 ON SCHEDULE EVERY 1 SECOND DO SELECT 41;
CREATE EVENT ev_drop42 ON SCHEDULE EVERY 1 SECOND DO SELECT 42;
CREATE EVENT ev_drop43 ON SCHEDULE EVERY 1 SECOND DO SELECT 43;
CREATE EVENT ev_drop44 ON SCHEDULE EVERY 1 SECOND DO SELECT 44;
CREATE EVENT ev_drop45 ON SCHEDULE EVERY 1 SECOND DO SELECT 45;
CREATE EVENT ev_drop46 ON SCHEDULE EVERY 1 SECOND DO SELECT 46;
CREATE EVENT ev_drop47 ON SCHEDULE EVERY 1 SECOND DO SELECT 47;
CREATE EVENT ev_drop48 ON SCHEDULE EVERY 1 SECOND DO SELECT 48;
CREATE EVENT ev_drop49 ON SCHEDULE EVERY 1 SECOND DO SELECT 49;
CREATE EVENT ev_drop50 ON SCHEDULE EVERY 1 SECOND DO SELECT 50;
CREATE EVENT ev_drop51 ON SCHEDULE EVERY 1 SECOND DO SELECT 51;
CREATE EVENT ev_drop52 ON SCHEDULE EVERY 1 SECOND DO SELECT 52;
CREATE EVENT ev_drop53 ON SCHEDULE EVERY 1 SECOND DO SELECT 53;
CREATE EVENT ev_drop54 ON SCHEDULE EVERY 1 SECOND DO SELECT 54;
CREATE EVENT ev_drop55 ON SCHEDULE EVERY 1 SECOND DO SELECT 55;
CREATE EVENT ev_drop56 ON SCHEDULE EVERY 1 SECOND DO SELECT 56;
CREATE EVENT ev_drop57 ON SCHEDULE EVERY 1 SECOND DO SELECT 57;
CREATE EVENT ev_drop58 ON SCHEDULE EVERY 1 SECOND DO SELECT 58;
CREATE EVENT ev_drop59 ON SCHEDULE EVERY 1 SECOND DO SELECT 59;
CREATE EVENT ev_drop60 ON SCHEDULE EVERY 1 SECOND DO SELECT 60;
CREATE EVENT ev_drop61 ON SCHEDULE EVERY 1 SECOND DO SELECT 61;
CREATE EVENT ev_drop62 ON SCHEDULE EVERY 1 SECOND DO SELECT 62;
CREATE EVENT ev_drop63 ON SCHEDULE EVERY 1 SECOND DO SELECT 63;
CREATE EVENT ev_drop64 ON SCHEDULE EVERY 1 SECOND DO SELECT 64;
CREATE EVENT ev_drop65 ON SCHEDULE EVERY 1 SECOND DO SELECT 65;
CREATE EVENT ev_drop66 ON SCHEDULE EVERY 1 SECOND DO SELECT 66;
CREATE EVENT ev_drop67 ON SCHEDULE EVERY 1 SECOND DO SELECT 67;
CREATE EVENT ev_drop68 ON SCHEDULE EVERY 1 SECOND DO SELECT 68;
CREATE EVENT ev_drop69 ON SCHEDULE EVERY 1 SECOND DO SELECT 69;
CREATE EVENT ev_drop70 ON SCHEDULE EVERY 1 SECOND DO SELECT 70;
CREATE EVENT ev_drop71 ON SCHEDULE EVERY 1 SECOND DO SELECT 71;
CREATE EVENT ev_drop72 ON SCHEDULE EVERY 1 SECOND DO SELECT 72;
CREATE EVENT ev_drop73 ON SCHEDULE EVERY 1 SECOND DO SELECT 73;
CREATE EVENT ev_drop74 ON SCHEDULE EVERY 1 SECOND DO SELECT 74;
CREATE EVENT ev_drop75 ON SCHEDULE EVERY 1 SECOND DO SELECT 75;
CREATE EVENT ev_drop76 ON SCHEDULE EVERY 1 SECOND DO SELECT 76;
CREATE EVENT ev_drop77 ON SCHEDULE EVERY 1 SECOND DO SELECT 77;
CREATE EVENT ev_drop78 ON SCHEDULE EVERY 1 SECOND DO SELECT 78;
CREATE EVENT ev_drop79 ON SCHEDULE EVERY 1 SECOND DO SELECT 79;
CREATE EVENT ev_drop80 ON SCHEDULE EVERY 1 SECOND DO SELECT 80;
CREATE EVENT ev_drop81 ON SCHEDULE EVERY 1 SECOND DO SELECT 81;
CREATE EVENT ev_drop82 ON SCHEDULE EVERY 1 SECOND DO SELECT 82;
CREATE EVENT ev_drop83 ON SCHEDULE EVERY 1 SECOND DO SELECT 83;
CREATE EVENT ev_drop84 ON SCHEDULE EVERY 1 SECOND DO SELECT 84;
CREATE EVENT ev_drop85 ON SCHEDULE EVERY 1 SECOND DO SELECT 85;
CREATE EVENT ev_drop86 ON SCHEDULE EVERY 1 SECOND DO SELECT 86;
CREATE EVENT ev_drop87 ON SCHEDULE EVERY 1 SECOND DO SELECT 87;
CREATE EVENT ev_drop88 ON SCHEDULE EVERY 1 SECOND DO SELECT 88;
CREATE EVENT ev_drop89 ON SCHEDULE EVERY 1 SECOND DO SELECT 89;
CREATE EVENT ev_drop90 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop91 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop92 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop93 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop94 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop95 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop96 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop97 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop98 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop99 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop100 ON SCHEDULE EVERY 1 SECOND DO SELECT 100;
CREATE EVENT ev_drop101 ON SCHEDULE EVERY 1 SECOND DO SELECT 101;
CREATE EVENT ev_drop102 ON SCHEDULE EVERY 1 SECOND DO SELECT 102;
CREATE EVENT ev_drop103 ON SCHEDULE EVERY 1 SECOND DO SELECT 103;
CREATE EVENT ev_drop104 ON SCHEDULE EVERY 1 SECOND DO SELECT 104;
CREATE EVENT ev_drop105 ON SCHEDULE EVERY 1 SECOND DO SELECT 105;
CREATE EVENT ev_drop106 ON SCHEDULE EVERY 1 SECOND DO SELECT 106;
CREATE EVENT ev_drop107 ON SCHEDULE EVERY 1 SECOND DO SELECT 107;
CREATE EVENT ev_drop108 ON SCHEDULE EVERY 1 SECOND DO SELECT 108;
CREATE EVENT ev_drop109 ON SCHEDULE EVERY 1 SECOND DO SELECT 109;
CREATE EVENT ev_drop110 ON SCHEDULE EVERY 1 SECOND DO SELECT 110;
CREATE EVENT ev_drop111 ON SCHEDULE EVERY 1 SECOND DO SELECT 111;
CREATE EVENT ev_drop112 ON SCHEDULE EVERY 1 SECOND DO SELECT 112;
CREATE EVENT ev_drop113 ON SCHEDULE EVERY 1 SECOND DO SELECT 113;
CREATE EVENT ev_drop114 ON SCHEDULE EVERY 1 SECOND DO SELECT 114;
CREATE EVENT ev_drop115 ON SCHEDULE EVERY 1 SECOND DO SELECT 115;
CREATE EVENT ev_drop116 ON SCHEDULE EVERY 1 SECOND DO SELECT 116;
CREATE EVENT ev_drop117 ON SCHEDULE EVERY 1 SECOND DO SELECT 117;
CREATE EVENT ev_drop118 ON SCHEDULE EVERY 1 SECOND DO SELECT 118;
CREATE EVENT ev_drop119 ON SCHEDULE EVERY 1 SECOND DO SELECT 119;
CREATE EVENT ev_drop120 ON SCHEDULE EVERY 1 SECOND DO SELECT 120;
CREATE EVENT ev_drop121 ON SCHEDULE EVERY 1 SECOND DO SELECT 121;
CREATE EVENT ev_drop122 ON SCHEDULE EVERY 1 SECOND DO SELECT 122;
CREATE EVENT ev_drop123 ON SCHEDULE EVERY 1 SECOND DO SELECT 123;
CREATE EVENT ev_drop124 ON SCHEDULE EVERY 1 SECOND DO SELECT 124;
CREATE EVENT ev_drop125 ON SCHEDULE EVERY 1 SECOND DO SELECT 125;
CREATE EVENT ev_drop126 ON SCHEDULE EVERY 1 SECOND DO SELECT 126;
CREATE EVENT ev_drop127 ON SCHEDULE EVERY 1 SECOND DO SELECT 127;
CREATE EVENT ev_drop128 ON SCHEDULE EVERY 1 SECOND DO SELECT 128;
CREATE EVENT ev_drop129 ON SCHEDULE EVERY 1 SECOND DO SELECT 129;
CREATE EVENT ev_drop130 ON SCHEDULE EVERY 1 SECOND DO SELECT 130;
CREATE EVENT ev_drop131 ON SCHEDULE EVERY 1 SECOND DO SELECT 131;
CREATE EVENT ev_drop132 ON SCHEDULE EVERY 1 SECOND DO SELECT 132;
CREATE EVENT ev_drop133 ON SCHEDULE EVERY 1 SECOND DO SELECT 133;
CREATE EVENT ev_drop134 ON SCHEDULE EVERY 1 SECOND DO SELECT 134;
CREATE EVENT ev_drop135 ON SCHEDULE EVERY 1 SECOND DO SELECT 135;
CREATE EVENT ev_drop136 ON SCHEDULE EVERY 1 SECOND DO SELECT 136;
CREATE EVENT ev_drop137 ON SCHEDULE EVERY 1 SECOND DO SELECT 137;
CREATE EVENT ev_drop138 ON SCHEDULE EVERY 1 SECOND DO SELECT 138;
CREATE EVENT ev_drop139 ON SCHEDULE EVERY 1 SECOND DO SELECT 139;
CREATE EVENT ev_drop140 ON SCHEDULE EVERY 1 SECOND DO SELECT 140;
CREATE EVENT ev_drop141 ON SCHEDULE EVERY 1 SECOND DO SELECT 141;
CREATE EVENT ev_drop142 ON SCHEDULE EVERY 1 SECOND DO SELECT 142;
CREATE EVENT ev_drop143 ON SCHEDULE EVERY 1 SECOND DO SELECT 143;
CREATE EVENT ev_drop144 ON SCHEDULE EVERY 1 SECOND DO SELECT 144;
CREATE EVENT ev_drop145 ON SCHEDULE EVERY 1 SECOND DO SELECT 145;
CREATE EVENT ev_drop146 ON SCHEDULE EVERY 1 SECOND DO SELECT 146;
CREATE EVENT ev_drop147 ON SCHEDULE EVERY 1 SECOND DO SELECT 147;
CREATE EVENT ev_drop148 ON SCHEDULE EVERY 1 SECOND DO SELECT 148;
CREATE EVENT ev_drop149 ON SCHEDULE EVERY 1 SECOND DO SELECT 149;
CREATE EVENT ev_drop150 ON SCHEDULE EVERY 1 SECOND DO SELECT 150;
CREATE EVENT ev_drop151 ON SCHEDULE EVERY 1 SECOND DO SELECT 151;
CREATE EVENT ev_drop152 ON SCHEDULE EVERY 1 SECOND DO SELECT 152;
CREATE EVENT ev_drop153 ON SCHEDULE EVERY 1 SECOND DO SELECT 153;
CREATE EVENT ev_drop154 ON SCHEDULE EVERY 1 SECOND DO SELECT 154;
CREATE EVENT ev_drop155 ON SCHEDULE EVERY 1 SECOND DO SELECT 155;
CREATE EVENT ev_drop156 ON SCHEDULE EVERY 1 SECOND DO SELECT 156;
CREATE EVENT ev_drop157 ON SCHEDULE EVERY 1 SECOND DO SELECT 157;
CREATE EVENT ev_drop158 ON SCHEDULE EVERY 1 SECOND DO SELECT 158;
CREATE EVENT ev_drop159 ON SCHEDULE EVERY 1 SECOND DO SELECT 159;
CREATE DATABASE events_test2;
USE events_test2;
SET GLOBAL event_scheduler=1;
CREATE EVENT ev_drop0 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop1 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop2 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop3 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop4 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop5 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop6 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop7 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop8 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop9 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop10 ON SCHEDULE EVERY 1 SECOND DO SELECT 10;
CREATE EVENT ev_drop11 ON SCHEDULE EVERY 1 SECOND DO SELECT 11;
CREATE EVENT ev_drop12 ON SCHEDULE EVERY 1 SECOND DO SELECT 12;
CREATE EVENT ev_drop13 ON SCHEDULE EVERY 1 SECOND DO SELECT 13;
CREATE EVENT ev_drop14 ON SCHEDULE EVERY 1 SECOND DO SELECT 14;
CREATE EVENT ev_drop15 ON SCHEDULE EVERY 1 SECOND DO SELECT 15;
CREATE EVENT ev_drop16 ON SCHEDULE EVERY 1 SECOND DO SELECT 16;
CREATE EVENT ev_drop17 ON SCHEDULE EVERY 1 SECOND DO SELECT 17;
CREATE EVENT ev_drop18 ON SCHEDULE EVERY 1 SECOND DO SELECT 18;
CREATE EVENT ev_drop19 ON SCHEDULE EVERY 1 SECOND DO SELECT 19;
CREATE EVENT ev_drop20 ON SCHEDULE EVERY 1 SECOND DO SELECT 20;
CREATE EVENT ev_drop21 ON SCHEDULE EVERY 1 SECOND DO SELECT 21;
CREATE EVENT ev_drop22 ON SCHEDULE EVERY 1 SECOND DO SELECT 22;
CREATE EVENT ev_drop23 ON SCHEDULE EVERY 1 SECOND DO SELECT 23;
CREATE EVENT ev_drop24 ON SCHEDULE EVERY 1 SECOND DO SELECT 24;
CREATE EVENT ev_drop25 ON SCHEDULE EVERY 1 SECOND DO SELECT 25;
CREATE EVENT ev_drop26 ON SCHEDULE EVERY 1 SECOND DO SELECT 26;
CREATE EVENT ev_drop27 ON SCHEDULE EVERY 1 SECOND DO SELECT 27;
CREATE EVENT ev_drop28 ON SCHEDULE EVERY 1 SECOND DO SELECT 28;
CREATE EVENT ev_drop29 ON SCHEDULE EVERY 1 SECOND DO SELECT 29;
CREATE EVENT ev_drop30 ON SCHEDULE EVERY 1 SECOND DO SELECT 30;
CREATE EVENT ev_drop31 ON SCHEDULE EVERY 1 SECOND DO SELECT 31;
CREATE EVENT ev_drop32 ON SCHEDULE EVERY 1 SECOND DO SELECT 32;
CREATE EVENT ev_drop33 ON SCHEDULE EVERY 1 SECOND DO SELECT 33;
CREATE EVENT ev_drop34 ON SCHEDULE EVERY 1 SECOND DO SELECT 34;
CREATE EVENT ev_drop35 ON SCHEDULE EVERY 1 SECOND DO SELECT 35;
CREATE EVENT ev_drop36 ON SCHEDULE EVERY 1 SECOND DO SELECT 36;
CREATE EVENT ev_drop37 ON SCHEDULE EVERY 1 SECOND DO SELECT 37;
CREATE EVENT ev_drop38 ON SCHEDULE EVERY 1 SECOND DO SELECT 38;
CREATE EVENT ev_drop39 ON SCHEDULE EVERY 1 SECOND DO SELECT 39;
CREATE EVENT ev_drop40 ON SCHEDULE EVERY 1 SECOND DO SELECT 40;
CREATE EVENT ev_drop41 ON SCHEDULE EVERY 1 SECOND DO SELECT 41;
CREATE EVENT ev_drop42 ON SCHEDULE EVERY 1 SECOND DO SELECT 42;
CREATE EVENT ev_drop43 ON SCHEDULE EVERY 1 SECOND DO SELECT 43;
CREATE EVENT ev_drop44 ON SCHEDULE EVERY 1 SECOND DO SELECT 44;
CREATE EVENT ev_drop45 ON SCHEDULE EVERY 1 SECOND DO SELECT 45;
CREATE EVENT ev_drop46 ON SCHEDULE EVERY 1 SECOND DO SELECT 46;
CREATE EVENT ev_drop47 ON SCHEDULE EVERY 1 SECOND DO SELECT 47;
CREATE EVENT ev_drop48 ON SCHEDULE EVERY 1 SECOND DO SELECT 48;
CREATE EVENT ev_drop49 ON SCHEDULE EVERY 1 SECOND DO SELECT 49;
CREATE EVENT ev_drop50 ON SCHEDULE EVERY 1 SECOND DO SELECT 50;
CREATE EVENT ev_drop51 ON SCHEDULE EVERY 1 SECOND DO SELECT 51;
CREATE EVENT ev_drop52 ON SCHEDULE EVERY 1 SECOND DO SELECT 52;
CREATE EVENT ev_drop53 ON SCHEDULE EVERY 1 SECOND DO SELECT 53;
CREATE EVENT ev_drop54 ON SCHEDULE EVERY 1 SECOND DO SELECT 54;
CREATE EVENT ev_drop55 ON SCHEDULE EVERY 1 SECOND DO SELECT 55;
CREATE EVENT ev_drop56 ON SCHEDULE EVERY 1 SECOND DO SELECT 56;
CREATE EVENT ev_drop57 ON SCHEDULE EVERY 1 SECOND DO SELECT 57;
CREATE EVENT ev_drop58 ON SCHEDULE EVERY 1 SECOND DO SELECT 58;
CREATE EVENT ev_drop59 ON SCHEDULE EVERY 1 SECOND DO SELECT 59;
CREATE EVENT ev_drop60 ON SCHEDULE EVERY 1 SECOND DO SELECT 60;
CREATE EVENT ev_drop61 ON SCHEDULE EVERY 1 SECOND DO SELECT 61;
CREATE EVENT ev_drop62 ON SCHEDULE EVERY 1 SECOND DO SELECT 62;
CREATE EVENT ev_drop63 ON SCHEDULE EVERY 1 SECOND DO SELECT 63;
CREATE EVENT ev_drop64 ON SCHEDULE EVERY 1 SECOND DO SELECT 64;
CREATE EVENT ev_drop65 ON SCHEDULE EVERY 1 SECOND DO SELECT 65;
CREATE EVENT ev_drop66 ON SCHEDULE EVERY 1 SECOND DO SELECT 66;
CREATE EVENT ev_drop67 ON SCHEDULE EVERY 1 SECOND DO SELECT 67;
CREATE EVENT ev_drop68 ON SCHEDULE EVERY 1 SECOND DO SELECT 68;
CREATE EVENT ev_drop69 ON SCHEDULE EVERY 1 SECOND DO SELECT 69;
CREATE EVENT ev_drop70 ON SCHEDULE EVERY 1 SECOND DO SELECT 70;
CREATE EVENT ev_drop71 ON SCHEDULE EVERY 1 SECOND DO SELECT 71;
CREATE EVENT ev_drop72 ON SCHEDULE EVERY 1 SECOND DO SELECT 72;
CREATE EVENT ev_drop73 ON SCHEDULE EVERY 1 SECOND DO SELECT 73;
CREATE EVENT ev_drop74 ON SCHEDULE EVERY 1 SECOND DO SELECT 74;
CREATE EVENT ev_drop75 ON SCHEDULE EVERY 1 SECOND DO SELECT 75;
CREATE EVENT ev_drop76 ON SCHEDULE EVERY 1 SECOND DO SELECT 76;
CREATE EVENT ev_drop77 ON SCHEDULE EVERY 1 SECOND DO SELECT 77;
CREATE EVENT ev_drop78 ON SCHEDULE EVERY 1 SECOND DO SELECT 78;
CREATE EVENT ev_drop79 ON SCHEDULE EVERY 1 SECOND DO SELECT 79;
CREATE EVENT ev_drop80 ON SCHEDULE EVERY 1 SECOND DO SELECT 80;
CREATE EVENT ev_drop81 ON SCHEDULE EVERY 1 SECOND DO SELECT 81;
CREATE EVENT ev_drop82 ON SCHEDULE EVERY 1 SECOND DO SELECT 82;
CREATE EVENT ev_drop83 ON SCHEDULE EVERY 1 SECOND DO SELECT 83;
CREATE EVENT ev_drop84 ON SCHEDULE EVERY 1 SECOND DO SELECT 84;
CREATE EVENT ev_drop85 ON SCHEDULE EVERY 1 SECOND DO SELECT 85;
CREATE EVENT ev_drop86 ON SCHEDULE EVERY 1 SECOND DO SELECT 86;
CREATE EVENT ev_drop87 ON SCHEDULE EVERY 1 SECOND DO SELECT 87;
CREATE EVENT ev_drop88 ON SCHEDULE EVERY 1 SECOND DO SELECT 88;
CREATE EVENT ev_drop89 ON SCHEDULE EVERY 1 SECOND DO SELECT 89;
CREATE EVENT ev_drop90 ON SCHEDULE EVERY 1 SECOND DO SELECT 0;
CREATE EVENT ev_drop91 ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
CREATE EVENT ev_drop92 ON SCHEDULE EVERY 1 SECOND DO SELECT 2;
CREATE EVENT ev_drop93 ON SCHEDULE EVERY 1 SECOND DO SELECT 3;
CREATE EVENT ev_drop94 ON SCHEDULE EVERY 1 SECOND DO SELECT 4;
CREATE EVENT ev_drop95 ON SCHEDULE EVERY 1 SECOND DO SELECT 5;
CREATE EVENT ev_drop96 ON SCHEDULE EVERY 1 SECOND DO SELECT 6;
CREATE EVENT ev_drop97 ON SCHEDULE EVERY 1 SECOND DO SELECT 7;
CREATE EVENT ev_drop98 ON SCHEDULE EVERY 1 SECOND DO SELECT 8;
CREATE EVENT ev_drop99 ON SCHEDULE EVERY 1 SECOND DO SELECT 9;
CREATE EVENT ev_drop100 ON SCHEDULE EVERY 1 SECOND DO SELECT 100;
CREATE EVENT ev_drop101 ON SCHEDULE EVERY 1 SECOND DO SELECT 101;
CREATE EVENT ev_drop102 ON SCHEDULE EVERY 1 SECOND DO SELECT 102;
CREATE EVENT ev_drop103 ON SCHEDULE EVERY 1 SECOND DO SELECT 103;
CREATE EVENT ev_drop104 ON SCHEDULE EVERY 1 SECOND DO SELECT 104;
CREATE EVENT ev_drop105 ON SCHEDULE EVERY 1 SECOND DO SELECT 105;
CREATE EVENT ev_drop106 ON SCHEDULE EVERY 1 SECOND DO SELECT 106;
CREATE EVENT ev_drop107 ON SCHEDULE EVERY 1 SECOND DO SELECT 107;
CREATE EVENT ev_drop108 ON SCHEDULE EVERY 1 SECOND DO SELECT 108;
CREATE EVENT ev_drop109 ON SCHEDULE EVERY 1 SECOND DO SELECT 109;
CREATE EVENT ev_drop110 ON SCHEDULE EVERY 1 SECOND DO SELECT 110;
CREATE EVENT ev_drop111 ON SCHEDULE EVERY 1 SECOND DO SELECT 111;
CREATE EVENT ev_drop112 ON SCHEDULE EVERY 1 SECOND DO SELECT 112;
CREATE EVENT ev_drop113 ON SCHEDULE EVERY 1 SECOND DO SELECT 113;
CREATE EVENT ev_drop114 ON SCHEDULE EVERY 1 SECOND DO SELECT 114;
CREATE EVENT ev_drop115 ON SCHEDULE EVERY 1 SECOND DO SELECT 115;
CREATE EVENT ev_drop116 ON SCHEDULE EVERY 1 SECOND DO SELECT 116;
CREATE EVENT ev_drop117 ON SCHEDULE EVERY 1 SECOND DO SELECT 117;
CREATE EVENT ev_drop118 ON SCHEDULE EVERY 1 SECOND DO SELECT 118;
CREATE EVENT ev_drop119 ON SCHEDULE EVERY 1 SECOND DO SELECT 119;
CREATE EVENT ev_drop120 ON SCHEDULE EVERY 1 SECOND DO SELECT 120;
CREATE EVENT ev_drop121 ON SCHEDULE EVERY 1 SECOND DO SELECT 121;
CREATE EVENT ev_drop122 ON SCHEDULE EVERY 1 SECOND DO SELECT 122;
CREATE EVENT ev_drop123 ON SCHEDULE EVERY 1 SECOND DO SELECT 123;
CREATE EVENT ev_drop124 ON SCHEDULE EVERY 1 SECOND DO SELECT 124;
CREATE EVENT ev_drop125 ON SCHEDULE EVERY 1 SECOND DO SELECT 125;
CREATE EVENT ev_drop126 ON SCHEDULE EVERY 1 SECOND DO SELECT 126;
CREATE EVENT ev_drop127 ON SCHEDULE EVERY 1 SECOND DO SELECT 127;
CREATE EVENT ev_drop128 ON SCHEDULE EVERY 1 SECOND DO SELECT 128;
CREATE EVENT ev_drop129 ON SCHEDULE EVERY 1 SECOND DO SELECT 129;
CREATE EVENT ev_drop130 ON SCHEDULE EVERY 1 SECOND DO SELECT 130;
CREATE EVENT ev_drop131 ON SCHEDULE EVERY 1 SECOND DO SELECT 131;
CREATE EVENT ev_drop132 ON SCHEDULE EVERY 1 SECOND DO SELECT 132;
CREATE EVENT ev_drop133 ON SCHEDULE EVERY 1 SECOND DO SELECT 133;
CREATE EVENT ev_drop134 ON SCHEDULE EVERY 1 SECOND DO SELECT 134;
CREATE EVENT ev_drop135 ON SCHEDULE EVERY 1 SECOND DO SELECT 135;
CREATE EVENT ev_drop136 ON SCHEDULE EVERY 1 SECOND DO SELECT 136;
CREATE EVENT ev_drop137 ON SCHEDULE EVERY 1 SECOND DO SELECT 137;
CREATE EVENT ev_drop138 ON SCHEDULE EVERY 1 SECOND DO SELECT 138;
CREATE EVENT ev_drop139 ON SCHEDULE EVERY 1 SECOND DO SELECT 139;
CREATE EVENT ev_drop140 ON SCHEDULE EVERY 1 SECOND DO SELECT 140;
CREATE EVENT ev_drop141 ON SCHEDULE EVERY 1 SECOND DO SELECT 141;
CREATE EVENT ev_drop142 ON SCHEDULE EVERY 1 SECOND DO SELECT 142;
CREATE EVENT ev_drop143 ON SCHEDULE EVERY 1 SECOND DO SELECT 143;
CREATE EVENT ev_drop144 ON SCHEDULE EVERY 1 SECOND DO SELECT 144;
CREATE EVENT ev_drop145 ON SCHEDULE EVERY 1 SECOND DO SELECT 145;
CREATE EVENT ev_drop146 ON SCHEDULE EVERY 1 SECOND DO SELECT 146;
CREATE EVENT ev_drop147 ON SCHEDULE EVERY 1 SECOND DO SELECT 147;
CREATE EVENT ev_drop148 ON SCHEDULE EVERY 1 SECOND DO SELECT 148;
CREATE EVENT ev_drop149 ON SCHEDULE EVERY 1 SECOND DO SELECT 149;
CREATE EVENT ev_drop150 ON SCHEDULE EVERY 1 SECOND DO SELECT 150;
CREATE EVENT ev_drop151 ON SCHEDULE EVERY 1 SECOND DO SELECT 151;
CREATE EVENT ev_drop152 ON SCHEDULE EVERY 1 SECOND DO SELECT 152;
CREATE EVENT ev_drop153 ON SCHEDULE EVERY 1 SECOND DO SELECT 153;
CREATE EVENT ev_drop154 ON SCHEDULE EVERY 1 SECOND DO SELECT 154;
CREATE EVENT ev_drop155 ON SCHEDULE EVERY 1 SECOND DO SELECT 155;
CREATE EVENT ev_drop156 ON SCHEDULE EVERY 1 SECOND DO SELECT 156;
CREATE EVENT ev_drop157 ON SCHEDULE EVERY 1 SECOND DO SELECT 157;
CREATE EVENT ev_drop158 ON SCHEDULE EVERY 1 SECOND DO SELECT 158;
CREATE EVENT ev_drop159 ON SCHEDULE EVERY 1 SECOND DO SELECT 159;
SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_test2';
--sleep 2
DROP DATABASE events_test2;
SET GLOBAL event_scheduler=0;
DROP DATABASE events_test3;
SET GLOBAL event_scheduler=1;
DROP DATABASE events_test4;
SET GLOBAL event_scheduler=1;
USE events_test;
#
# DROP DATABASE test end (bug #16406)
#
DROP DATABASE events_test;


--- 1.23/sql/event.cc	2006-01-30 13:31:16 +01:00
+++ 1.24/sql/event.cc	2006-02-09 14:18:17 +01:00
@@ -165,6 +165,28 @@
 }
 
 
+
+/*
+  Find row in open mysql.event table representing event
+
+  SYNOPSIS
+    evex_db_find_event_aux()
+      thd    Thread context
+      et     evet_timed object containing dbname, name & definer
+      table  TABLE object for open mysql.event table.
+
+  RETURN VALUE
+    0                  - Routine found
+    EVEX_KEY_NOT_FOUND - No routine with given name
+*/
+
+inline int
+evex_db_find_event_aux(THD *thd, event_timed *et, TABLE *table)
+{
+  return evex_db_find_event_aux(thd, et->dbname, et->name, et->definer, table);
+}
+
+
 /*
   Find row in open mysql.event table representing event
 
@@ -373,7 +395,7 @@
   }
   
   DBUG_PRINT("info", ("check existance of an event with the same name"));
-  if (!evex_db_find_event_aux(thd, et->dbname, et->name, et->definer, table))
+  if (!evex_db_find_event_aux(thd, et, table))
   {
     if (create_if_not)
     {
@@ -524,8 +546,7 @@
     overwrite the key and SE will tell us that it cannot find the already found
     row (copied into record[1] later
   */
-  if (EVEX_KEY_NOT_FOUND == evex_db_find_event_aux(thd, et->dbname, et->name,
-                                                   et->definer, table))
+  if (EVEX_KEY_NOT_FOUND == evex_db_find_event_aux(thd, et, table))
   {
     my_error(ER_EVENT_DOES_NOT_EXIST, MYF(0), et->name.str);
     goto err;    
@@ -727,7 +748,7 @@
     if (!sortcmp_lex_string(*name, et->name, system_charset_info) &&
         !sortcmp_lex_string(*db, et->dbname, system_charset_info))
     {
-      if (!et->is_running())
+      if (et->can_spawn_now())
       {
         DBUG_PRINT("evex_remove_from_cache", ("not running - free and delete"));
         et->free_sp();
@@ -887,7 +908,7 @@
     goto done;
   }
 
-  if (!(ret= evex_db_find_event_aux(thd, et->dbname,et->name,et->definer,table)))
+  if (!(ret= evex_db_find_event_aux(thd, et, table)))
   {
     if ((ret= table->file->ha_delete_row(table->record[0])))
     { 	
@@ -923,3 +944,173 @@
   DBUG_RETURN(ret);
 }
 
+
+/*
+  evex_drop_db_events - Drops all events in the selected database
+  
+  thd  - Thread
+  db   - ASCIIZ the name of the database
+  
+  Returns:
+    0  - OK
+    1  - Failed to delete a specific row
+    2  - Got NULL while reading db name from a row
+
+  Note:
+    The algo is the following
+    1. Go through the in-memory cache, if the scheduler is working
+       and for every event whose dbname matches the database we drop
+       check whether is currently in execution:
+       - event_timed::can_spawn() returns true -> the event is not
+         being executed in a child thread. The reason not to use
+         event_timed::is_running() is that the latter shows only if
+         it is being executed, which is 99% of the time in the thread
+         but there are some initiliazations before and after the
+         anonymous SP is being called. So if we delete in this moment
+         -=> *boom*, so we have to check whether the thread has been
+         spawned and can_spawn() is the right method.
+       - event_timed::can_spawn() returns false -> being runned ATM
+         just set the flags so it should drop itself.
+
+*/
+
+int
+evex_drop_db_events(THD *thd, char *db)
+{
+  TABLE *table;
+  READ_RECORD read_record_info;
+  MYSQL_LOCK *lock;
+  int ret= 0;
+  int i;
+  LEX_STRING db_lex= {db, strlen(db)};
+  
+  DBUG_ENTER("evex_drop_db_events");  
+  DBUG_PRINT("info",("dropping events from %s", db));
+
+
+  VOID(pthread_mutex_lock(&LOCK_event_arrays));
+
+  if ((ret= evex_open_event_table(thd, TL_WRITE, &table)))
+  {
+    sql_print_error("Table mysql.event is damaged.");
+    VOID(pthread_mutex_unlock(&LOCK_event_arrays));
+    DBUG_RETURN(SP_OPEN_TABLE_FAILED);
+  }
+
+  DBUG_PRINT("info",("%d elements in the queue",
+             evex_queue_num_elements(EVEX_EQ_NAME)));
+  VOID(pthread_mutex_lock(&LOCK_evex_running));
+  if (!evex_is_running)
+    goto skip_memory;
+
+  for (i= 0; i < evex_queue_num_elements(EVEX_EQ_NAME); ++i)
+  {
+    event_timed *et= evex_queue_element(&EVEX_EQ_NAME, i, event_timed*);
+    if (sortcmp_lex_string(et->dbname, db_lex, system_charset_info))
+      continue;
+
+    if (et->can_spawn_now_n_lock(thd))
+    {
+      DBUG_PRINT("info",("event %s not running - direct delete", et->name.str));
+      if (!(ret= evex_db_find_event_aux(thd, et, table)))
+      {
+        DBUG_PRINT("info",("event %s found on disk", et->name.str));
+        if ((ret= table->file->ha_delete_row(table->record[0])))
+        {
+          sql_print_error("Error while deleting a row - dropping "
+                          "a database. Skipping the rest.");
+          my_error(ER_EVENT_DROP_FAILED, MYF(0), et->name.str);
+          goto end;
+        }
+        DBUG_PRINT("info",("deleted event [%s] num [%d]. Time to free mem",
+                   et->name.str, i));
+        et->free_sp();
+        delete et;
+        et= 0;
+        // no need to call et->spawn_unlock because we already cleaned et
+      }
+      else if (ret == EVEX_KEY_NOT_FOUND)
+      {
+        sql_print_error("Expected to find event %s.%s of %s on disk-not there.",
+                         et->dbname.str, et->name.str, et->definer.str);
+        // QQ is that really bad?
+        DBUG_ASSERT(0);
+        et->spawn_unlock(thd);
+      }
+    }
+    else
+    {
+      DBUG_PRINT("info",("event %s is running. setting exec_no_more and dropped",
+                  et->name.str));
+      et->flags|= EVENT_EXEC_NO_MORE;
+      et->dropped= TRUE;
+    }
+    DBUG_PRINT("info",("%d elements in the queue",
+               evex_queue_num_elements(EVEX_EQ_NAME)));
+    evex_queue_delete_element(&EVEX_EQ_NAME, i);// 1 is top
+    DBUG_PRINT("info",("%d elements in the queue",
+               evex_queue_num_elements(EVEX_EQ_NAME)));
+    /*
+      decrease so we start at the same position, there will be
+      less elements in the queue, it will still be ordered so on
+      next iteration it will be again i the current element or if
+      no more we finish.
+    */
+    --i;
+  }
+
+skip_memory:
+
+  DBUG_PRINT("info",("Mem-cache checked, now going to db for disabled events"));
+  //only enabled events are in memory, so we go now and delete the rest
+  init_read_record(&read_record_info, thd, table ,NULL,1,0);
+  while (!(read_record_info.read_record(&read_record_info)) && !ret)
+  {
+    char *et_db;
+
+    if ((et_db= get_field(thd->mem_root, table->field[EVEX_FIELD_DB])) == NULL)
+    {
+      ret= 2;
+      break;
+    }
+    
+    LEX_STRING et_db_lex= {et_db, strlen(et_db)};
+    if (!sortcmp_lex_string(et_db_lex, db_lex, system_charset_info))
+    {
+      event_timed ett;
+      if ((ret= ett.load_from_row(thd->mem_root, table)))
+      {
+        sql_print_error("Error while loading from mysql.event. "
+                        "Table probably corrupted");
+        goto end;
+      }
+      
+      /*
+        When not running nothing is in memory so we have to clean
+        everything.
+      */
+      if ((evex_is_running && ett.status == MYSQL_EVENT_DISABLED) ||
+           !evex_is_running)
+      {
+        DBUG_PRINT("info", ("Dropping %s.%s", et_db, ett.name.str));
+        if ((ret= table->file->ha_delete_row(table->record[0])))
+        {
+          my_error(ER_EVENT_DROP_FAILED, MYF(0), ett.name.str);
+          goto end;
+        }
+      }
+    }
+  }
+  DBUG_PRINT("info",("Disk checked for disabled events. Finishing."));
+
+end:
+  VOID(pthread_mutex_unlock(&LOCK_evex_running));
+  VOID(pthread_mutex_unlock(&LOCK_event_arrays));
+  end_read_record(&read_record_info);
+
+  thd->version--;  // Force close to free memory
+
+  close_thread_tables(thd);
+
+  DBUG_RETURN(ret);
+}

--- 1.17/sql/event.h	2006-01-31 17:22:28 +01:00
+++ 1.18/sql/event.h	2006-02-09 14:18:17 +01:00
@@ -79,6 +79,8 @@
 {
   event_timed(const event_timed &);	/* Prevent use of these */
   void operator=(event_timed &);
+  my_bool in_spawned_thread;
+  ulong locked_by_thread_id;
   my_bool running;
   pthread_mutex_t LOCK_running;
 
@@ -116,9 +118,10 @@
   bool free_sphead_on_delete;
   uint flags;//all kind of purposes
 
-  event_timed():running(0), status_changed(false), last_executed_changed(false),
-                expression(0), created(0), modified(0),
-                on_completion(MYSQL_EVENT_ON_COMPLETION_DROP),
+  event_timed():in_spawned_thread(0),locked_by_thread_id(0),
+                running(0), status_changed(false),
+                last_executed_changed(false), expression(0), created(0),
+                modified(0), on_completion(MYSQL_EVENT_ON_COMPLETION_DROP),
                 status(MYSQL_EVENT_ENABLED), sphead(0), dropped(false),
                 free_sphead_on_delete(true), flags(0)
                 
@@ -197,8 +200,45 @@
 
     return ret;  
   }
+
+  /*
+    Checks whether the object is being used in a spawned thread.
+    This method is for very basic checking. Use ::can_spawn_now_n_lock()
+    for most of the cases.
+  */
+
+  my_bool
+  can_spawn_now()
+  {
+    my_bool ret;
+    VOID(pthread_mutex_lock(&this->LOCK_running));
+    ret= !in_spawned_thread;
+    VOID(pthread_mutex_unlock(&this->LOCK_running));
+    return ret;  
+  }
+
+  /*
+    Checks whether this thread can lock the object for modification ->
+    preventing being spawned for execution, and locks if possible.
+    use ::can_spawn_now() only for basic checking because a race
+    condition may occur between the check and eventual modification (deletion)
+    of the object.
+  */
+
+  my_bool
+  can_spawn_now_n_lock(THD *thd);
+
+  int
+  spawn_unlock(THD *thd);
+
+  int
+  spawn_now(void * (*thread_func)(void*));
   
-  void free_sp()
+  void
+  spawn_thread_finish(THD *thd);
+  
+  void
+  free_sp()
   {
     delete sphead;
     sphead= 0;
@@ -221,7 +261,11 @@
 int
 evex_open_event_table(THD *thd, enum thr_lock_type lock_type, TABLE **table);
 
-int sortcmp_lex_string(LEX_STRING s, LEX_STRING t, CHARSET_INFO *cs);
+int
+sortcmp_lex_string(LEX_STRING s, LEX_STRING t, CHARSET_INFO *cs);
+
+int
+evex_drop_db_events(THD *thd, char *db);
 
 int
 init_events();

--- 1.22/sql/event_executor.cc	2006-01-30 17:54:11 +01:00
+++ 1.23/sql/event_executor.cc	2006-02-09 14:18:17 +01:00
@@ -165,18 +165,97 @@
   DBUG_RETURN(0);
 }
 
+
+/*
+  This function waits till the time next event in the queue should be 
+  executed.
+  
+  Returns
+    0 - There is an event to be executed right now 
+    1 - No events or the last event was dropped.
+    2 - New event has entered the queue and scheduled on top. Restart
+        ticking.
+    3 - The thread was killed or SET global event_scheduler=0;
+*/
+
+static int
+executor_wait_till_next_event_exec(THD *thd)
+{
+  event_timed *et;
+  TIME time_now;
+  int t2sleep;
+
+  DBUG_ENTER("executor_wait_till_next_event_exec");
+  /*
+    now let's see how much time to sleep, we know there is at least 1
+    element in the queue.
+  */
+  VOID(pthread_mutex_lock(&LOCK_event_arrays));
+  if (!evex_queue_num_elements(EVEX_EQ_NAME))
+  {
+    VOID(pthread_mutex_unlock(&LOCK_event_arrays));
+    DBUG_RETURN(1);
+  }
+  et= evex_queue_first_element(&EVEX_EQ_NAME, event_timed*);
+  DBUG_ASSERT(et);
+  if (et->status == MYSQL_EVENT_DISABLED)
+  {
+    DBUG_PRINT("evex main thread",("Now it is disabled-exec no more"));
+    if (et->dropped)
+      et->drop(thd);
+    delete et;
+    evex_queue_delete_element(&EVEX_EQ_NAME, 1);// 1 is top
+    VOID(pthread_mutex_unlock(&LOCK_event_arrays));
+    sql_print_information("Event found disabled, dropping.");
+    DBUG_RETURN(1);
+  }
+       
+  DBUG_PRINT("evex main thread",("computing time to sleep till next exec"));
+  // set the internal clock of thd
+  thd->end_time();
+  my_tz_UTC->gmt_sec_to_TIME(&time_now, thd->query_start());
+  t2sleep= evex_time_diff(&et->execute_at, &time_now);
+  VOID(pthread_mutex_unlock(&LOCK_event_arrays));
+
+  DBUG_PRINT("evex main thread",("unlocked LOCK_event_arrays"));
+  if (t2sleep > 0)
+  {
+    /*
+      We sleep t2sleep seconds but we check every second whether this thread
+      has been killed, or there is a new candidate
+    */
+    while (t2sleep-- && !thd->killed && event_executor_running_global_var &&
+           evex_queue_num_elements(EVEX_EQ_NAME) &&
+           (evex_queue_first_element(&EVEX_EQ_NAME, event_timed*) == et))
+    {
+      DBUG_PRINT("evex main thread",("will sleep a bit more"));
+      my_sleep(1000000);
+    }
+  }
+
+  int ret= 0;
+  if (!evex_queue_num_elements(EVEX_EQ_NAME))
+    ret= 1;
+  else if (evex_queue_first_element(&EVEX_EQ_NAME, event_timed*) != et)
+    ret= 2;
+  if (thd->killed && event_executor_running_global_var)
+    ret= 3;
+
+  DBUG_RETURN(ret);
+}
+
+
 pthread_handler_t
 event_executor_main(void *arg)
 {
   THD *thd;			/* needs to be first for thread_stack */
-  ulonglong iter_num= 0;
   uint i=0, j=0;
   my_ulonglong cnt= 0;
+  TIME time_now;
 
   DBUG_ENTER("event_executor_main");
   DBUG_PRINT("event_executor_main", ("EVEX thread started"));    
 
-
   // init memory root
   init_alloc_root(&evex_mem_root, MEM_ROOT_BLOCK_SIZE, MEM_ROOT_PREALLOC);
   
@@ -186,7 +265,7 @@
 
   if (sizeof(my_time_t) != sizeof(time_t))
   {
-    sql_print_error("sizeof(my_time_t) != sizeof(time_t) ."
+    sql_print_error("SCHEDULER: sizeof(my_time_t) != sizeof(time_t) ."
                     "The scheduler will not work correctly. Stopping.");
     goto err_no_thd;
   }
@@ -194,13 +273,13 @@
   //TODO Andrey: Check for NULL
   if (!(thd = new THD)) // note that contructor of THD uses DBUG_ !
   {
-    sql_print_error("Cannot create THD for event_executor_main");
+    sql_print_error("SCHEDULER: Cannot create THD for the main thread.");
     goto err_no_thd;
   }
   thd->thread_stack = (char*)&thd; // remember where our stack is
   
   pthread_detach_this_thread();
-
+  
   if (init_event_thread(thd))
     goto err;
   
@@ -213,7 +292,7 @@
   thread_running++;
   VOID(pthread_mutex_unlock(&LOCK_thread_count));
 
-  DBUG_PRINT("EVEX main thread", ("Initing events_queuey"));
+  DBUG_PRINT("EVEX main thread", ("Initing events_queue"));
 
   /*
     eventually manifest that we are running, not to crashe because of
@@ -233,11 +312,10 @@
 
   evex_main_thread_id= thd->thread_id;
 
-  sql_print_information("Scheduler thread started");
+  sql_print_information("SCHEDULER: Main thread started");
   while (!thd->killed)
   {
     TIME time_now;
-    my_time_t now;
     event_timed *et;
     
     cnt++;
@@ -246,7 +324,7 @@
     thd->proc_info = "Sleeping";
     if (!event_executor_running_global_var)
     {
-      sql_print_information("Scheduler asked to stop.");
+      sql_print_information("SCHEDULER: Asked to stop.");
       break;
     }
 
@@ -255,62 +333,30 @@
       my_sleep(1000000);// sleep 1s
       continue;
     }
-
-    {
-      int t2sleep;
-      /*
-        now let's see how much time to sleep, we know there is at least 1
-        element in the queue.
-      */
-      VOID(pthread_mutex_lock(&LOCK_event_arrays));
-      if (!evex_queue_num_elements(EVEX_EQ_NAME))
-      {
-        VOID(pthread_mutex_unlock(&LOCK_event_arrays));
-        continue;
-      }
-      et= evex_queue_first_element(&EVEX_EQ_NAME, event_timed*);
-      if (et->status == MYSQL_EVENT_DISABLED)
-      {
-        DBUG_PRINT("evex main thread",("Now it is disabled-exec no more"));
-        if (et->dropped)
-          et->drop(thd);
-        delete et;
-        evex_queue_delete_element(&EVEX_EQ_NAME, 1);// 1 is top
-        VOID(pthread_mutex_unlock(&LOCK_event_arrays));
-        sql_print_information("Event found disabled, dropping.");
-        continue;    
-      }
-        
-      DBUG_PRINT("evex main thread",("computing time to sleep till next exec"));
-      time((time_t *)&now);
-      my_tz_UTC->gmt_sec_to_TIME(&time_now, now);
-      t2sleep= evex_time_diff(&et->execute_at, &time_now);
-      VOID(pthread_mutex_unlock(&LOCK_event_arrays));
-
-      DBUG_PRINT("evex main thread",("unlocked LOCK_event_arrays"));
-      if (t2sleep > 0)
-      {
-        /*
-          We sleep t2sleep seconds but we check every second whether this thread
-          has been killed, or there is a new candidate
-        */
-        while (t2sleep-- && !thd->killed && event_executor_running_global_var &&
-               evex_queue_num_elements(EVEX_EQ_NAME) &&
-               (evex_queue_first_element(&EVEX_EQ_NAME, event_timed*) == et))
-        {
-          DBUG_PRINT("evex main thread",("will sleep a bit more"));
-          my_sleep(1000000);
-        }
-      }
-      if (!event_executor_running_global_var)
-      {
-        sql_print_information("Scheduler asked to stop.");
-        break;
-      }
+    
+restart_ticking:
+    switch (executor_wait_till_next_event_exec(thd)) {
+    case 0:// time to execute the event on top
+      DBUG_PRINT("evex main thread",("time to execute an event"));
+      break;
+    case 1:// no more events
+      DBUG_PRINT("evex main thread",("no more events"));
+      continue;
+      break;
+    case 2:// new event on top in the queue
+      DBUG_PRINT("evex main thread",("restart ticking"));
+      goto restart_ticking;
+    case 3:
+      sql_print_information("SCHEDULER: Asked to stop.");
+      goto finish;
+      break;
+    default:
+      DBUG_ASSERT(0);
     }
 
-
     VOID(pthread_mutex_lock(&LOCK_event_arrays));
+    thd->end_time();
+    my_tz_UTC->gmt_sec_to_TIME(&time_now, thd->query_start());
 
     if (!evex_queue_num_elements(EVEX_EQ_NAME))
     {
@@ -332,14 +378,13 @@
     DBUG_PRINT("evex main thread",("it's right time"));
     if (et->status == MYSQL_EVENT_ENABLED)
     {
-      pthread_t th;
-
+      int fork_ret_code;
       DBUG_PRINT("evex main thread", ("[%10s] this exec at [%llu]", et->name.str,
                                TIME_to_ulonglong_datetime(&et->execute_at)));
       et->mark_last_executed(thd);
       if (et->compute_next_execution_time())
       {
-        sql_print_error("Error while computing time of %s.%s . "
+        sql_print_error("SCHEDULER: Error while computing time of %s.%s . "
                         "Disabling after execution.",
                         et->dbname.str, et->name.str);
         et->status= MYSQL_EVENT_DISABLED;
@@ -348,14 +393,19 @@
                                TIME_to_ulonglong_datetime(&et->execute_at)));
 
       et->update_fields(thd);
-      ++iter_num;
-      DBUG_PRINT("info", ("  Spawning a thread %d", iter_num));
 #ifndef DBUG_FAULTY_THR
-      if (pthread_create(&th, NULL, event_executor_worker, (void*)et))
-      {
-        sql_print_error("Problem while trying to create a thread");
+      if (2 == (fork_ret_code= et->spawn_now(event_executor_worker)))
+      {        
+        sql_print_error("SCHEDULER: Problem while trying to create a thread");
         UNLOCK_MUTEX_AND_BAIL_OUT(LOCK_event_arrays, err);
       }
+      else if (fork_ret_code == 1)
+        sql_print_information("SCHEDULER: %s.%s in execution. Skip this time.",
+                              et->dbname.str, et->name.str);
+      else
+      {
+        DBUG_ASSERT(!fork_ret_code);
+      }
 #else
       event_executor_worker((void *) et);
 #endif
@@ -364,13 +414,14 @@
          et->flags |= EVENT_EXEC_NO_MORE;
 
       if ((et->flags & EVENT_EXEC_NO_MORE) || et->status == MYSQL_EVENT_DISABLED)
-        evex_queue_delete_element(&EVEX_EQ_NAME, 1);// 1 is top
+        evex_queue_delete_element(&EVEX_EQ_NAME, 0);// 0 is top, internally 1
       else
         evex_queue_first_updated(&EVEX_EQ_NAME);
     }
     DBUG_PRINT("evex main thread",("unlocking"));
     VOID(pthread_mutex_unlock(&LOCK_event_arrays));
   }// while
+finish:
 
 err:
   // First manifest that this thread does not work and then destroy
@@ -379,7 +430,6 @@
   evex_main_thread_id= 0;
   VOID(pthread_mutex_unlock(&LOCK_evex_running));
 
-  sql_print_information("Event scheduler stopping. Waiting for worker threads to finish.");
 
   /*
     TODO: A better will be with a conditional variable
@@ -388,21 +438,24 @@
     Read workers_count without lock, no need for locking.
     In the worst case we have to wait 1sec more.
   */
+  sql_print_information("SCHEDULER: Stopping. Waiting for worker threads to finish.");
   while (workers_count)
     my_sleep(1000000);// 1s
 
   /*
-    LEX_STRINGs reside in the memory root and will be destroyed with it.
-    Hence no need of delete but only freeing of SP
+    First we free all objects ...
+    Lock because a DROP DATABASE could be running in parallel and it locks on these
   */
-  // First we free all objects ...
+  sql_print_information("SCHEDULER: Emptying the queue.");
+  VOID(pthread_mutex_lock(&LOCK_event_arrays));
   for (i= 0; i < evex_queue_num_elements(EVEX_EQ_NAME); ++i)
   {
     event_timed *et= evex_queue_element(&EVEX_EQ_NAME, i, event_timed*);
     et->free_sp();
     delete et;
   }
-  // ... then we can thras the whole queue at once
+  VOID(pthread_mutex_unlock(&LOCK_event_arrays));
+  // ... then we can thrash the whole queue at once
   evex_queue_destroy(&EVEX_EQ_NAME);
   
   thd->proc_info = "Clearing";
@@ -426,7 +479,7 @@
   VOID(pthread_mutex_unlock(&LOCK_evex_running));
 
   free_root(&evex_mem_root, MYF(0));
-  sql_print_information("Event scheduler stopped.");
+  sql_print_information("SCHEDULER: Stopped.");
 
 #ifndef DBUG_FAULTY_THR
   my_thread_end();
@@ -455,13 +508,13 @@
 
   if (!(thd = new THD)) // note that contructor of THD uses DBUG_ !
   {
-    sql_print_error("Cannot create a THD structure in a scheduler worker thread");
+    sql_print_error("SCHEDULER: Cannot create a THD structure in an worker.");
     goto err_no_thd;
   }
   thd->thread_stack = (char*)&thd; // remember where our stack is
   thd->mem_root= &worker_mem_root;
 
-  pthread_detach_this_thread();
+  pthread_detach(pthread_self());
   
   if (init_event_thread(thd))
     goto err;
@@ -495,30 +548,23 @@
     int ret;
     DBUG_PRINT("info", ("    EVEX EXECUTING event %s.%s [EXPR:%d]",
                event->dbname.str, event->name.str,(int) event->expression));
-    sql_print_information("    EVEX EXECUTING event %s.%s [EXPR:%d]",
+    sql_print_information("SCHEDULER: Executing event %s.%s [EXPR:%d]",
                event->dbname.str, event->name.str,(int) event->expression);
 
     ret= event->execute(thd, &worker_mem_root);
 
-    sql_print_information("    EVEX EXECUTED event %s.%s  [EXPR:%d]. RetCode=%d",
+    sql_print_information("SCHEDULER: Executed event %s.%s [EXPR:%d]. RetCode=%d",
                           event->dbname.str, event->name.str,
                           (int) event->expression, ret);
     if (ret == EVEX_COMPILE_ERROR)
-      sql_print_information("    EVEX COMPILE ERROR for event %s.%s",
+      sql_print_information("SCHEDULER:COMPILE ERROR for event %s.%s",
                              event->dbname.str, event->name.str);
     
     DBUG_PRINT("info", ("    EVEX EXECUTED event %s.%s  [EXPR:%d]. RetCode=%d",
                         event->dbname.str, event->name.str,
                         (int) event->expression, ret));
   }
-  if ((event->flags & EVENT_EXEC_NO_MORE) || event->status==MYSQL_EVENT_DISABLED)
-  {
-    DBUG_PRINT("event_executor_worker",
-               ("%s exec no more. to drop=%d",event->name.str, event->dropped));
-    if (event->dropped)
-      event->drop(thd);
-    delete event;
-  }
+  event->spawn_thread_finish(thd);
 
   thd->db= 0;
 
@@ -574,7 +620,7 @@
 
   if ((ret= evex_open_event_table(thd, TL_READ, &table)))
   {
-    sql_print_error("Table mysql.event is damaged.");
+    sql_print_error("SCHEDULER: Table mysql.event is damaged. Can not open.");
     DBUG_RETURN(SP_OPEN_TABLE_FAILED);
   }
 
@@ -594,7 +640,7 @@
     
     if ((ret= et->load_from_row(&evex_mem_root, table)))
     {
-      sql_print_error("Error while loading from mysql.event. "
+      sql_print_error("SCHEDULER: Error while loading from mysql.event. "
                       "Table probably corrupted");
       goto end;
     }
@@ -606,11 +652,11 @@
     }
     
     DBUG_PRINT("evex_load_events_from_db",
-            ("Event %s loaded from row. Time to compile", et->name.str));
+              ("Event %s loaded from row. Time to compile", et->name.str));
     
     if ((ret= et->compile(thd, &evex_mem_root)))
     {
-      sql_print_error("Error while compiling %s.%s. Aborting load.",
+      sql_print_error("SCHEDULER: Error while compiling %s.%s. Aborting load.",
                       et->dbname.str, et->name.str);
       goto end;
     }
@@ -618,8 +664,8 @@
     // let's find when to be executed  
     if (et->compute_next_execution_time())
     {
-      sql_print_error("Error while computing execution time of %s.%s. Skipping",
-                       et->dbname.str, et->name.str);
+      sql_print_error("SCHEDULER: Error while computing execution time of %s.%s."
+                      " Skipping", et->dbname.str, et->name.str);
       continue;
     }
     
@@ -640,7 +686,7 @@
   thd->version--;  // Force close to free memory
 
   close_thread_tables(thd);
-  sql_print_information("Scheduler loaded %d event%s", count, (count == 1)?"":"s");
+  sql_print_information("SCHEDULER: Loaded %d event%s", count, (count == 1)?"":"s");
   DBUG_PRINT("info", ("Status code %d. Loaded %d event(s)", ret, count));
 
   DBUG_RETURN(ret);

--- 1.24/sql/event_timed.cc	2006-01-30 17:54:11 +01:00
+++ 1.25/sql/event_timed.cc	2006-02-09 14:18:17 +01:00
@@ -879,6 +879,7 @@
   TABLE *table;
   int ret= 0;
   DBUG_ENTER("event_timed::drop");
+  DBUG_PRINT("info",("%s.%s", dbname.str, name.str));
 
   if (evex_open_event_table(thd, TL_WRITE, &table))
     DBUG_RETURN(-1);
@@ -1059,6 +1060,7 @@
   MEM_ROOT *tmp_mem_root= 0;
   LEX *old_lex= thd->lex, lex;
   char *old_db;
+  int old_db_length;
   event_timed *ett;
   sp_name *spn;
   char *old_query;
@@ -1088,7 +1090,9 @@
   old_query_len= thd->query_length;
   old_query= thd->query;
   old_db= thd->db;
+  old_db_length= thd->db_length;
   thd->db= dbname.str;
+  thd->db_length= dbname.length;
   thd->query= get_show_create_event(thd, &thd->query_length);
   DBUG_PRINT("event_timed::compile", ("query:%s",thd->query));
 
@@ -1148,3 +1152,133 @@
   DBUG_RETURN(ret);
 }
 
+
+/*
+  Checks whether this thread can lock the object for modification ->
+  preventing being spawned for execution, and locks if possible.
+  use ::can_spawn_now() only for basic checking because a race
+  condition may occur between the check and eventual modification (deletion)
+  of the object.
+
+  Returns
+    true  - locked
+    false - cannot lock
+*/
+
+my_bool
+event_timed::can_spawn_now_n_lock(THD *thd)
+{
+  my_bool ret= FALSE;
+  VOID(pthread_mutex_lock(&this->LOCK_running));
+  if (!in_spawned_thread)
+  {
+    in_spawned_thread= TRUE;
+    ret= TRUE;
+    locked_by_thread_id= thd->thread_id;
+  }
+  VOID(pthread_mutex_unlock(&this->LOCK_running));
+  return ret;  
+}
+
+
+extern pthread_attr_t connection_attrib;
+
+/*
+  Checks whether is possible and forks a thread. Passes self as argument.
+  
+  Returns
+  0  - OK
+  1  - Thread not forked, already working
+  2  - Unable to spawn thread (error)
+*/
+
+int
+event_timed::spawn_now(void * (*thread_func)(void*))
+{  
+  int ret= 0;
+  static uint exec_num= 0;
+  DBUG_ENTER("event_timed::spawn_now");
+  DBUG_PRINT("info", ("[%s.%s]", dbname.str, name.str));
+
+  VOID(pthread_mutex_lock(&this->LOCK_running));
+  if (!in_spawned_thread)
+  {
+    pthread_t th;
+    in_spawned_thread= true;
+    if (pthread_create(&th, &connection_attrib, thread_func, (void*)this))
+    {
+      DBUG_PRINT("info", ("problem while spawning thread"));
+      ret= 2;
+      in_spawned_thread= false;
+    }
+    else
+    {
+      sql_print_information("SCHEDULER: Started thread %d", ++exec_num);
+      DBUG_PRINT("info", ("thread spawned"));
+    }
+  }
+  else
+  {
+    DBUG_PRINT("info", ("already in spawned thread. skipping"));
+    ret= 1;
+  }
+  VOID(pthread_mutex_unlock(&this->LOCK_running));
+
+  DBUG_RETURN(ret);  
+}
+
+
+void
+event_timed::spawn_thread_finish(THD *thd)
+{
+  DBUG_ENTER("event_timed::spawn_thread_finish");
+  VOID(pthread_mutex_lock(&this->LOCK_running));
+  in_spawned_thread= false;
+  if ((flags & EVENT_EXEC_NO_MORE) || status == MYSQL_EVENT_DISABLED)
+  {
+    DBUG_PRINT("info", ("%s exec no more. to drop=%d", name.str, dropped));
+    if (dropped)
+      drop(thd);
+    VOID(pthread_mutex_unlock(&this->LOCK_running));
+    delete this;
+    DBUG_VOID_RETURN;
+  }
+  VOID(pthread_mutex_unlock(&this->LOCK_running));
+  DBUG_VOID_RETURN;
+}
+
+
+/*
+  Unlocks the object after it has been locked with ::can_spawn_now_n_lock()
+
+  Returns
+    0 - ok
+    1 - not locked by this thread
+  
+*/
+ 
+
+int
+event_timed::spawn_unlock(THD *thd)
+{
+  int ret= 0;
+  VOID(pthread_mutex_lock(&this->LOCK_running));
+  if (!in_spawned_thread)
+  {
+    if (locked_by_thread_id == thd->thread_id)
+    {        
+      in_spawned_thread= FALSE;
+      locked_by_thread_id= 0;
+    }
+    else
+    {
+      sql_print_error("A thread tries to unlock when he hasn't locked. "
+                      "thread_id=%ld locked by %ld",
+                      thd->thread_id, locked_by_thread_id);
+      DBUG_ASSERT(0);
+      ret= 1;
+    }
+  }
+  VOID(pthread_mutex_unlock(&this->LOCK_running));
+  return ret;  
+}

--- 1.53/mysql-test/t/disabled.def	2006-02-02 06:37:33 +01:00
+++ 1.54/mysql-test/t/disabled.def	2006-02-09 14:18:16 +01:00
@@ -13,6 +13,7 @@
 sp-goto         : GOTO is currently is disabled - will be fixed in the future
 rpl_bit_npk     : Bug #13418
 events          : Test case instability - infinite locking. To be fixed.
+events_stress   : disabled for now
 func_group      : Bug #15448
 func_math       : Bug #15448
 group_min_max   : Bug #15448 
Thread
bk commit into 5.1 tree (andrey:1.2131) BUG#16406ahristov9 Feb