mirror of
https://github.com/MariaDB/server.git
synced 2025-02-03 04:21:41 +01:00
36eba98817
Changing the default server character set from latin1 to utf8mb4.
317 lines
12 KiB
Text
317 lines
12 KiB
Text
call mtr.add_suppression("character set is multi-byte");
|
|
call mtr.add_suppression("exists only for compatibility");
|
|
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)) CHARSET=latin1;
|
|
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 Index_comment Ignored
|
|
t1 0 PRIMARY 1 id A 1 NULL NULL BTREE NO
|
|
t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled NO
|
|
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 Index_comment Ignored
|
|
t1 0 PRIMARY 1 id A 1 NULL NULL BTREE NO
|
|
t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled NO
|
|
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 Index_comment Ignored
|
|
t1 1 a 1 a A 5 NULL NULL YES BTREE NO
|
|
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)) CHARSET=latin1;
|
|
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');
|
|
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. X
|
|
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)) CHARSET=latin1;
|
|
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 Max_index_length Temporary
|
|
t1 MyISAM 9 Fixed 2 5 10 21474836479 1024 0 NULL # # NULL latin1_swedish_ci NULL 17179868160 N
|
|
SELECT * FROM t1;
|
|
id
|
|
1
|
|
2
|
|
# Run CHECK TABLE, it should indicate table need a ALTER TABLE
|
|
CHECK TABLE t1 FOR UPGRADE;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check error Table rebuild required. Please do "ALTER TABLE `t1` FORCE" or dump/reload to fix it!
|
|
# REPAIR old table USE_FRM should fail
|
|
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 note Table data recovered
|
|
t1 repair error Table rebuild required. Please do "ALTER TABLE `test.t1` FORCE" or dump/reload to fix it!
|
|
test.t1 repair status Operation failed
|
|
# 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 Max_index_length Temporary
|
|
t1 MyISAM 10 Fixed 1 7 7 1970324836974591 1024 0 NULL # # NULL latin1_swedish_ci NULL 17179868160 N
|
|
SELECT * FROM t1;
|
|
id
|
|
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
|
|
SELECT * FROM t1;
|
|
id
|
|
1
|
|
DROP TABLE t1;
|
|
ALTER TABLE t1 FORCE;
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
DROP TABLE t1;
|
|
# End of 5.0 tests
|
|
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;
|
|
#
|
|
# Bug #48248 assert in MDL_ticket::upgrade_shared_lock_to_exclusive
|
|
#
|
|
DROP TABLE IF EXISTS t1;
|
|
CREATE TABLE t1(a INT);
|
|
LOCK TABLES t1 READ;
|
|
REPAIR TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair Error Table 't1' was locked with a READ lock and can't be updated
|
|
test.t1 repair status Operation failed
|
|
UNLOCK TABLES;
|
|
DROP TABLE t1;
|
|
#
|
|
# Test for bug #50784 "MDL: Assertion `m_tickets.is_empty() ||
|
|
# m_tickets.front() == m_trans_sentinel'"
|
|
#
|
|
drop tables if exists t1, t2;
|
|
create table t1 (i int);
|
|
create table t2 (j int);
|
|
set @@autocommit= 0;
|
|
repair table t1, t2;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair status OK
|
|
test.t2 repair status OK
|
|
set @@autocommit= default;
|
|
drop tables t1, t2;
|
|
#
|
|
# Check that we have decent error messages when using crashed
|
|
# .frm file from MySQL 3.23
|
|
#
|
|
# Test with a saved table from 3.23
|
|
SET @save_global_collation_server= @@global.collation_server;
|
|
set @@global.collation_server=@@collation_server;
|
|
select count(*) from t1;
|
|
ERROR HY000: Got error 190 "Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine. You can try REPAIR TABLE ... USE_FRM possibly followed by ALTER TABLE ... FORCE or dump and restore the table to fix this" from storage engine MyISAM
|
|
check table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check Error Got error 190 "Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine. You can try REPAIR TABLE ... USE_FRM possibly followed by ALTER TABLE ... FORCE or dump and restore the table to fix this" from storage engine MyISAM
|
|
test.t1 check error Corrupt
|
|
repair table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair Error Got error 190 "Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine. You can try REPAIR TABLE ... USE_FRM possibly followed by ALTER TABLE ... FORCE or dump and restore the table to fix this" from storage engine MyISAM
|
|
test.t1 repair error Corrupt
|
|
repair table t1 use_frm;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair note Table data recovered
|
|
t1 repair error Table rebuild required. Please do "ALTER TABLE `test.t1` FORCE" or dump/reload to fix it!
|
|
test.t1 repair status Operation failed
|
|
select count(*) from t1;
|
|
count(*)
|
|
0
|
|
check table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check error Table rebuild required. Please do "ALTER TABLE `t1` FORCE" or dump/reload to fix it!
|
|
alter table t1 force;
|
|
check table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
drop table t1;
|
|
set @@global.collation_server=@save_global_collation_server;
|
|
create table t1 (a blob);
|
|
create view v1 as select * from t1;
|
|
repair view v1;
|
|
Table Op Msg_type Msg_text
|
|
test.v1 repair status OK
|
|
drop view v1;
|
|
drop table t1;
|
|
# End of 5.5 tests
|
|
CREATE TABLE t1 (i INT) ENGINE=MyISAM;
|
|
INSERT t1 VALUES (1);
|
|
LOCK TABLE t1 WRITE;
|
|
REPAIR TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair status OK
|
|
SELECT * FROM INFORMATION_SCHEMA.TABLES;
|
|
SELECT * FROM t1;
|
|
i
|
|
1
|
|
UNLOCK TABLES;
|
|
DROP TABLE t1;
|
|
# End of 10.0 tests
|
|
create table t1 (a int, b varchar(200));
|
|
insert t1 select seq, repeat(200, seq) from seq_1_to_30;
|
|
delete from t1 where a % 13 = 0;
|
|
repair table t1 use_frm;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair warning Number of rows changed from 0 to 28
|
|
test.t1 repair status OK
|
|
delete from t1 where a % 11 = 0;
|
|
repair table t1 extended use_frm;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair warning Number of rows changed from 0 to 26
|
|
test.t1 repair status OK
|
|
delete from t1 where a % 7 = 0;
|
|
set myisam_repair_threads = 2;
|
|
repair table t1 use_frm;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair warning Number of rows changed from 0 to 22
|
|
test.t1 repair status OK
|
|
set myisam_repair_threads = default;
|
|
drop table t1;
|
|
# End of 10.2 tests
|
|
#
|
|
# MDEV-33737 The way of ignoring alter-algorithm is inconsistent with
|
|
# other options and with itself
|
|
#
|
|
select * from information_schema.system_variables where variable_name = 'ALTER_ALGORITHM';
|
|
VARIABLE_NAME ALTER_ALGORITHM
|
|
SESSION_VALUE DEFAULT
|
|
GLOBAL_VALUE DEFAULT
|
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
|
DEFAULT_VALUE DEFAULT
|
|
VARIABLE_SCOPE SESSION
|
|
VARIABLE_TYPE ENUM
|
|
VARIABLE_COMMENT Unused
|
|
NUMERIC_MIN_VALUE NULL
|
|
NUMERIC_MAX_VALUE NULL
|
|
NUMERIC_BLOCK_SIZE NULL
|
|
ENUM_VALUE_LIST DEFAULT,COPY,INPLACE,NOCOPY,INSTANT
|
|
READ_ONLY NO
|
|
COMMAND_LINE_ARGUMENT OPTIONAL
|
|
GLOBAL_VALUE_PATH NULL
|
|
set alter_algorithm=COPY;
|
|
Warnings:
|
|
Warning 4200 The variable '@@alter_algorithm' is ignored. It only exists for compatibility with old installations and will be removed in a future release
|
|
select @@alter_algorithm;
|
|
@@alter_algorithm
|
|
DEFAULT
|
|
set statement alter_algorithm=COPY FOR SELECT @@alter_algorithm;
|
|
@@alter_algorithm
|
|
DEFAULT
|
|
Warnings:
|
|
Warning 4200 The variable '@@alter_algorithm' is ignored. It only exists for compatibility with old installations and will be removed in a future release
|
|
Warning 4200 The variable '@@alter_algorithm' is ignored. It only exists for compatibility with old installations and will be removed in a future release
|
|
# restart: --alter-algorithm=COPY
|
|
select @@alter_algorithm;
|
|
@@alter_algorithm
|
|
DEFAULT
|
|
#
|
|
# MDEV-33826 Assertion `tl->table == __null' failed in
|
|
# THD::open_temporary_table
|
|
#
|
|
CREATE TABLE t1 (i INT) ENGINE=InnoDB;
|
|
CREATE TABLE t2 (i INT) ENGINE=InnoDB;
|
|
CREATE TEMPORARY TABLE t3 (i INT);
|
|
REPAIR TABLE t1,t2,t3;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair status OK
|
|
test.t2 repair status OK
|
|
test.t3 repair status OK
|
|
DROP TABLE t1,t2,t3;
|
|
# End of 11.5 tests
|