mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Update mysql_upgrade tests for 5.1
Add "two liner" to mysqld --bootstrap that allows wo write scripts that can be run both by mysql and mysqld --bootstrap Remove duplicate create of MySQL system tables mysql-test/r/mysql_upgrade.result: Update mysql_upgrade.result for new tables in 5.1 scripts/mysql_system_tables.sql: Use "delimiter ;;" to make it possible to run the script both with "mysql" and "mysqld --bootstrap" scripts/mysql_system_tables_fix.sql: Remove duplicate stored procedure for creating slow_log and general_log. Remove duplicate CREATE of ndb_binlog_index. Those are already defined in mysql_system_tables.sql sql/sql_parse.cc: Make "mysqld --bootstrap skip lines startig with "delimiter" thus making it possible to write sql scripts containing stored procedures that can be executed both with "mysql" and "mysqld --bootstrap"
This commit is contained in:
parent
6bfa5a40bc
commit
07ec45cc55
4 changed files with 31 additions and 47 deletions
|
@ -1,14 +1,20 @@
|
|||
Run mysql_upgrade once
|
||||
mysql.columns_priv OK
|
||||
mysql.db OK
|
||||
mysql.event OK
|
||||
mysql.func OK
|
||||
mysql.general_log OK
|
||||
mysql.help_category OK
|
||||
mysql.help_keyword OK
|
||||
mysql.help_relation OK
|
||||
mysql.help_topic OK
|
||||
mysql.host OK
|
||||
mysql.ndb_binlog_index OK
|
||||
mysql.plugin OK
|
||||
mysql.proc OK
|
||||
mysql.procs_priv OK
|
||||
mysql.servers OK
|
||||
mysql.slow_log OK
|
||||
mysql.tables_priv OK
|
||||
mysql.time_zone OK
|
||||
mysql.time_zone_leap_second OK
|
||||
|
@ -21,14 +27,20 @@ This installation of MySQL is already upgraded to VERSION, use --force if you st
|
|||
Force should run it regardless of wether it's been run before
|
||||
mysql.columns_priv OK
|
||||
mysql.db OK
|
||||
mysql.event OK
|
||||
mysql.func OK
|
||||
mysql.general_log OK
|
||||
mysql.help_category OK
|
||||
mysql.help_keyword OK
|
||||
mysql.help_relation OK
|
||||
mysql.help_topic OK
|
||||
mysql.host OK
|
||||
mysql.ndb_binlog_index OK
|
||||
mysql.plugin OK
|
||||
mysql.proc OK
|
||||
mysql.procs_priv OK
|
||||
mysql.servers OK
|
||||
mysql.slow_log OK
|
||||
mysql.tables_priv OK
|
||||
mysql.time_zone OK
|
||||
mysql.time_zone_leap_second OK
|
||||
|
@ -41,14 +53,20 @@ GRANT ALL ON *.* TO mysqltest1@'%';
|
|||
Run mysql_upgrade with password protected account
|
||||
mysql.columns_priv OK
|
||||
mysql.db OK
|
||||
mysql.event OK
|
||||
mysql.func OK
|
||||
mysql.general_log OK
|
||||
mysql.help_category OK
|
||||
mysql.help_keyword OK
|
||||
mysql.help_relation OK
|
||||
mysql.help_topic OK
|
||||
mysql.host OK
|
||||
mysql.ndb_binlog_index OK
|
||||
mysql.plugin OK
|
||||
mysql.proc OK
|
||||
mysql.procs_priv OK
|
||||
mysql.servers OK
|
||||
mysql.slow_log OK
|
||||
mysql.tables_priv OK
|
||||
mysql.time_zone OK
|
||||
mysql.time_zone_leap_second OK
|
||||
|
|
|
@ -65,15 +65,15 @@ CREATE TABLE IF NOT EXISTS proc ( db char(64) collate utf8_bin DEFAULT '' NOT NU
|
|||
CREATE TABLE IF NOT EXISTS procs_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Routine_name char(64) binary DEFAULT '' NOT NULL, Routine_type enum('FUNCTION','PROCEDURE') NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Proc_priv set('Execute','Alter Routine','Grant') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Timestamp timestamp(14), PRIMARY KEY (Host,Db,User,Routine_name,Routine_type), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Procedure privileges';
|
||||
|
||||
|
||||
CREATE PROCEDURE create_general_log_table() BEGIN DECLARE is_csv_enabled int DEFAULT 0; SELECT @@have_csv = 'YES' INTO is_csv_enabled; IF (is_csv_enabled) THEN CREATE TABLE IF NOT EXISTS general_log (event_time TIMESTAMP NOT NULL, user_host MEDIUMTEXT, thread_id INTEGER, server_id INTEGER, command_type VARCHAR(64), argument MEDIUMTEXT) engine=CSV CHARACTER SET utf8 comment='General log'; END IF; END;
|
||||
CALL create_general_log_table();
|
||||
DROP PROCEDURE create_general_log_table;
|
||||
|
||||
|
||||
CREATE PROCEDURE create_slow_log_table() BEGIN DECLARE is_csv_enabled int DEFAULT 0; SELECT @@have_csv = 'YES' INTO is_csv_enabled; IF (is_csv_enabled) THEN CREATE TABLE IF NOT EXISTS slow_log (start_time TIMESTAMP NOT NULL, user_host MEDIUMTEXT NOT NULL, query_time TIME NOT NULL, lock_time TIME NOT NULL, rows_sent INTEGER NOT NULL, rows_examined INTEGER NOT NULL, db VARCHAR(512), last_insert_id INTEGER, insert_id INTEGER, server_id INTEGER, sql_text MEDIUMTEXT NOT NULL) engine=CSV CHARACTER SET utf8 comment='Slow log'; END IF; END;
|
||||
CALL create_slow_log_table();
|
||||
DROP PROCEDURE create_slow_log_table;
|
||||
delimiter ;;
|
||||
CREATE PROCEDURE create_general_log_table() BEGIN DECLARE is_csv_enabled int DEFAULT 0; SELECT @@have_csv = 'YES' INTO is_csv_enabled; IF (is_csv_enabled) THEN CREATE TABLE IF NOT EXISTS general_log (event_time TIMESTAMP NOT NULL, user_host MEDIUMTEXT, thread_id INTEGER, server_id INTEGER, command_type VARCHAR(64), argument MEDIUMTEXT) engine=CSV CHARACTER SET utf8 comment='General log'; END IF; END;;
|
||||
CALL create_general_log_table();;
|
||||
DROP PROCEDURE create_general_log_table;;
|
||||
|
||||
CREATE PROCEDURE create_slow_log_table() BEGIN DECLARE is_csv_enabled int DEFAULT 0; SELECT @@have_csv = 'YES' INTO is_csv_enabled; IF (is_csv_enabled) THEN CREATE TABLE IF NOT EXISTS slow_log (start_time TIMESTAMP NOT NULL, user_host MEDIUMTEXT NOT NULL, query_time TIME NOT NULL, lock_time TIME NOT NULL, rows_sent INTEGER NOT NULL, rows_examined INTEGER NOT NULL, db VARCHAR(512), last_insert_id INTEGER, insert_id INTEGER, server_id INTEGER, sql_text MEDIUMTEXT NOT NULL) engine=CSV CHARACTER SET utf8 comment='Slow log'; END IF; END;;
|
||||
CALL create_slow_log_table();;
|
||||
DROP PROCEDURE create_slow_log_table;;
|
||||
delimiter ;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS event ( db char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', name char(64) CHARACTER SET utf8 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, modified TIMESTAMP NOT NULL, last_executed DATETIME default NULL, starts DATETIME default NULL, ends DATETIME default NULL, status ENUM('ENABLED','DISABLED','SLAVESIDE_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') DEFAULT '' NOT NULL, comment char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', originator int(10) NOT NULL, time_zone char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM', PRIMARY KEY (db, name) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'Events';
|
||||
|
||||
|
|
|
@ -388,43 +388,6 @@ ALTER TABLE proc MODIFY db
|
|||
MODIFY comment
|
||||
char(64) collate utf8_bin DEFAULT '' NOT NULL;
|
||||
|
||||
#
|
||||
# Create missing log tables (5.1)
|
||||
#
|
||||
|
||||
delimiter //
|
||||
CREATE PROCEDURE create_log_tables()
|
||||
BEGIN
|
||||
DECLARE is_csv_enabled int DEFAULT 0;
|
||||
SELECT @@have_csv = 'YES' INTO is_csv_enabled;
|
||||
IF (is_csv_enabled) THEN
|
||||
CREATE TABLE IF NOT EXISTS general_log (
|
||||
event_time TIMESTAMP NOT NULL,
|
||||
user_host MEDIUMTEXT,
|
||||
thread_id INTEGER,
|
||||
server_id INTEGER,
|
||||
command_type VARCHAR(64),
|
||||
argument MEDIUMTEXT
|
||||
) engine=CSV CHARACTER SET utf8 comment='General log';
|
||||
CREATE TABLE IF NOT EXISTS slow_log (
|
||||
start_time TIMESTAMP NOT NULL,
|
||||
user_host MEDIUMTEXT NOT NULL,
|
||||
query_time TIME NOT NULL,
|
||||
lock_time TIME NOT NULL,
|
||||
rows_sent INTEGER NOT NULL,
|
||||
rows_examined INTEGER NOT NULL,
|
||||
db VARCHAR(512),
|
||||
last_insert_id INTEGER,
|
||||
insert_id INTEGER,
|
||||
server_id INTEGER,
|
||||
sql_text MEDIUMTEXT NOT NULL
|
||||
) engine=CSV CHARACTER SET utf8 comment='Slow log';
|
||||
END IF;
|
||||
END//
|
||||
delimiter ;
|
||||
CALL create_log_tables();
|
||||
DROP PROCEDURE create_log_tables;
|
||||
|
||||
#
|
||||
# EVENT privilege
|
||||
#
|
||||
|
@ -503,8 +466,6 @@ ALTER TABLE tables_priv MODIFY Table_priv set('Select','Insert','Update','Delete
|
|||
|
||||
UPDATE user SET Trigger_priv=Super_priv WHERE @hadTriggerPriv = 0;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ndb_binlog_index (Position BIGINT UNSIGNED NOT NULL, File VARCHAR(255) NOT NULL, epoch BIGINT UNSIGNED NOT NULL, inserts BIGINT UNSIGNED NOT NULL, updates BIGINT UNSIGNED NOT NULL, deletes BIGINT UNSIGNED NOT NULL, schemaops BIGINT UNSIGNED NOT NULL, PRIMARY KEY(epoch)) ENGINE=MYISAM;
|
||||
|
||||
# Activate the new, possible modified privilege tables
|
||||
# This should not be needed, but gives us some extra testing that the above
|
||||
# changes was correct
|
||||
|
|
|
@ -364,6 +364,11 @@ pthread_handler_t handle_bootstrap(void *arg)
|
|||
buff[length-1] == ';'))
|
||||
length--;
|
||||
buff[length]=0;
|
||||
|
||||
/* Skip lines starting with delimiter */
|
||||
if (strncmp(buff, STRING_WITH_LEN("delimiter")) == 0)
|
||||
continue;
|
||||
|
||||
thd->query_length=length;
|
||||
thd->query= thd->memdup_w_gap(buff, length+1,
|
||||
thd->db_length+1+QUERY_CACHE_FLAGS_SIZE);
|
||||
|
|
Loading…
Reference in a new issue