Skip to content

Commit b5d15ae

Browse files
author
Robert Golebiowski
committed
Bug #22379607 INCONSISTENT ACCOUNT NAME LENGTHS CAUSES TRUNCATION AND ERRORS
1 parent 8d5532b commit b5d15ae

13 files changed

+66
-35
lines changed

mysql-test/r/grant.result

+1-1
Original file line numberDiff line numberDiff line change
@@ -715,7 +715,7 @@ Host char(60) NO PRI
715715
Db char(64) NO PRI
716716
User char(32) NO PRI
717717
Table_name char(64) NO PRI
718-
Grantor char(77) NO MUL
718+
Grantor char(93) NO MUL
719719
Timestamp timestamp NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
720720
Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') NO
721721
Column_priv set('Select','Insert','Update','References') NO

mysql-test/r/information_schema.result

+1-1
Original file line numberDiff line numberDiff line change
@@ -635,7 +635,7 @@ proc security_type enum('INVOKER','DEFINER')
635635
proc param_list blob
636636
proc returns longblob
637637
proc body longblob
638-
proc definer char(77)
638+
proc definer char(93)
639639
proc created timestamp
640640
proc modified timestamp
641641
proc 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','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')

mysql-test/r/mysql_upgrade.result

+16-3
Original file line numberDiff line numberDiff line change
@@ -1900,16 +1900,27 @@ DROP TABLE backup_user;
19001900
# WL#2284: Increase the length of a user name
19011901
#
19021902
# First downgrade all tables with user name columnd to 5.6
1903+
SET @orig_sql_mode= @@sql_mode;
1904+
SET sql_mode= (SELECT replace(@@sql_mode,'NO_ZERO_DATE',''));
1905+
Warnings:
1906+
Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
19031907
ALTER TABLE mysql.tables_priv
1904-
MODIFY User char(16) NOT NULL default '';
1908+
MODIFY User char(16) NOT NULL default '',
1909+
MODIFY Grantor char(77) DEFAULT '' NOT NULL;
19051910
ALTER TABLE mysql.columns_priv
19061911
MODIFY User char(16) NOT NULL default '';
19071912
ALTER TABLE mysql.user
19081913
MODIFY User char(16) NOT NULL default '';
19091914
ALTER TABLE mysql.db
19101915
MODIFY User char(16) NOT NULL default '';
19111916
ALTER TABLE mysql.procs_priv
1912-
MODIFY User char(16) binary DEFAULT '' NOT NULL;
1917+
MODIFY User char(16) binary DEFAULT '' NOT NULL,
1918+
MODIFY Grantor char(77) DEFAULT '' NOT NULL;
1919+
ALTER TABLE mysql.proc
1920+
MODIFY definer char(77) collate utf8_bin DEFAULT '' NOT NULL;
1921+
ALTER TABLE mysql.event
1922+
MODIFY definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '';
1923+
SET sql_mode= @orig_sql_mode;
19131924
#
19141925
# Downgrade performance_schema tables
19151926
#
@@ -2309,6 +2320,8 @@ ALTER TABLE mysql.proxies_priv MODIFY User char(16) binary DEFAULT '' NOT NULL;
23092320
ALTER TABLE mysql.proxies_priv MODIFY Proxied_user char(16) binary DEFAULT '' NOT NULL;
23102321
ALTER TABLE mysql.proxies_priv MODIFY Grantor char(77) DEFAULT '' NOT NULL;
23112322
# Tables with user name column downgraded to 5.6, now run mysql_upgrade
2323+
mysql_upgrade: (non fatal) [ERROR] 1728: Cannot load from mysql.proc. The table is probably corrupted
2324+
mysql_upgrade: (non fatal) [ERROR] 1545: Failed to open mysql.event
23122325
mysql.columns_priv OK
23132326
mysql.db OK
23142327
mysql.engine_cost OK
@@ -2648,7 +2661,7 @@ proc CREATE TABLE `proc` (
26482661
`param_list` blob NOT NULL,
26492662
`returns` longblob NOT NULL,
26502663
`body` longblob NOT NULL,
2651-
`definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
2664+
`definer` char(93) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
26522665
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
26532666
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
26542667
`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','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',

mysql-test/r/system_mysql_db.result

+4-4
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ tables_priv CREATE TABLE `tables_priv` (
125125
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
126126
`User` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
127127
`Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
128-
`Grantor` char(77) COLLATE utf8_bin NOT NULL DEFAULT '',
128+
`Grantor` char(93) COLLATE utf8_bin NOT NULL DEFAULT '',
129129
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
130130
`Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') CHARACTER SET utf8 NOT NULL DEFAULT '',
131131
`Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
@@ -152,7 +152,7 @@ procs_priv CREATE TABLE `procs_priv` (
152152
`User` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
153153
`Routine_name` char(64) CHARACTER SET utf8 NOT NULL DEFAULT '',
154154
`Routine_type` enum('FUNCTION','PROCEDURE') COLLATE utf8_bin NOT NULL,
155-
`Grantor` char(77) COLLATE utf8_bin NOT NULL DEFAULT '',
155+
`Grantor` char(93) COLLATE utf8_bin NOT NULL DEFAULT '',
156156
`Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8 NOT NULL DEFAULT '',
157157
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
158158
PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
@@ -186,7 +186,7 @@ proc CREATE TABLE `proc` (
186186
`param_list` blob NOT NULL,
187187
`returns` longblob NOT NULL,
188188
`body` longblob NOT NULL,
189-
`definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
189+
`definer` char(93) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
190190
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
191191
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
192192
`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','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
@@ -203,7 +203,7 @@ event CREATE TABLE `event` (
203203
`db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
204204
`name` char(64) NOT NULL DEFAULT '',
205205
`body` longblob NOT NULL,
206-
`definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
206+
`definer` char(93) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
207207
`execute_at` datetime DEFAULT NULL,
208208
`interval_value` int(11) DEFAULT NULL,
209209
`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,

mysql-test/suite/funcs_1/r/is_columns_mysql.result

+8-8
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def mysql event comment 16 NO char 64 192 NULL NULL NULL utf8 utf8_bin char(64)
4848
def mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL 0 NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
4949
def mysql event db 1 NO char 64 192 NULL NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
5050
def mysql event db_collation 21 NULL YES char 32 96 NULL NULL NULL utf8 utf8_bin char(32) select,insert,update,references
51-
def mysql event definer 4 NO char 77 231 NULL NULL NULL utf8 utf8_bin char(77) select,insert,update,references
51+
def mysql event definer 4 NO char 93 279 NULL NULL NULL utf8 utf8_bin char(93) select,insert,update,references
5252
def mysql event ends 12 NULL YES datetime NULL NULL NULL NULL 0 NULL NULL datetime select,insert,update,references
5353
def mysql event execute_at 5 NULL YES datetime NULL NULL NULL NULL 0 NULL NULL datetime select,insert,update,references
5454
def mysql event interval_field 7 NULL YES enum 18 54 NULL NULL NULL utf8 utf8_general_ci 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') select,insert,update,references
@@ -125,7 +125,7 @@ def mysql proc comment 16 NULL NO text 65535 65535 NULL NULL NULL utf8 utf8_bin
125125
def mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL 0 NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
126126
def mysql proc db 1 NO char 64 192 NULL NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
127127
def mysql proc db_collation 19 NULL YES char 32 96 NULL NULL NULL utf8 utf8_bin char(32) select,insert,update,references
128-
def mysql proc definer 12 NO char 77 231 NULL NULL NULL utf8 utf8_bin char(77) select,insert,update,references
128+
def mysql proc definer 12 NO char 93 279 NULL NULL NULL utf8 utf8_bin char(93) select,insert,update,references
129129
def mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references
130130
def mysql proc language 5 SQL NO enum 3 9 NULL NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references
131131
def mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL 0 NULL NULL timestamp select,insert,update,references
@@ -138,7 +138,7 @@ def mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL NULL utf8
138138
def mysql proc sql_mode 15 NO set 478 1434 NULL NULL NULL utf8 utf8_general_ci 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','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') select,insert,update,references
139139
def mysql proc type 3 NULL NO enum 9 27 NULL NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
140140
def mysql procs_priv Db 2 NO char 64 192 NULL NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
141-
def mysql procs_priv Grantor 6 NO char 77 231 NULL NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
141+
def mysql procs_priv Grantor 6 NO char 93 279 NULL NULL NULL utf8 utf8_bin char(93) MUL select,insert,update,references
142142
def mysql procs_priv Host 1 NO char 60 180 NULL NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
143143
def mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references
144144
def mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
@@ -226,7 +226,7 @@ def mysql slow_log thread_id 12 NULL NO bigint NULL NULL 20 0 NULL NULL NULL big
226226
def mysql slow_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references
227227
def mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
228228
def mysql tables_priv Db 2 NO char 64 192 NULL NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
229-
def mysql tables_priv Grantor 5 NO char 77 231 NULL NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
229+
def mysql tables_priv Grantor 5 NO char 93 279 NULL NULL NULL utf8 utf8_bin char(93) MUL select,insert,update,references
230230
def mysql tables_priv Host 1 NO char 60 180 NULL NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
231231
def mysql tables_priv Table_name 4 NO char 64 192 NULL NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
232232
def mysql tables_priv Table_priv 7 NO set 98 294 NULL NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') select,insert,update,references
@@ -401,7 +401,7 @@ NULL mysql engine_cost last_update timestamp NULL NULL NULL NULL timestamp
401401
3.0000 mysql event db char 64 192 utf8 utf8_bin char(64)
402402
3.0000 mysql event name char 64 192 utf8 utf8_general_ci char(64)
403403
1.0000 mysql event body longblob 4294967295 4294967295 NULL NULL longblob
404-
3.0000 mysql event definer char 77 231 utf8 utf8_bin char(77)
404+
3.0000 mysql event definer char 93 279 utf8 utf8_bin char(93)
405405
NULL mysql event execute_at datetime NULL NULL NULL NULL datetime
406406
NULL mysql event interval_value int NULL NULL NULL NULL int(11)
407407
3.0000 mysql event interval_field enum 18 54 utf8 utf8_general_ci 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')
@@ -486,7 +486,7 @@ NULL mysql ndb_binlog_index next_position bigint NULL NULL NULL NULL bigint(20)
486486
1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob
487487
1.0000 mysql proc returns longblob 4294967295 4294967295 NULL NULL longblob
488488
1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob
489-
3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77)
489+
3.0000 mysql proc definer char 93 279 utf8 utf8_bin char(93)
490490
NULL mysql proc created timestamp NULL NULL NULL NULL timestamp
491491
NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp
492492
3.0000 mysql proc sql_mode set 478 1434 utf8 utf8_general_ci 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','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
@@ -500,7 +500,7 @@ NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp
500500
3.0000 mysql procs_priv User char 32 96 utf8 utf8_bin char(32)
501501
3.0000 mysql procs_priv Routine_name char 64 192 utf8 utf8_general_ci char(64)
502502
3.0000 mysql procs_priv Routine_type enum 9 27 utf8 utf8_bin enum('FUNCTION','PROCEDURE')
503-
3.0000 mysql procs_priv Grantor char 77 231 utf8 utf8_bin char(77)
503+
3.0000 mysql procs_priv Grantor char 93 279 utf8 utf8_bin char(93)
504504
3.0000 mysql procs_priv Proc_priv set 27 81 utf8 utf8_general_ci set('Execute','Alter Routine','Grant')
505505
NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp
506506
3.0000 mysql proxies_priv Host char 60 180 utf8 utf8_bin char(60)
@@ -586,7 +586,7 @@ NULL mysql slow_log thread_id bigint NULL NULL NULL NULL bigint(21) unsigned
586586
3.0000 mysql tables_priv Db char 64 192 utf8 utf8_bin char(64)
587587
3.0000 mysql tables_priv User char 32 96 utf8 utf8_bin char(32)
588588
3.0000 mysql tables_priv Table_name char 64 192 utf8 utf8_bin char(64)
589-
3.0000 mysql tables_priv Grantor char 77 231 utf8 utf8_bin char(77)
589+
3.0000 mysql tables_priv Grantor char 93 279 utf8 utf8_bin char(93)
590590
NULL mysql tables_priv Timestamp timestamp NULL NULL NULL NULL timestamp
591591
3.0000 mysql tables_priv Table_priv set 98 294 utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger')
592592
3.0000 mysql tables_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References')

0 commit comments

Comments
 (0)