2862 Sergey Glukhov 2008-10-09
Bug#33649 Is multi-byte encoding applied twice, leading to squared size ?
Some columns are declared in a wrong
way, which results in this double length multiplication.
The correct character length should be 64, and the correct octet
length should be 256.
The fix is to use NAME_CHAR_LEN instead of NAME_LEN
modified:
mysql-test/r/information_schema_parameters.result
mysql-test/r/information_schema_routines.result
mysql-test/suite/funcs_1/r/is_columns_is.result
mysql-test/suite/funcs_1/r/is_routines.result
sql/sql_show.cc
2861 Sergey Glukhov 2008-10-09 [merge]
5.1->6.0 bugteam tree merge
modified:
mysql-test/r/merge.result
mysql-test/t/merge.test
sql/sql_base.cc
=== modified file 'mysql-test/r/information_schema_parameters.result'
--- a/mysql-test/r/information_schema_parameters.result 2008-05-29 15:44:11 +0000
+++ b/mysql-test/r/information_schema_parameters.result 2008-10-09 10:17:46 +0000
@@ -4,12 +4,12 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.PAR
Table Create Table
PARAMETERS CREATE TEMPORARY TABLE `PARAMETERS` (
`SPECIFIC_CATALOG` varchar(512) DEFAULT NULL,
- `SPECIFIC_SCHEMA` varchar(256) NOT NULL DEFAULT '',
- `SPECIFIC_NAME` varchar(256) NOT NULL DEFAULT '',
+ `SPECIFIC_SCHEMA` varchar(64) NOT NULL DEFAULT '',
+ `SPECIFIC_NAME` varchar(64) NOT NULL DEFAULT '',
`ORDINAL_POSITION` int(21) NOT NULL DEFAULT '0',
`PARAMETER_MODE` varchar(5) DEFAULT NULL,
- `PARAMETER_NAME` varchar(256) DEFAULT NULL,
- `DATA_TYPE` varchar(256) NOT NULL DEFAULT '',
+ `PARAMETER_NAME` varchar(64) DEFAULT NULL,
+ `DATA_TYPE` varchar(64) NOT NULL DEFAULT '',
`CHARACTER_MAXIMUM_LENGTH` int(21) DEFAULT NULL,
`CHARACTER_OCTET_LENGTH` int(21) DEFAULT NULL,
`NUMERIC_PRECISION` int(21) DEFAULT NULL,
@@ -52,13 +52,13 @@ ORDINAL_POSITION 2
COLUMN_DEFAULT
IS_NULLABLE NO
DATA_TYPE varchar
-CHARACTER_MAXIMUM_LENGTH 256
-CHARACTER_OCTET_LENGTH 1024
+CHARACTER_MAXIMUM_LENGTH 64
+CHARACTER_OCTET_LENGTH 256
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
CHARACTER_SET_NAME utf8
COLLATION_NAME utf8_general_ci
-COLUMN_TYPE varchar(256)
+COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
PRIVILEGES #
@@ -73,13 +73,13 @@ ORDINAL_POSITION 3
COLUMN_DEFAULT
IS_NULLABLE NO
DATA_TYPE varchar
-CHARACTER_MAXIMUM_LENGTH 256
-CHARACTER_OCTET_LENGTH 1024
+CHARACTER_MAXIMUM_LENGTH 64
+CHARACTER_OCTET_LENGTH 256
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
CHARACTER_SET_NAME utf8
COLLATION_NAME utf8_general_ci
-COLUMN_TYPE varchar(256)
+COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
PRIVILEGES #
@@ -136,13 +136,13 @@ ORDINAL_POSITION 6
COLUMN_DEFAULT NULL
IS_NULLABLE YES
DATA_TYPE varchar
-CHARACTER_MAXIMUM_LENGTH 256
-CHARACTER_OCTET_LENGTH 1024
+CHARACTER_MAXIMUM_LENGTH 64
+CHARACTER_OCTET_LENGTH 256
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
CHARACTER_SET_NAME utf8
COLLATION_NAME utf8_general_ci
-COLUMN_TYPE varchar(256)
+COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
PRIVILEGES #
@@ -157,13 +157,13 @@ ORDINAL_POSITION 7
COLUMN_DEFAULT
IS_NULLABLE NO
DATA_TYPE varchar
-CHARACTER_MAXIMUM_LENGTH 256
-CHARACTER_OCTET_LENGTH 1024
+CHARACTER_MAXIMUM_LENGTH 64
+CHARACTER_OCTET_LENGTH 256
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
CHARACTER_SET_NAME utf8
COLLATION_NAME utf8_general_ci
-COLUMN_TYPE varchar(256)
+COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
PRIVILEGES #
@@ -341,12 +341,12 @@ FORMAT Default
DESCRIBE INFORMATION_SCHEMA.PARAMETERS;
Field Type Null Key Default Extra
SPECIFIC_CATALOG varchar(512) YES NULL
-SPECIFIC_SCHEMA varchar(256) NO
-SPECIFIC_NAME varchar(256) NO
+SPECIFIC_SCHEMA varchar(64) NO
+SPECIFIC_NAME varchar(64) NO
ORDINAL_POSITION int(21) NO 0
PARAMETER_MODE varchar(5) YES NULL
-PARAMETER_NAME varchar(256) YES NULL
-DATA_TYPE varchar(256) NO
+PARAMETER_NAME varchar(64) YES NULL
+DATA_TYPE varchar(64) NO
CHARACTER_MAXIMUM_LENGTH int(21) YES NULL
CHARACTER_OCTET_LENGTH int(21) YES NULL
NUMERIC_PRECISION int(21) YES NULL
=== modified file 'mysql-test/r/information_schema_routines.result'
--- a/mysql-test/r/information_schema_routines.result 2008-05-29 15:44:11 +0000
+++ b/mysql-test/r/information_schema_routines.result 2008-10-09 10:17:46 +0000
@@ -8,7 +8,7 @@ ROUTINES CREATE TEMPORARY TABLE `ROUTINE
`ROUTINE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
`ROUTINE_NAME` varchar(64) NOT NULL DEFAULT '',
`ROUTINE_TYPE` varchar(9) NOT NULL DEFAULT '',
- `DATA_TYPE` varchar(256) NOT NULL DEFAULT '',
+ `DATA_TYPE` varchar(64) NOT NULL DEFAULT '',
`CHARACTER_MAXIMUM_LENGTH` int(21) DEFAULT NULL,
`CHARACTER_OCTET_LENGTH` int(21) DEFAULT NULL,
`NUMERIC_PRECISION` int(21) DEFAULT NULL,
@@ -151,13 +151,13 @@ ORDINAL_POSITION 6
COLUMN_DEFAULT
IS_NULLABLE NO
DATA_TYPE varchar
-CHARACTER_MAXIMUM_LENGTH 256
-CHARACTER_OCTET_LENGTH 1024
+CHARACTER_MAXIMUM_LENGTH 64
+CHARACTER_OCTET_LENGTH 256
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
CHARACTER_SET_NAME utf8
COLLATION_NAME utf8_general_ci
-COLUMN_TYPE varchar(256)
+COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
PRIVILEGES #
@@ -675,7 +675,7 @@ ROUTINE_CATALOG varchar(512) YES NULL
ROUTINE_SCHEMA varchar(64) NO
ROUTINE_NAME varchar(64) NO
ROUTINE_TYPE varchar(9) NO
-DATA_TYPE varchar(256) NO
+DATA_TYPE varchar(64) NO
CHARACTER_MAXIMUM_LENGTH int(21) YES NULL
CHARACTER_OCTET_LENGTH int(21) YES NULL
NUMERIC_PRECISION int(21) YES NULL
=== modified file 'mysql-test/suite/funcs_1/r/is_columns_is.result'
--- a/mysql-test/suite/funcs_1/r/is_columns_is.result 2008-09-23 08:39:48 +0000
+++ b/mysql-test/suite/funcs_1/r/is_columns_is.result 2008-10-09 10:17:46 +0000
@@ -131,17 +131,17 @@ NULL information_schema PARAMETERS CHARA
NULL information_schema PARAMETERS CHARACTER_OCTET_LENGTH 9 NULL YES int NULL NULL 10 0 NULL NULL int(21) select Default Default
NULL information_schema PARAMETERS CHARACTER_SET_NAME 12 NULL YES varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
NULL information_schema PARAMETERS COLLATION_NAME 13 NULL YES varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
-NULL information_schema PARAMETERS DATA_TYPE 7 NO varchar 256 1024 NULL NULL utf8 utf8_general_ci varchar(256) select Default Default
+NULL information_schema PARAMETERS DATA_TYPE 7 NO varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
NULL information_schema PARAMETERS DTD_IDENTIFIER 14 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select Default Default
NULL information_schema PARAMETERS NUMERIC_PRECISION 10 NULL YES int NULL NULL 10 0 NULL NULL int(21) select Default Default
NULL information_schema PARAMETERS NUMERIC_SCALE 11 NULL YES int NULL NULL 10 0 NULL NULL int(21) select Default Default
NULL information_schema PARAMETERS ORDINAL_POSITION 4 0 NO int NULL NULL 10 0 NULL NULL int(21) select Default Default
NULL information_schema PARAMETERS PARAMETER_MODE 5 NULL YES varchar 5 20 NULL NULL utf8 utf8_general_ci varchar(5) select Default Default
-NULL information_schema PARAMETERS PARAMETER_NAME 6 NULL YES varchar 256 1024 NULL NULL utf8 utf8_general_ci varchar(256) select Default Default
+NULL information_schema PARAMETERS PARAMETER_NAME 6 NULL YES varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
NULL information_schema PARAMETERS ROUTINE_TYPE 15 NO varchar 9 36 NULL NULL utf8 utf8_general_ci varchar(9) select Default Default
NULL information_schema PARAMETERS SPECIFIC_CATALOG 1 NULL YES varchar 512 2048 NULL NULL utf8 utf8_general_ci varchar(512) select Default Default
-NULL information_schema PARAMETERS SPECIFIC_NAME 3 NO varchar 256 1024 NULL NULL utf8 utf8_general_ci varchar(256) select Default Default
-NULL information_schema PARAMETERS SPECIFIC_SCHEMA 2 NO varchar 256 1024 NULL NULL utf8 utf8_general_ci varchar(256) select Default Default
+NULL information_schema PARAMETERS SPECIFIC_NAME 3 NO varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
+NULL information_schema PARAMETERS SPECIFIC_SCHEMA 2 NO varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
NULL information_schema PARTITIONS AVG_ROW_LENGTH 14 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select Default Default
NULL information_schema PARTITIONS CHECKSUM 22 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select Default Default
NULL information_schema PARTITIONS CHECK_TIME 21 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select Default Default
@@ -204,7 +204,7 @@ NULL information_schema ROUTINES COLLATI
NULL information_schema ROUTINES COLLATION_NAME 12 NULL YES varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
NULL information_schema ROUTINES CREATED 23 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select Default Default
NULL information_schema ROUTINES DATABASE_COLLATION 30 NO varchar 32 128 NULL NULL utf8 utf8_general_ci varchar(32) select Default Default
-NULL information_schema ROUTINES DATA_TYPE 6 NO varchar 256 1024 NULL NULL utf8 utf8_general_ci varchar(256) select Default Default
+NULL information_schema ROUTINES DATA_TYPE 6 NO varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
NULL information_schema ROUTINES DEFINER 27 NO varchar 77 308 NULL NULL utf8 utf8_general_ci varchar(77) select Default Default
NULL information_schema ROUTINES DTD_IDENTIFIER 13 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select Default Default
NULL information_schema ROUTINES EXTERNAL_LANGUAGE 17 NULL YES varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
@@ -518,12 +518,12 @@ NULL information_schema KEY_COLUMN_USAGE
4.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar 64 256 utf8 utf8_general_ci varchar(64)
4.0000 information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar 64 256 utf8 utf8_general_ci varchar(64)
4.0000 information_schema PARAMETERS SPECIFIC_CATALOG varchar 512 2048 utf8 utf8_general_ci varchar(512)
-4.0000 information_schema PARAMETERS SPECIFIC_SCHEMA varchar 256 1024 utf8 utf8_general_ci varchar(256)
-4.0000 information_schema PARAMETERS SPECIFIC_NAME varchar 256 1024 utf8 utf8_general_ci varchar(256)
+4.0000 information_schema PARAMETERS SPECIFIC_SCHEMA varchar 64 256 utf8 utf8_general_ci varchar(64)
+4.0000 information_schema PARAMETERS SPECIFIC_NAME varchar 64 256 utf8 utf8_general_ci varchar(64)
NULL information_schema PARAMETERS ORDINAL_POSITION int NULL NULL NULL NULL int(21)
4.0000 information_schema PARAMETERS PARAMETER_MODE varchar 5 20 utf8 utf8_general_ci varchar(5)
-4.0000 information_schema PARAMETERS PARAMETER_NAME varchar 256 1024 utf8 utf8_general_ci varchar(256)
-4.0000 information_schema PARAMETERS DATA_TYPE varchar 256 1024 utf8 utf8_general_ci varchar(256)
+4.0000 information_schema PARAMETERS PARAMETER_NAME varchar 64 256 utf8 utf8_general_ci varchar(64)
+4.0000 information_schema PARAMETERS DATA_TYPE varchar 64 256 utf8 utf8_general_ci varchar(64)
NULL information_schema PARAMETERS CHARACTER_MAXIMUM_LENGTH int NULL NULL NULL NULL int(21)
NULL information_schema PARAMETERS CHARACTER_OCTET_LENGTH int NULL NULL NULL NULL int(21)
NULL information_schema PARAMETERS NUMERIC_PRECISION int NULL NULL NULL NULL int(21)
@@ -591,7 +591,7 @@ NULL information_schema PROCESSLIST TIME
4.0000 information_schema ROUTINES ROUTINE_SCHEMA varchar 64 256 utf8 utf8_general_ci varchar(64)
4.0000 information_schema ROUTINES ROUTINE_NAME varchar 64 256 utf8 utf8_general_ci varchar(64)
4.0000 information_schema ROUTINES ROUTINE_TYPE varchar 9 36 utf8 utf8_general_ci varchar(9)
-4.0000 information_schema ROUTINES DATA_TYPE varchar 256 1024 utf8 utf8_general_ci varchar(256)
+4.0000 information_schema ROUTINES DATA_TYPE varchar 64 256 utf8 utf8_general_ci varchar(64)
NULL information_schema ROUTINES CHARACTER_MAXIMUM_LENGTH int NULL NULL NULL NULL int(21)
NULL information_schema ROUTINES CHARACTER_OCTET_LENGTH int NULL NULL NULL NULL int(21)
NULL information_schema ROUTINES NUMERIC_PRECISION int NULL NULL NULL NULL int(21)
=== modified file 'mysql-test/suite/funcs_1/r/is_routines.result'
--- a/mysql-test/suite/funcs_1/r/is_routines.result 2008-07-04 08:28:36 +0000
+++ b/mysql-test/suite/funcs_1/r/is_routines.result 2008-10-09 10:17:46 +0000
@@ -33,7 +33,7 @@ ROUTINE_CATALOG varchar(512) YES NULL
ROUTINE_SCHEMA varchar(64) NO
ROUTINE_NAME varchar(64) NO
ROUTINE_TYPE varchar(9) NO
-DATA_TYPE varchar(256) NO
+DATA_TYPE varchar(64) NO
CHARACTER_MAXIMUM_LENGTH int(21) YES NULL
CHARACTER_OCTET_LENGTH int(21) YES NULL
NUMERIC_PRECISION int(21) YES NULL
@@ -66,7 +66,7 @@ ROUTINES CREATE TEMPORARY TABLE `ROUTINE
`ROUTINE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
`ROUTINE_NAME` varchar(64) NOT NULL DEFAULT '',
`ROUTINE_TYPE` varchar(9) NOT NULL DEFAULT '',
- `DATA_TYPE` varchar(256) NOT NULL DEFAULT '',
+ `DATA_TYPE` varchar(64) NOT NULL DEFAULT '',
`CHARACTER_MAXIMUM_LENGTH` int(21) DEFAULT NULL,
`CHARACTER_OCTET_LENGTH` int(21) DEFAULT NULL,
`NUMERIC_PRECISION` int(21) DEFAULT NULL,
@@ -99,7 +99,7 @@ ROUTINE_CATALOG varchar(512) YES NULL
ROUTINE_SCHEMA varchar(64) NO
ROUTINE_NAME varchar(64) NO
ROUTINE_TYPE varchar(9) NO
-DATA_TYPE varchar(256) NO
+DATA_TYPE varchar(64) NO
CHARACTER_MAXIMUM_LENGTH int(21) YES NULL
CHARACTER_OCTET_LENGTH int(21) YES NULL
NUMERIC_PRECISION int(21) YES NULL
=== modified file 'sql/sql_show.cc'
--- a/sql/sql_show.cc 2008-10-09 08:06:31 +0000
+++ b/sql/sql_show.cc 2008-10-09 10:17:46 +0000
@@ -6567,7 +6567,7 @@ ST_FIELD_INFO proc_fields_info[]=
{"ROUTINE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Name",
SKIP_OPEN_TABLE},
{"ROUTINE_TYPE", 9, MYSQL_TYPE_STRING, 0, 0, "Type", SKIP_OPEN_TABLE},
- {"DATA_TYPE", NAME_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
+ {"DATA_TYPE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
{"CHARACTER_MAXIMUM_LENGTH", 21 , MYSQL_TYPE_LONG, 0, 1, 0, SKIP_OPEN_TABLE},
{"CHARACTER_OCTET_LENGTH", 21 , MYSQL_TYPE_LONG, 0, 1, 0, SKIP_OPEN_TABLE},
{"NUMERIC_PRECISION", 21 , MYSQL_TYPE_LONG, 0, 1, 0, SKIP_OPEN_TABLE},
@@ -6969,12 +6969,13 @@ ST_FIELD_INFO referential_constraints_fi
ST_FIELD_INFO parameters_fields_info[]=
{
{"SPECIFIC_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
- {"SPECIFIC_SCHEMA", NAME_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
- {"SPECIFIC_NAME", NAME_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
+ {"SPECIFIC_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0,
+ OPEN_FULL_TABLE},
+ {"SPECIFIC_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
{"ORDINAL_POSITION", 21 , MYSQL_TYPE_LONG, 0, 0, 0, OPEN_FULL_TABLE},
{"PARAMETER_MODE", 5, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
- {"PARAMETER_NAME", NAME_LEN, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
- {"DATA_TYPE", NAME_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
+ {"PARAMETER_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
+ {"DATA_TYPE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
{"CHARACTER_MAXIMUM_LENGTH", 21 , MYSQL_TYPE_LONG, 0, 1, 0, OPEN_FULL_TABLE},
{"CHARACTER_OCTET_LENGTH", 21 , MYSQL_TYPE_LONG, 0, 1, 0, OPEN_FULL_TABLE},
{"NUMERIC_PRECISION", 21 , MYSQL_TYPE_LONG, 0, 1, 0, OPEN_FULL_TABLE},
| Thread |
|---|
| • bzr push into mysql-6.0 branch (Sergey.Glukhov:2861 to 2862) Bug#33649 | Sergey Glukhov | 9 Oct |