Skip to content
This repository has been archived by the owner on Jan 13, 2022. It is now read-only.

Commit

Permalink
Ditch 5.6 user columns, if found
Browse files Browse the repository at this point in the history
Summary:
Our admission control stuff barfs all over these if it finds them.
So, if found, nuke them.  We can't use them in 5.1 anyway.

This should allow downgrades from 5.6 to 5.1 after 5.6's mysql_upgrade,
including both in-place downgrades, and xtrabackup runs from 5.6 -> 5.1.

Test Plan:
Jenkins will test for mtr test failures when I post this diff.

Did this on test intance:
	Upgraded to 5.6 test rpms.
	Downgraded to 5.1 test rpms with this change.
	SHOW COLUMNS IN mysql.user;
		Saw these three (5.6 additions, trigger the problems):
			plugin
			authentication_string
			password_expired
	Ran mysql_upgrade (included in the 5.1 "-server" test rpm).
	SHOW COLUMNS IN mysql.user;
		Saw the three had been removed.  :)

Rudy, please really crush-test this with the new xtrabackup, test rpms:
	~steaphan/rpms/fb-mysql-*5.1.63-201304071118.dev.steaphan*.rpm

Reviewers: rudradevbasak, jtolmer

Reviewed By: jtolmer
  • Loading branch information
steaphangreene committed May 29, 2013
1 parent 79b3693 commit fa4a5c2
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 0 deletions.
1 change: 1 addition & 0 deletions client/mysql_upgrade.c
Expand Up @@ -716,6 +716,7 @@ static const char *expected_errors[]=
"ERROR 1060", /* Duplicate column name */
"ERROR 1061", /* Duplicate key name */
"ERROR 1054", /* Unknown column */
"ERROR 1091", /* Can't DROP 'column' */
0
};

Expand Down
3 changes: 3 additions & 0 deletions scripts/mysql_fix_privilege_tables.sql
Expand Up @@ -136,6 +136,9 @@ ALTER TABLE user add File_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL;
SET @hadGrantPriv:=0;
SELECT @hadGrantPriv:=1 FROM user WHERE Grant_priv LIKE '%';

ALTER TABLE user DROP plugin;
ALTER TABLE user DROP authentication_string;
ALTER TABLE user DROP password_expired;
ALTER TABLE user add Grant_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add References_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Index_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Alter_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL;
ALTER TABLE host add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Index_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Alter_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL;
ALTER TABLE db add Grant_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add References_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Index_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Alter_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL;
Expand Down
3 changes: 3 additions & 0 deletions scripts/mysql_fix_privilege_tables_sql.c
Expand Up @@ -157,6 +157,9 @@ const char* mysql_fix_privilege_tables={
"SET @hadGrantPriv:=0;\n "
"SELECT @hadGrantPriv:=1 FROM user WHERE Grant_priv LIKE '%';\n "
"\n "
"ALTER TABLE user DROP plugin;\n"
"ALTER TABLE user DROP authentication_string;\n"
"ALTER TABLE user DROP password_expired;\n"
"ALTER TABLE user add Grant_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add References_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Index_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Alter_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL;\n "
"ALTER TABLE host add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Index_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Alter_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL;\n "
"ALTER TABLE db add Grant_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add References_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Index_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Alter_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL;\n "
Expand Down
3 changes: 3 additions & 0 deletions scripts/mysql_system_tables_fix.sql
Expand Up @@ -33,6 +33,9 @@ ALTER TABLE user add File_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL;
SET @hadGrantPriv:=0;
SELECT @hadGrantPriv:=1 FROM user WHERE Grant_priv LIKE '%';

ALTER TABLE user DROP plugin;
ALTER TABLE user DROP authentication_string;
ALTER TABLE user DROP password_expired;
ALTER TABLE user add Grant_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add References_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Index_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Alter_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL;
ALTER TABLE host add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Index_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Alter_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL;
ALTER TABLE db add Grant_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add References_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Index_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Alter_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL;
Expand Down

0 comments on commit fa4a5c2

Please sign in to comment.