mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 19:11:46 +01:00
Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-4.1
into deer.(none):/home/hf/work/mysql-4.1.3067
This commit is contained in:
commit
1f709b1985
3 changed files with 31 additions and 3 deletions
|
@ -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
|
||||
(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.
|
||||
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) &
|
||||
param->keys_in_use);
|
||||
if (param->testflag & T_CREATE_MISSING_KEYS)
|
||||
share->state.key_map= ((((ulonglong) 1L << share->base.keys)-1) &
|
||||
param->keys_in_use);
|
||||
|
||||
info->state->key_file_length=share->base.keystart;
|
||||
|
||||
|
|
|
@ -9,6 +9,21 @@ repair table t1 use_frm;
|
|||
Table Op Msg_type Msg_text
|
||||
test.t1 repair error The storage engine for the table doesn't support repair
|
||||
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;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair error Table 'test.t1' doesn't exist
|
||||
|
|
|
@ -12,6 +12,18 @@ alter table t1 ENGINE=HEAP;
|
|||
repair table t1 use_frm;
|
||||
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
|
||||
repair table t1 use_frm;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue