mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
Bug#35161
Fixed memory leak when failing to open a partition.
Bug#20129
Added tests for verifying REPAIR PARTITION.
mysql-test/std_data/parts/t1_will_crash#P#p1_first_1024.MYD:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... not working
(see mysql-test/suite/parts/t/partition_repair_myisam.test
Created by:
CREATE TABLE t1_will_crash (
a VARCHAR(255),
b INT,
c LONGTEXT,
PRIMARY KEY (a, b))ENGINE=MyISAM
PARTITION BY HASH (b)
PARTITIONS 7;
INSERT INTO t1_will_crash VALUES ...
and then
head -c 1024 var/master-data/test/t1_will_crash#P#p1.MYD
into this file.
mysql-test/std_data/parts/t1_will_crash#P#p2.MYD:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... not working
(see mysql-test/suite/parts/t/partition_repair_myisam.test)
copy of file right after _mi_mark_file_changed in mi_write
was done.
mysql-test/std_data/parts/t1_will_crash#P#p2.MYI:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... not working
(see mysql-test/suite/parts/t/partition_repair_myisam.test)
copy of file right after _mi_mark_file_changed in mi_write
was done.
mysql-test/std_data/parts/t1_will_crash#P#p3.MYI:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... not working
(see mysql-test/suite/parts/t/partition_repair_myisam.test)
copy of file right after *share->write_record was done.
mysql-test/std_data/parts/t1_will_crash#P#p4.MYI:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... not working
(see mysql-test/suite/parts/t/partition_repair_myisam.test)
copy of file right after flush_cached_blocks
mysql-test/std_data/parts/t1_will_crash#P#p6.MYD:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... not working
(see mysql-test/suite/parts/t/partition_repair_myisam.test)
copy of file right after _mi_write_part_record in
write_dynamic_record returned for the first time.
mysql-test/std_data/parts/t1_will_crash#P#p6_2.MYD:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... not working
(see mysql-test/suite/parts/t/partition_repair_myisam.test)
copy of file right after _mi_write_part_record in
write_dynamic_record returned for the second time.
mysql-test/std_data/parts/t1_will_crash#P#p6_3.MYD:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... not working
(see mysql-test/suite/parts/t/partition_repair_myisam.test)
copy of file right after _mi_write_part_record in
write_dynamic_record returned for the third time.
(data file fully updated).
mysql-test/suite/parts/r/partition_recover_myisam.result:
Bug#35161
Renamed since it was a test of recover
and to make repair free for use without
--myisam-recover
mysql-test/suite/parts/r/partition_repair_myisam.result:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... not working
New result file for testing CHECK/REPAIR of partitioned tables
mysql-test/suite/parts/t/partition_recover_myisam-master.opt:
Bug#35161
Renamed since it was a test of recover
and to make repair free for use without
--myisam-recover
mysql-test/suite/parts/t/partition_recover_myisam.test:
Bug#35161
Renamed since it was a test of recover
and to make repair free for use without
--myisam-recover
mysql-test/suite/parts/t/partition_repair_myisam.test:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... not working
New test file for testing CHECK/REPAIR of partitioned tables
sql/ha_partition.cc:
Bug#35161
Fix of memory leak when open of partition failed.
56 lines
1.6 KiB
Text
56 lines
1.6 KiB
Text
CREATE TABLE t1_will_crash (a INT, KEY (a)) ENGINE=MyISAM;
|
|
INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11);
|
|
FLUSH TABLES;
|
|
# replacing t1.MYI with a corrupt + unclosed one created by doing:
|
|
# 'create table t1 (a int key(a))' head -c1024 t1.MYI > corrupt_t1.MYI
|
|
SELECT * FROM t1_will_crash;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
Warnings:
|
|
Error 145 Table './test/t1_will_crash' is marked as crashed and should be repaired
|
|
Error 1194 Table 't1_will_crash' is marked as crashed and should be repaired
|
|
Error 1034 1 client is using or hasn't closed the table properly
|
|
Error 1034 Size of indexfile is: 1024 Should be: 2048
|
|
Error 1034 Size of datafile is: 77 Should be: 7
|
|
Error 1034 Number of rows changed from 1 to 11
|
|
DROP TABLE t1_will_crash;
|
|
CREATE TABLE t1_will_crash (a INT, KEY (a))
|
|
ENGINE=MyISAM
|
|
PARTITION BY HASH(a)
|
|
PARTITIONS 3;
|
|
INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11);
|
|
FLUSH TABLES;
|
|
# replacing t1#P#p1.MYI with a corrupt + unclosed one created by doing:
|
|
# 'create table t1 (a int key(a)) partition by hash (a) partitions 3'
|
|
# head -c1024 t1#P#p1.MYI > corrupt_t1#P#p1.MYI
|
|
SELECT * FROM t1_will_crash;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
Warnings:
|
|
Error 145 Table './test/t1_will_crash#P#p1' is marked as crashed and should be repaired
|
|
Error 1194 Table 't1_will_crash' is marked as crashed and should be repaired
|
|
Error 1034 1 client is using or hasn't closed the table properly
|
|
Error 1034 Size of indexfile is: 1024 Should be: 2048
|
|
Error 1034 Size of datafile is: 28 Should be: 7
|
|
Error 1034 Number of rows changed from 1 to 4
|
|
DROP TABLE t1_will_crash;
|