mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
5156c2d294
Engine doesn't allow me to. In case of incompatible changes between old and new table versions, the mysqlcheck program prints error messages like this: error: Table upgrade required. Please do "REPAIR TABLE `table_name`" to fix it! However, InnoDB doesn't support REPAIR TABLE query, so the message is confusing. Error message text has been changed to: Table upgrade required. Please do "REPAIR TABLE `table_name`" or dump/reload to fix it!" mysql-test/r/repair.result: Updated test case for bug #42563. mysql-test/r/varbinary.result: Updated test case for bug #42563. sql/share/errmsg.txt: Bug #42563: Message tells me to repair table though Storage Engine doesn't allow me to. The ER_TABLE_NEEDS_UPGRADE error message has been changed to: Table upgrade required. Please do "REPAIR TABLE ``%-.32s`" or dump/reload to fix it!"
159 lines
6.3 KiB
Text
159 lines
6.3 KiB
Text
drop table if exists t1;
|
|
create table t1 SELECT 1,"table 1";
|
|
repair table t1 use_frm;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair warning Number of rows changed from 0 to 1
|
|
test.t1 repair status OK
|
|
alter table t1 ENGINE=HEAP;
|
|
repair table t1 use_frm;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair note 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
|
|
test.t1 repair status Operation failed
|
|
create table t1 engine=myisam SELECT 1,"table 1";
|
|
flush tables;
|
|
repair table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair Error Incorrect file format 't1'
|
|
test.t1 repair error Corrupt
|
|
repair table t1 use_frm;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair warning Number of rows changed from 0 to 1
|
|
test.t1 repair status OK
|
|
drop table t1;
|
|
CREATE TABLE t1(a INT, KEY(a));
|
|
INSERT INTO t1 VALUES(1),(2),(3),(4),(5);
|
|
SET myisam_repair_threads=2;
|
|
REPAIR TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair status OK
|
|
SHOW INDEX FROM t1;
|
|
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
|
t1 1 a 1 a A 5 NULL NULL YES BTREE
|
|
SET myisam_repair_threads=@@global.myisam_repair_threads;
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1(a INT);
|
|
USE mysql;
|
|
REPAIR TABLE test.t1 USE_FRM;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair status OK
|
|
USE test;
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1(a CHAR(255), KEY(a));
|
|
SET myisam_sort_buffer_size=4096;
|
|
INSERT INTO t1 VALUES
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0');
|
|
Warnings:
|
|
Error 1034 myisam_sort_buffer_size is too small
|
|
Error 1034 Number of rows changed from 0 to 157
|
|
SET myisam_repair_threads=2;
|
|
REPAIR TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair error myisam_sort_buffer_size is too small
|
|
test.t1 repair warning Number of rows changed from 0 to 157
|
|
test.t1 repair status OK
|
|
SET myisam_repair_threads=@@global.myisam_repair_threads;
|
|
SET myisam_sort_buffer_size=@@global.myisam_sort_buffer_size;
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1(a CHAR(255), KEY(a));
|
|
SET myisam_sort_buffer_size=4496;
|
|
INSERT INTO t1 VALUES
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
|
('0'),('0'),('0'),('0'),('0'),('0'),('0');
|
|
SET myisam_repair_threads=2;
|
|
REPAIR TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair status OK
|
|
SET myisam_repair_threads=@@global.myisam_repair_threads;
|
|
SET myisam_sort_buffer_size=@@global.myisam_sort_buffer_size;
|
|
DROP TABLE t1;
|
|
End of 4.1 tests
|
|
# Test with a saved table from 4.1
|
|
SHOW TABLE STATUS LIKE 't1';
|
|
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
|
t1 MyISAM 9 Fixed 2 5 10 21474836479 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
|
SELECT * FROM t1;
|
|
id
|
|
1
|
|
2
|
|
# Run CHECK TABLE, it should indicate table need a REPAIR TABLE
|
|
CHECK TABLE t1 FOR UPGRADE;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check error Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
|
|
# REPAIR old table USE_FRM should fail
|
|
REPAIR TABLE t1 USE_FRM;
|
|
Table Op Msg_type Msg_text
|
|
t1 repair error Failed repairing incompatible .frm file
|
|
# Run REPAIR TABLE to upgrade .frm file
|
|
REPAIR TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair status OK
|
|
SHOW TABLE STATUS LIKE 't1';
|
|
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
|
t1 MyISAM 10 Fixed 2 7 14 1970324836974591 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
|
SELECT * FROM t1;
|
|
id
|
|
1
|
|
2
|
|
REPAIR TABLE t1 USE_FRM;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair warning Number of rows changed from 0 to 2
|
|
test.t1 repair status OK
|
|
SELECT * FROM t1;
|
|
id
|
|
1
|
|
2
|
|
DROP TABLE t1;
|
|
DROP TABLE IF EXISTS tt1;
|
|
CREATE TEMPORARY TABLE tt1 (c1 INT);
|
|
REPAIR TABLE tt1 USE_FRM;
|
|
Table Op Msg_type Msg_text
|
|
tt1 repair error Cannot repair temporary table from .frm file
|
|
DROP TABLE tt1;
|