BUG#23404 - ROW_FORMAT=FIXED option is lost is an index is added to the
table ROW_FORMAT option is lost during CREATE/DROP INDEX. This fix forces CREATE/DROP INDEX to retain ROW_FORMAT by instructing mysql_alter_table() that ROW_FORMAT is not used during creating/dropping indexes.
This commit is contained in:
parent
ab70ed5e48
commit
e17d7bce00
@ -543,3 +543,18 @@ ERROR 3D000: No database selected
|
|||||||
alter table test.t1 rename test.t1;
|
alter table test.t1 rename test.t1;
|
||||||
use test;
|
use test;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
CREATE TABLE t1(a INT) ROW_FORMAT=FIXED;
|
||||||
|
CREATE INDEX i1 ON t1(a);
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` int(11) default NULL,
|
||||||
|
KEY `i1` (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED
|
||||||
|
DROP INDEX i1 ON t1;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` int(11) default NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -392,4 +392,15 @@ alter table test.t1 rename test.t1;
|
|||||||
use test;
|
use test;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#23404 - ROW_FORMAT=FIXED option is lost is an index is added to the
|
||||||
|
# table
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(a INT) ROW_FORMAT=FIXED;
|
||||||
|
CREATE INDEX i1 ON t1(a);
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
DROP INDEX i1 ON t1;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
@ -5481,6 +5481,7 @@ int mysql_create_index(THD *thd, TABLE_LIST *table_list, List<Key> &keys)
|
|||||||
bzero((char*) &create_info,sizeof(create_info));
|
bzero((char*) &create_info,sizeof(create_info));
|
||||||
create_info.db_type=DB_TYPE_DEFAULT;
|
create_info.db_type=DB_TYPE_DEFAULT;
|
||||||
create_info.default_table_charset= thd->variables.collation_database;
|
create_info.default_table_charset= thd->variables.collation_database;
|
||||||
|
create_info.row_type= ROW_TYPE_NOT_USED;
|
||||||
DBUG_RETURN(mysql_alter_table(thd,table_list->db,table_list->real_name,
|
DBUG_RETURN(mysql_alter_table(thd,table_list->db,table_list->real_name,
|
||||||
&create_info, table_list,
|
&create_info, table_list,
|
||||||
fields, keys, 0, (ORDER*)0,
|
fields, keys, 0, (ORDER*)0,
|
||||||
@ -5497,6 +5498,7 @@ int mysql_drop_index(THD *thd, TABLE_LIST *table_list, ALTER_INFO *alter_info)
|
|||||||
bzero((char*) &create_info,sizeof(create_info));
|
bzero((char*) &create_info,sizeof(create_info));
|
||||||
create_info.db_type=DB_TYPE_DEFAULT;
|
create_info.db_type=DB_TYPE_DEFAULT;
|
||||||
create_info.default_table_charset= thd->variables.collation_database;
|
create_info.default_table_charset= thd->variables.collation_database;
|
||||||
|
create_info.row_type= ROW_TYPE_NOT_USED;
|
||||||
alter_info->clear();
|
alter_info->clear();
|
||||||
alter_info->flags= ALTER_DROP_INDEX;
|
alter_info->flags= ALTER_DROP_INDEX;
|
||||||
alter_info->is_simple= 0;
|
alter_info->is_simple= 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user