Commit a90f34ab authored by hf@deer.(none)'s avatar hf@deer.(none)

Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-4.1

into deer.(none):/home/hf/work/mysql-4.1.3067
parents 15cc92ca 1f709b19
...@@ -1274,11 +1274,12 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, ...@@ -1274,11 +1274,12 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info,
I think mi_repair and mi_repair_by_sort should do the same I think mi_repair and mi_repair_by_sort should do the same
(according, e.g. to ha_myisam::repair), but as mi_repair doesn't (according, e.g. to ha_myisam::repair), but as mi_repair doesn't
touch key_map it cannot be used to T_CREATE_MISSING_KEYS. touch key_map it cannot be used to T_CREATE_MISSING_KEYS.
That is what the next line is for... (serg) That is what the next line is for
*/ */
share->state.key_map= ((((ulonglong) 1L << share->base.keys)-1) & if (param->testflag & T_CREATE_MISSING_KEYS)
param->keys_in_use); share->state.key_map= ((((ulonglong) 1L << share->base.keys)-1) &
param->keys_in_use);
info->state->key_file_length=share->base.keystart; info->state->key_file_length=share->base.keystart;
......
...@@ -9,6 +9,21 @@ repair table t1 use_frm; ...@@ -9,6 +9,21 @@ repair table t1 use_frm;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 repair error The storage engine for the table doesn't support repair test.t1 repair error The storage engine for the table doesn't support repair
drop table t1; drop table t1;
create table t1(id int PRIMARY KEY, st varchar(10), KEY st_key(st));
insert into t1 values(1, "One");
alter table t1 disable keys;
show keys from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t1 0 PRIMARY 1 id A 1 NULL NULL BTREE
t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled
repair table t1 extended;
Table Op Msg_type Msg_text
test.t1 repair status OK
show keys from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t1 0 PRIMARY 1 id A 1 NULL NULL BTREE
t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled
drop table t1;
repair table t1 use_frm; repair table t1 use_frm;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 repair error Table 'test.t1' doesn't exist test.t1 repair error Table 'test.t1' doesn't exist
......
...@@ -12,6 +12,18 @@ alter table t1 ENGINE=HEAP; ...@@ -12,6 +12,18 @@ alter table t1 ENGINE=HEAP;
repair table t1 use_frm; repair table t1 use_frm;
drop table t1; drop table t1;
#
# disabled keys during repair
#
create table t1(id int PRIMARY KEY, st varchar(10), KEY st_key(st));
insert into t1 values(1, "One");
alter table t1 disable keys;
show keys from t1;
repair table t1 extended;
show keys from t1;
drop table t1;
# non-existent table # non-existent table
repair table t1 use_frm; repair table t1 use_frm;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment