mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	BUG#26429: SHOW CREATE EVENT is incorrect for an event that
           STARTS NOW()
BUG#26431: Impossible to re-create an event from backup if its
           STARTS clause is in the past
WL#3698: Events: execution in local time zone
The problem was that local times specified by the user in AT, STARTS
and ENDS of CREATE EVENT/ALTER EVENT statement were converted to UTC,
and the original time zone was forgotten.  This way, event scheduler
couldn't honor Daylight Saving Time shifts, and times shown to the
user were also in UTC.  Additionally, CREATE EVENT didn't allow times
in the past, thus preventing straightforward event restoration from
old backups.
This patch reworks event scheduler time computations, performing them
in the time zone associated with the event.  Also it allows times to
be in the past.
The patch adds time_zone column to mysql.event table.
NOTE: The patch is almost final, but the bug#9953 should be pushed
first.
client/mysqldump.c:
  Before every CREATE EVENT, output its time zone.
mysql-test/include/wait_condition.inc:
  Add optional $wait_timeout parameter.
mysql-test/lib/init_db.sql:
  Add time_zone column.
mysql-test/r/events.result:
  Update result.
mysql-test/r/events_bugs.result:
  Update result.
mysql-test/r/events_grant.result:
  Update result.
mysql-test/r/events_restart_phase1.result:
  Update result.
mysql-test/r/events_scheduling.result:
  Update result.
mysql-test/r/mysqldump.result:
  Update result.
mysql-test/r/ps.result:
  Update result.
mysql-test/r/system_mysql_db.result:
  Update result.
mysql-test/t/events.test:
  Remove STARTS from the result, as it depends on current time.
mysql-test/t/events_bugs.test:
  Time in the past is no longer an error.
mysql-test/t/events_restart_phase1.test:
  Fill new column 'time_zone' in mysql.event.
mysql-test/t/events_scheduling.test:
  Cleanup: disable event scheduler.
scripts/mysql_create_system_tables.sh:
  Add new column 'time_zone' to mysql.event.
scripts/mysql_fix_privilege_tables.sql:
  Add new column 'time_zone' to mysql.event.
sql/event_data_objects.cc:
  The essence of the change is the following:
   - for internal times use my_time_t instead of TIME.  Assignment and
     comparison is done now on plain numbers.
   - in init_execute_at(), init_starts(), init_ends() convert given time
     to number of seconds since Epoch (aka Unix time, in UTC).
   - handle time_zone field loading and storing.
   - in get_next_time(), Unix time is converted back to event time zone,
     interval is added, and the result is converted to UTC again.
   - fix Event_timed::get_create_event() to report STARTS and ENDS.
   - before executing the event body we set thread time zone to the
     event time zone.
sql/event_data_objects.h:
  Add time_zone member to Event_basic class.
  
  Store internal times in my_time_t (number of seconds since Epoch),
  rather than in broken down TIME structure.
sql/event_db_repository.cc:
  Add time_zone column handling.
  
  Give a warning and do not create an event if its execution time is in
  the past, and ON COMPLETION NOT PRESERVE is set, because such an event
  should be dropped by that time.  Also, do not allow ALTER EVENT to
  set execution time in the past when ON COMPLETION NOT PRESERVE is set.
sql/event_db_repository.h:
  Add enum member for new time zone column.
sql/event_queue.cc:
  Replace handling of broken down times with simple handling of
  my_time_t.
sql/event_queue.h:
  Store internal times in my_time_t (number of seconds since Epoch),
  rather than in broken down TIME structure.
sql/event_scheduler.cc:
  Add TODO comment.
sql/events.cc:
  Send time_zone column for SHOW CREATE EVENT.
sql/share/errmsg.txt:
  Update error message, and add two more errors.
sql/sql_show.cc:
  Add TIME_ZONE column to the output of SHOW EVENTS.
mysql-test/r/events_time_zone.result:
  BitKeeper file /home/tomash/src/mysql_ab/mysql-5.1-wl3698/mysql-test/r/events_time_zone.result
mysql-test/t/events_time_zone.test:
  BitKeeper file /home/tomash/src/mysql_ab/mysql-5.1-wl3698/mysql-test/t/events_time_zone.test
		
	
		
			
				
	
	
		
			257 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			257 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
drop table if exists t1,t1aa,t2aa;
 | 
						|
show tables;
 | 
						|
Tables_in_db
 | 
						|
columns_priv
 | 
						|
db
 | 
						|
event
 | 
						|
func
 | 
						|
general_log
 | 
						|
help_category
 | 
						|
help_keyword
 | 
						|
help_relation
 | 
						|
help_topic
 | 
						|
host
 | 
						|
ndb_binlog_index
 | 
						|
plugin
 | 
						|
proc
 | 
						|
procs_priv
 | 
						|
servers
 | 
						|
slow_log
 | 
						|
tables_priv
 | 
						|
time_zone
 | 
						|
time_zone_leap_second
 | 
						|
time_zone_name
 | 
						|
time_zone_transition
 | 
						|
time_zone_transition_type
 | 
						|
user
 | 
						|
show create table db;
 | 
						|
Table	Create Table
 | 
						|
db	CREATE TABLE `db` (
 | 
						|
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  PRIMARY KEY (`Host`,`Db`,`User`),
 | 
						|
  KEY `User` (`User`)
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Database privileges'
 | 
						|
show create table host;
 | 
						|
Table	Create Table
 | 
						|
host	CREATE TABLE `host` (
 | 
						|
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  PRIMARY KEY (`Host`,`Db`)
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Host privileges;  Merged with database privileges'
 | 
						|
show create table user;
 | 
						|
Table	Create Table
 | 
						|
user	CREATE TABLE `user` (
 | 
						|
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
 | 
						|
  `Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Reload_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Shutdown_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Process_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `File_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Show_db_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Super_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Repl_slave_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Repl_client_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Create_user_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 | 
						|
  `ssl_type` enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT NULL DEFAULT '',
 | 
						|
  `ssl_cipher` blob NOT NULL,
 | 
						|
  `x509_issuer` blob NOT NULL,
 | 
						|
  `x509_subject` blob NOT NULL,
 | 
						|
  `max_questions` int(11) unsigned NOT NULL DEFAULT '0',
 | 
						|
  `max_updates` int(11) unsigned NOT NULL DEFAULT '0',
 | 
						|
  `max_connections` int(11) unsigned NOT NULL DEFAULT '0',
 | 
						|
  `max_user_connections` int(11) unsigned NOT NULL DEFAULT '0',
 | 
						|
  PRIMARY KEY (`Host`,`User`)
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'
 | 
						|
show create table func;
 | 
						|
Table	Create Table
 | 
						|
func	CREATE TABLE `func` (
 | 
						|
  `name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `ret` tinyint(1) NOT NULL DEFAULT '0',
 | 
						|
  `dl` char(128) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `type` enum('function','aggregate') CHARACTER SET utf8 NOT NULL,
 | 
						|
  PRIMARY KEY (`name`)
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User defined functions'
 | 
						|
show create table tables_priv;
 | 
						|
Table	Create Table
 | 
						|
tables_priv	CREATE TABLE `tables_priv` (
 | 
						|
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Grantor` char(77) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 | 
						|
  `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') CHARACTER SET utf8 NOT NULL DEFAULT '',
 | 
						|
  `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
 | 
						|
  PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
 | 
						|
  KEY `Grantor` (`Grantor`)
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Table privileges'
 | 
						|
show create table columns_priv;
 | 
						|
Table	Create Table
 | 
						|
columns_priv	CREATE TABLE `columns_priv` (
 | 
						|
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Column_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 | 
						|
  `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
 | 
						|
  PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Column privileges'
 | 
						|
show create table procs_priv;
 | 
						|
Table	Create Table
 | 
						|
procs_priv	CREATE TABLE `procs_priv` (
 | 
						|
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Routine_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Routine_type` enum('FUNCTION','PROCEDURE') COLLATE utf8_bin NOT NULL,
 | 
						|
  `Grantor` char(77) COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8 NOT NULL DEFAULT '',
 | 
						|
  `Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 | 
						|
  PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
 | 
						|
  KEY `Grantor` (`Grantor`)
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges'
 | 
						|
show create table servers;
 | 
						|
Table	Create Table
 | 
						|
servers	CREATE TABLE `servers` (
 | 
						|
  `Server_name` char(64) NOT NULL DEFAULT '',
 | 
						|
  `Host` char(64) NOT NULL DEFAULT '',
 | 
						|
  `Db` char(64) NOT NULL DEFAULT '',
 | 
						|
  `Username` char(64) NOT NULL DEFAULT '',
 | 
						|
  `Password` char(64) NOT NULL DEFAULT '',
 | 
						|
  `Port` int(4) NOT NULL DEFAULT '0',
 | 
						|
  `Socket` char(64) NOT NULL DEFAULT '',
 | 
						|
  `Wrapper` char(64) NOT NULL DEFAULT '',
 | 
						|
  `Owner` char(64) NOT NULL DEFAULT '',
 | 
						|
  PRIMARY KEY (`Server_name`)
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table'
 | 
						|
show create table proc;
 | 
						|
Table	Create Table
 | 
						|
proc	CREATE TABLE `proc` (
 | 
						|
  `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `name` char(64) NOT NULL DEFAULT '',
 | 
						|
  `type` enum('FUNCTION','PROCEDURE') NOT NULL,
 | 
						|
  `specific_name` char(64) NOT NULL DEFAULT '',
 | 
						|
  `language` enum('SQL') NOT NULL DEFAULT 'SQL',
 | 
						|
  `sql_data_access` enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NOT NULL DEFAULT 'CONTAINS_SQL',
 | 
						|
  `is_deterministic` enum('YES','NO') NOT NULL DEFAULT 'NO',
 | 
						|
  `security_type` enum('INVOKER','DEFINER') NOT NULL DEFAULT 'DEFINER',
 | 
						|
  `param_list` blob NOT NULL,
 | 
						|
  `returns` char(64) NOT NULL DEFAULT '',
 | 
						|
  `body` longblob NOT NULL,
 | 
						|
  `definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 | 
						|
  `modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
 | 
						|
  `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') NOT NULL DEFAULT '',
 | 
						|
  `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  PRIMARY KEY (`db`,`name`,`type`)
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stored Procedures'
 | 
						|
show create table event;
 | 
						|
Table	Create Table
 | 
						|
event	CREATE TABLE `event` (
 | 
						|
  `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `name` char(64) NOT NULL DEFAULT '',
 | 
						|
  `body` longblob NOT NULL,
 | 
						|
  `definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `execute_at` datetime DEFAULT NULL,
 | 
						|
  `interval_value` int(11) DEFAULT NULL,
 | 
						|
  `interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL,
 | 
						|
  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 | 
						|
  `modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
 | 
						|
  `last_executed` datetime DEFAULT NULL,
 | 
						|
  `starts` datetime DEFAULT NULL,
 | 
						|
  `ends` datetime DEFAULT NULL,
 | 
						|
  `status` enum('ENABLED','DISABLED') NOT NULL DEFAULT 'ENABLED',
 | 
						|
  `on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
 | 
						|
  `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') NOT NULL DEFAULT '',
 | 
						|
  `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
 | 
						|
  `time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',
 | 
						|
  PRIMARY KEY (`db`,`name`)
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events'
 | 
						|
show create table general_log;
 | 
						|
Table	Create Table
 | 
						|
general_log	CREATE TABLE `general_log` (
 | 
						|
  `event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 | 
						|
  `user_host` mediumtext,
 | 
						|
  `thread_id` int(11) DEFAULT NULL,
 | 
						|
  `server_id` int(11) DEFAULT NULL,
 | 
						|
  `command_type` varchar(64) DEFAULT NULL,
 | 
						|
  `argument` mediumtext
 | 
						|
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
 | 
						|
show create table slow_log;
 | 
						|
Table	Create Table
 | 
						|
slow_log	CREATE TABLE `slow_log` (
 | 
						|
  `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 | 
						|
  `user_host` mediumtext NOT NULL,
 | 
						|
  `query_time` time NOT NULL,
 | 
						|
  `lock_time` time NOT NULL,
 | 
						|
  `rows_sent` int(11) NOT NULL,
 | 
						|
  `rows_examined` int(11) NOT NULL,
 | 
						|
  `db` varchar(512) DEFAULT NULL,
 | 
						|
  `last_insert_id` int(11) DEFAULT NULL,
 | 
						|
  `insert_id` int(11) DEFAULT NULL,
 | 
						|
  `server_id` int(11) DEFAULT NULL,
 | 
						|
  `sql_text` mediumtext NOT NULL
 | 
						|
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
 | 
						|
show tables;
 | 
						|
Tables_in_test
 |