Below is the list of changes that have just been committed into a local
6.0 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@stripped, 2008-03-07 15:18:14+01:00, andrey@stripped +1 -0
Fix for bug#33053 mysql_upgrade: Does not convert all mysql db tables from utf8mb3 to
utf8
and bug#33002 Event Scheduler: Unnecessarily disabled after 5.1 -> 6.0.4 upgrade
mysql_upgrade MODIFY-ies the columns that are utf8 to be utf8. This converts them from
utf8mb3
to utf8.
scripts/mysql_system_tables_fix.sql@stripped, 2008-03-07 15:18:10+01:00,
andrey@stripped +165 -0
A 6.0 server running with tables created with 5.0/5.1 will see the utf8 columns
as utf8mb3. Therefore mysql_upgrade needs to ALTER the system tables so they will be
again utf8 (now 4byte).
diff -Nrup a/scripts/mysql_system_tables_fix.sql b/scripts/mysql_system_tables_fix.sql
--- a/scripts/mysql_system_tables_fix.sql 2008-02-07 19:21:13 +01:00
+++ b/scripts/mysql_system_tables_fix.sql 2008-03-07 15:18:10 +01:00
@@ -497,6 +497,7 @@ ALTER TABLE event ADD body_utf8 longblob
ALTER TABLE event MODIFY body_utf8 longblob DEFAULT NULL;
+
#
# TRIGGER privilege
#
@@ -522,3 +523,167 @@ UPDATE user SET Trigger_priv=Super_priv
# changes was correct
flush privileges;
+
+
+
+#Because in 6.0 old utf8 columns are marked as utf8mb3
+#we need to alter all utf8 columns, which the 6.0 server will see as mb3
+#to utf8.
+
+
+ALTER TABLE db CHARACTER SET utf8 COLLATE utf8_bin;
+ALTER TABLE db MODIFY Host char(60) COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE db MODIFY Db char(64) COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE db MODIFY User char(16) COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE db MODIFY Select_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE db MODIFY Insert_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE db MODIFY Update_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE db MODIFY Delete_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE db MODIFY Create_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE db MODIFY Drop_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE db MODIFY Grant_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE db MODIFY References_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE db MODIFY Index_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE db MODIFY Alter_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE db MODIFY Create_tmp_table_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE db MODIFY Lock_tables_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE db MODIFY Create_view_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE db MODIFY Show_view_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE db MODIFY Create_routine_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE db MODIFY Alter_routine_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N'
+ALTER TABLE db MODIFY Execute_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE db MODIFY Event_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE db MODIFY Trigger_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+
+ALTER TABLE columns_priv CHARACTER SET utf8 COLLATE utf8_bin ;
+ALTER TABLE columns_priv MODIFY Host char(60) NOT NULL DEFAULT '';
+ALTER TABLE columns_priv MODIFY Db char(64) NOT NULL DEFAULT '';
+ALTER TABLE columns_priv MODIFY User char(16) NOT NULL DEFAULT '';
+ALTER TABLE columns_priv MODIFY Table_name char(64) NOT NULL DEFAULT '';
+ALTER TABLE columns_priv MODIFY Column_name char(64) NOT NULL DEFAULT '';
+ALTER TABLE columns_priv MODIFY Column_priv set('Select','Insert','Update','References')
CHARACTER SET utf8 NOT NULL DEFAULT '';
+
+ALTER TABLE event CHARACTER SET utf8;
+ALTER TABLE event MODIFY db char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT
'';
+ALTER TABLE event MODIFY name char(64) NOT NULL DEFAULT '';
+ALTER TABLE event MODIFY definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
DEFAULT '';
+ALTER TABLE event MODIFY comment char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
DEFAULT '';
+ALTER TABLE event MODIFY character_set_client char(32) CHARACTER SET utf8 COLLATE
utf8_bin DEFAULT NULL;
+ALTER TABLE event MODIFY collation_connection char(32) CHARACTER SET utf8 COLLATE
utf8_bin DEFAULT NULL;
+ALTER TABLE event MODIFY db_collation char(32) CHARACTER SET utf8 COLLATE utf8_bin
DEFAULT NULL;
+
+ALTER TABLE func CHARACTER SET utf8 COLLATE utf8_bin;
+ALTER TABLE func MODIFY name char(64) NOT NULL DEFAULT '';
+ALTER TABLE func MODIFY dl char(128) COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE func MODIFY type enum('function','aggregate') CHARACTER SET utf8 NOT NULL;
+
+ALTER TABLE general_log CHARACTER SET utf8;
+ALTER TABLE help_category CHARACTER SET utf8;
+ALTER TABLE help_keyword CHARACTER SET utf8;
+ALTER TABLE help_relation CHARACTER SET utf8;
+ALTER TABLE help_topic CHARACTER SET utf8;
+
+ALTER TABLE host CHARACTER SET utf8 COLLATE utf8_bin;
+ALTER TABLE host MODIFY Host char(60) COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE host MODIFY Db char(64) COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE host MODIFY Select_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE host MODIFY Insert_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE host MODIFY Update_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE host MODIFY Delete_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE host MODIFY Create_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE host MODIFY Drop_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE host MODIFY Grant_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE host MODIFY References_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE host MODIFY Index_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE host MODIFY Alter_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE host MODIFY Create_tmp_table_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE host MODIFY Lock_tables_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE host MODIFY Create_view_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE host MODIFY Show_view_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE host MODIFY Create_routine_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE host MODIFY Alter_routine_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE host MODIFY Execute_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE host MODIFY Trigger_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+
+ALTER TABLE plugin CHARACTER SET utf8;
+ALTER TABLE plugin MODIFY name char(64) COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE plugin MODIFY dl char(128) COLLATE utf8_bin NOT NULL DEFAULT '';
+
+ALTER TABLE proc CHARACTER SET utf8;
+ALTER TABLE proc MODIFY db char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT
'';
+ALTER TABLE proc MODIFY name char(64) NOT NULL DEFAULT '';
+ALTER TABLE proc MODIFY type enum('FUNCTION','PROCEDURE') NOT NULL;
+ALTER TABLE proc MODIFY specific_name char(64) NOT NULL DEFAULT '';
+ALTER TABLE proc MODIFY language enum('SQL') NOT NULL DEFAULT 'SQL';
+ALTER TABLE proc MODIFY sql_data_access
enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NOT NULL DEFAULT
'CONTAINS_SQL';
+ALTER TABLE proc MODIFY is_deterministic enum('YES','NO') NOT NULL DEFAULT 'NO';
+ALTER TABLE proc MODIFY security_type enum('INVOKER','DEFINER') NOT NULL DEFAULT
'DEFINER';
+ALTER TABLE proc MODIFY returns longblob NOT NULL DEFAULT '';
+ALTER TABLE proc MODIFY definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
DEFAULT '';
+ALTER TABLE proc MODIFY created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP;
+ALTER TABLE proc MODIFY modified timestamp NOT NULL DEFAULT '0000-00-00 00:00:00';
+ALTER TABLE proc MODIFY comment char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
DEFAULT '';
+ALTER TABLE proc MODIFY character_set_client char(32) CHARACTER SET utf8 COLLATE utf8_bin
DEFAULT NULL;
+ALTER TABLE proc MODIFY collation_connection char(32) CHARACTER SET utf8 COLLATE utf8_bin
DEFAULT NULL;
+ALTER TABLE proc MODIFY db_collation char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT
NULL;
+
+ALTER TABLE procs_priv CHARACTER SET utf8 COLLATE utf8_bin;
+ALTER TABLE procs_priv MODIFY Host char(60) NOT NULL DEFAULT '';
+ALTER TABLE procs_priv MODIFY Db char(64) NOT NULL DEFAULT '';
+ALTER TABLE procs_priv MODIFY User char(16) NOT NULL DEFAULT '';
+ALTER TABLE procs_priv MODIFY Routine_name char(64) NOT NULL DEFAULT '';
+ALTER TABLE procs_priv MODIFY Routine_type enum('FUNCTION','PROCEDURE') NOT NULL;
+ALTER TABLE procs_priv MODIFY Grantor char(77) NOT NULL DEFAULT '';
+ALTER TABLE procs_priv MODIFY Proc_priv set('Execute','Alter Routine','Grant') CHARACTER
SET utf8 NOT NULL DEFAULT '';
+
+ALTER TABLE servers CHARACTER SET utf8;
+ALTER TABLE slow_log CHARACTER SET utf8;
+
+ALTER TABLE tables_priv CHARACTER SET utf8 COLLATE utf8_bin ;
+ALTER TABLE tables_priv MODIFY Host char(60) NOT NULL DEFAULT '';
+ALTER TABLE tables_priv MODIFY Db char(64) NOT NULL DEFAULT '';
+ALTER TABLE tables_priv MODIFY User char(16) NOT NULL DEFAULT '';
+ALTER TABLE tables_priv MODIFY Table_name char(64) NOT NULL DEFAULT '';
+ALTER TABLE tables_priv MODIFY Grantor char(77) NOT NULL DEFAULT '';
+ALTER TABLE tables_priv MODIFY Table_priv
set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create
View','Show view','Trigger') CHARACTER SET utf8 NOT NULL DEFAULT '';
+ALTER TABLE tables_priv MODIFY Column_priv set('Select','Insert','Update','References')
CHARACTER SET utf8 NOT NULL DEFAULT '';
+
+ALTER TABLE time_zone CHARACTER SET utf8;
+ALTER TABLE time_zone_leap_second CHARACTER SET utf8;
+ALTER TABLE time_zone_name CHARACTER SET utf8;
+ALTER TABLE time_zone_transition CHARACTER SET utf8;
+ALTER TABLE time_zone_transition_type CHARACTER SET utf8;
+
+ALTER TABLE user CHARACTER SET utf8 COLLATE utf8_bin ;
+ALTER TABLE user MODIFY Host char(60) COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE user MODIFY User char(16) COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE user MODIFY Select_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY Insert_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY Update_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY Delete_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY Create_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY Drop_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE user MODIFY Reload_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY Shutdown_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY Process_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY File_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE user MODIFY Grant_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE user MODIFY References_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY Index_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE user MODIFY Alter_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE user MODIFY Show_db_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY Super_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE user MODIFY Create_tmp_table_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE user MODIFY Lock_tables_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE user MODIFY Execute_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY Repl_slave_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY Repl_client_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE user MODIFY Create_view_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE user MODIFY Show_view_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY Create_routine_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE user MODIFY Alter_routine_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE user MODIFY Create_user_priv enum('N','Y') CHARACTER SET utf8 NOT NULL
DEFAULT 'N';
+ALTER TABLE user MODIFY Event_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';
+ALTER TABLE user MODIFY Trigger_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT
'N';
+ALTER TABLE user MODIFY ssl_type enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT
NULL DEFAULT '';
+