2009-11-25 20:19:59 +01:00
|
|
|
DROP TABLE IF EXISTS t1,t2,t3;
|
2007-11-07 09:55:28 +01:00
|
|
|
CREATE TABLE t1(c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, c4 DOUBLE, c5 DOUBLE,
|
|
|
|
c6 DOUBLE, c7 DOUBLE, c8 DOUBLE, c9 DOUBLE, a INT PRIMARY KEY);
|
|
|
|
INSERT INTO t1 VALUES
|
|
|
|
(-3.31168791059336e-06,-3.19054655887874e-06,-1.06528081684847e-05,-1.227278240089e-06,-1.66718069164799e-06,-2.59038972510885e-06,-2.83145227805303e-06,-4.09678491270648e-07,-2.22610091291797e-06,6),
|
|
|
|
(0.0030743000272545,2.53222044316438e-05,2.78674650061845e-05,1.95914465544536e-05,1.7347572525984e-05,1.87513810069614e-05,1.69882826885005e-05,2.44449336987598e-05,1.89914629921774e-05,9),
|
|
|
|
(2.85229319423495e-05,3.05970988282259e-05,3.77161100113133e-05,2.3055238978766e-05,2.08241267364615e-05,2.28009504270553e-05,2.12070165658947e-05,2.84350091565409e-05,2.3366822910704e-05,3),
|
|
|
|
(0,0,0,0,0,0,0,0,0,12),
|
|
|
|
(3.24544577570754e-05,3.44619021870993e-05,4.37561613201124e-05,2.57556808726748e-05,2.3195354640561e-05,2.58532400758869e-05,2.34934241667179e-05,3.1621640063232e-05,2.58229982746189e-05,19),
|
|
|
|
(2.53222044316438e-05,0.00445071933455582,2.97447268116016e-05,2.12379514059868e-05,1.86777776502663e-05,2.0170058676712e-05,1.8946030385445e-05,2.66040037173511e-05,2.09161899668946e-05,20),
|
|
|
|
(3.03462382611645e-05,3.26517930083994e-05,3.5242025468662e-05,2.53219745106391e-05,2.24384532945004e-05,2.4052346047657e-05,2.23865572957053e-05,3.1634313969082e-05,2.48285463481801e-05,21),
|
|
|
|
(1.95914465544536e-05,2.12379514059868e-05,2.27808649037128e-05,0.000341724375366877,1.4512761275113e-05,1.56475828693953e-05,1.44372366441415e-05,2.07952121981765e-05,1.61488256935919e-05,28),
|
|
|
|
(1.7347572525984e-05,1.86777776502663e-05,2.04116907052727e-05,1.4512761275113e-05,0.000432162526082388,1.38116514014465e-05,1.2712914948904e-05,1.82503165178506e-05,1.43043075345922e-05,30),
|
|
|
|
(1.68339762136661e-05,1.77836497166611e-05,2.36328309295222e-05,1.30183423732016e-05,1.18674654241553e-05,1.32467273128652e-05,1.24581739117775e-05,1.55624190959406e-05,1.33010638508213e-05,31),
|
|
|
|
(1.89643062824415e-05,2.06997140070717e-05,2.29045490159364e-05,1.57918175731019e-05,1.39864987449492e-05,1.50580274578455e-05,1.45908734129609e-05,1.95329296993327e-05,1.5814709481221e-05,32),
|
|
|
|
(1.69882826885005e-05,1.8946030385445e-05,2.00820439721439e-05,1.44372366441415e-05,1.2712914948904e-05,1.35209686474184e-05,0.00261563314789896,1.78285095864627e-05,1.46699314500019e-05,34),
|
|
|
|
(2.0278186540684e-05,2.18923409729654e-05,2.39981539939738e-05,1.71774589459438e-05,1.54654355357383e-05,1.62731485707636e-05,1.49253140625051e-05,2.18229800160297e-05,1.71923561673718e-05,35),
|
|
|
|
(2.44449336987598e-05,2.66040037173511e-05,2.84860148925308e-05,2.07952121981765e-05,1.82503165178506e-05,1.97667730441441e-05,1.78285095864627e-05,0.00166478601822712,2.0299952103232e-05,36),
|
|
|
|
(1.89914629921774e-05,2.09161899668946e-05,2.26026841007872e-05,1.61488256935919e-05,1.43043075345922e-05,1.52609063290127e-05,1.46699314500019e-05,2.0299952103232e-05,0.00306670170971682,39),
|
|
|
|
(0,0,0,0,0,0,0,0,0,41),
|
|
|
|
(0,0,0,0,0,0,0,0,0,17),
|
|
|
|
(0,0,0,0,0,0,0,0,0,18),
|
|
|
|
(2.51880677333017e-05,2.63051795435778e-05,2.79874748974906e-05,2.02888886670845e-05,1.8178636318197e-05,1.91308527003585e-05,1.83260023644133e-05,2.4422300558171e-05,1.96411467520551e-05,44),
|
|
|
|
(2.22402118719591e-05,2.37546284320705e-05,2.58463051055541e-05,1.83391609130854e-05,1.6300720519646e-05,1.74559091886791e-05,1.63733785575587e-05,2.26616253279828e-05,1.79541237435621e-05,45),
|
|
|
|
(3.01092775359837e-05,3.23865212934412e-05,4.09444584045994e-05,0,2.15470966302776e-05,2.39082636344032e-05,2.28296706429177e-05,2.9007671511595e-05,2.44201138973326e-05,46);
|
|
|
|
FLUSH TABLES;
|
|
|
|
CHECK TABLE t1 EXTENDED;
|
|
|
|
Table Op Msg_type Msg_text
|
|
|
|
test.t1 check status OK
|
|
|
|
DROP TABLE t1;
|
2008-12-09 10:04:28 +01:00
|
|
|
drop table if exists t1;
|
2008-12-17 14:23:21 +01:00
|
|
|
create table t1(f1 int, f2 char(255));
|
2008-12-09 10:04:28 +01:00
|
|
|
insert into t1 values(1, 'foo'), (2, 'bar');
|
|
|
|
insert into t1 select * from t1;
|
|
|
|
insert into t1 select * from t1;
|
|
|
|
insert into t1 select * from t1;
|
|
|
|
insert into t1 select * from t1;
|
|
|
|
insert into t1 select * from t1;
|
|
|
|
insert into t1 select * from t1;
|
|
|
|
insert into t1 select * from t1;
|
|
|
|
insert into t1 select * from t1;
|
|
|
|
insert into t1 select * from t1;
|
|
|
|
insert into t1 select * from t1;
|
|
|
|
insert into t1 select * from t1;
|
|
|
|
insert into t1 select * from t1;
|
|
|
|
flush tables;
|
|
|
|
optimize table t1;
|
|
|
|
Table Op Msg_type Msg_text
|
Bug #56494 Segfault in upgrade_shared_lock_to_exclusive() for
REPAIR of merge table
Bug #56422 CHECK TABLE run when the table is locked reports
corruption along with timeout
The crash happened if a table maintenance statement (ANALYZE TABLE,
REPAIR TABLE, etc.) was executed on a MERGE table and opening and
locking a child table failed. This could for example happen if a child
table did not exist or if a lock timeout happened while waiting for
a conflicting metadata lock to disappear.
Since opening and locking the MERGE table and its children failed,
the tables would be closed and the metadata locks released.
However, TABLE_LIST::table for the MERGE table would still be set,
with its value invalid since the tables had been closed.
This caused the table maintenance statement to try to continue
and upgrade the metadata lock on the MERGE table. But since the lock
already had been released, this caused a segfault.
This patch fixes the problem by setting TABLE_LIST::table to NULL
if open_and_lock_tables() fails. This prevents maintenance
statements from continuing and trying to upgrade the metadata lock.
The patch includes a 5.5 version of the fix for
Bug #46339 crash on REPAIR TABLE merge table USE_FRM.
This bug caused REPAIR TABLE ... USE_FRM to give an assert
when used on merge tables.
The patch also enables the CHECK TABLE statement for log tables.
Before, CHECK TABLE for log tables gave ER_CANT_LOCK_LOG_TABLE,
yet still counted the statement as successfully executed.
With the changes to table maintenance statement error handling
in this patch, CHECK TABLE would no longer be considered as
successful in this case. This would have caused upgrade scripts
to mistakenly think that the general and slow logs are corrupted
and have to be repaired. Enabling CHECK TABLES for log tables
prevents this from happening.
Finally, the patch changes the error message from "Corrupt" to
"Operation failed" for a number of issues not related to table
corruption. For example "Lock wait timeout exceeded" and
"Deadlock found trying to get lock".
Test cases added to merge.test and check.test.
2010-09-22 10:15:41 +02:00
|
|
|
test.t1 optimize Error Table 't1' is read only
|
|
|
|
test.t1 optimize status Operation failed
|
2009-01-22 06:55:26 +01:00
|
|
|
repair table t1;
|
|
|
|
Table Op Msg_type Msg_text
|
Bug #56494 Segfault in upgrade_shared_lock_to_exclusive() for
REPAIR of merge table
Bug #56422 CHECK TABLE run when the table is locked reports
corruption along with timeout
The crash happened if a table maintenance statement (ANALYZE TABLE,
REPAIR TABLE, etc.) was executed on a MERGE table and opening and
locking a child table failed. This could for example happen if a child
table did not exist or if a lock timeout happened while waiting for
a conflicting metadata lock to disappear.
Since opening and locking the MERGE table and its children failed,
the tables would be closed and the metadata locks released.
However, TABLE_LIST::table for the MERGE table would still be set,
with its value invalid since the tables had been closed.
This caused the table maintenance statement to try to continue
and upgrade the metadata lock on the MERGE table. But since the lock
already had been released, this caused a segfault.
This patch fixes the problem by setting TABLE_LIST::table to NULL
if open_and_lock_tables() fails. This prevents maintenance
statements from continuing and trying to upgrade the metadata lock.
The patch includes a 5.5 version of the fix for
Bug #46339 crash on REPAIR TABLE merge table USE_FRM.
This bug caused REPAIR TABLE ... USE_FRM to give an assert
when used on merge tables.
The patch also enables the CHECK TABLE statement for log tables.
Before, CHECK TABLE for log tables gave ER_CANT_LOCK_LOG_TABLE,
yet still counted the statement as successfully executed.
With the changes to table maintenance statement error handling
in this patch, CHECK TABLE would no longer be considered as
successful in this case. This would have caused upgrade scripts
to mistakenly think that the general and slow logs are corrupted
and have to be repaired. Enabling CHECK TABLES for log tables
prevents this from happening.
Finally, the patch changes the error message from "Corrupt" to
"Operation failed" for a number of issues not related to table
corruption. For example "Lock wait timeout exceeded" and
"Deadlock found trying to get lock".
Test cases added to merge.test and check.test.
2010-09-22 10:15:41 +02:00
|
|
|
test.t1 repair Error Table 't1' is read only
|
|
|
|
test.t1 repair status Operation failed
|
2008-12-09 10:04:28 +01:00
|
|
|
drop table t1;
|
2009-03-25 10:15:53 +01:00
|
|
|
#
|
|
|
|
# BUG#41541 - Valgrind warnings on packed MyISAM table
|
|
|
|
#
|
|
|
|
CREATE TABLE t1(f1 VARCHAR(200), f2 TEXT);
|
|
|
|
INSERT INTO t1 VALUES ('foo', 'foo1'), ('bar', 'bar1');
|
|
|
|
FLUSH TABLE t1;
|
|
|
|
# Compress the table using MYISAMPACK tool
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
|
|
COUNT(*)
|
|
|
|
1024
|
|
|
|
DROP TABLE t1;
|
2009-04-07 13:24:32 +02:00
|
|
|
#
|
|
|
|
# Bug #43973 - backup_myisam.test fails on 6.0-bugteam
|
|
|
|
#
|
|
|
|
CREATE DATABASE mysql_db1;
|
|
|
|
CREATE TABLE mysql_db1.t1 (c1 VARCHAR(5), c2 int);
|
|
|
|
CREATE INDEX i1 ON mysql_db1.t1 (c1, c2);
|
|
|
|
INSERT INTO mysql_db1.t1 VALUES ('A',1);
|
|
|
|
INSERT INTO mysql_db1.t1 SELECT * FROM mysql_db1.t1;
|
|
|
|
INSERT INTO mysql_db1.t1 SELECT * FROM mysql_db1.t1;
|
|
|
|
INSERT INTO mysql_db1.t1 SELECT * FROM mysql_db1.t1;
|
|
|
|
INSERT INTO mysql_db1.t1 SELECT * FROM mysql_db1.t1;
|
|
|
|
INSERT INTO mysql_db1.t1 SELECT * FROM mysql_db1.t1;
|
|
|
|
INSERT INTO mysql_db1.t1 SELECT * FROM mysql_db1.t1;
|
|
|
|
INSERT INTO mysql_db1.t1 SELECT * FROM mysql_db1.t1;
|
|
|
|
FLUSH TABLE mysql_db1.t1;
|
|
|
|
# Compress the table using MYISAMPACK tool
|
|
|
|
# Run MYISAMCHK tool on the compressed table
|
|
|
|
SELECT COUNT(*) FROM mysql_db1.t1 WHERE c2 < 5;
|
|
|
|
COUNT(*)
|
|
|
|
128
|
2009-11-25 20:19:59 +01:00
|
|
|
# ===== myisampack.1 =====
|
|
|
|
CREATE TABLE t1(a INT);
|
|
|
|
INSERT INTO t1 VALUES(20);
|
|
|
|
CREATE TABLE t2(a INT);
|
|
|
|
INSERT INTO t2 VALUES(40);
|
2009-11-25 20:22:45 +01:00
|
|
|
FLUSH TABLE t1,t2;
|
2009-11-25 20:19:59 +01:00
|
|
|
#If the myisampack --join operation is successful, we have table t3(.frm)
|
|
|
|
#so we should be able to query about the table from server.
|
|
|
|
SELECT COUNT(a) FROM t3;
|
|
|
|
COUNT(a)
|
|
|
|
1024
|
|
|
|
# ===== myisampack.2 =====
|
2009-11-25 20:22:45 +01:00
|
|
|
FLUSH TABLE t3;
|
2009-11-25 20:19:59 +01:00
|
|
|
#Tests the myisampack join operation with an existing destination .frm file,
|
|
|
|
#the command should return correct exit status(0) and
|
|
|
|
#we should be able to query the table.
|
|
|
|
SELECT COUNT(a) FROM t3;
|
|
|
|
COUNT(a)
|
|
|
|
1024
|
|
|
|
# ===== myisampack.3 =====
|
|
|
|
DROP TABLE t3;
|
|
|
|
#Tests the myisampack join operation without frm file for the first and second table
|
|
|
|
#No frm file is generated in this and we shouldn't be able to access the newly
|
|
|
|
#created table
|
|
|
|
SELECT COUNT(a) FROM t3;
|
|
|
|
ERROR 42S02: Table 'test.t3' doesn't exist
|
|
|
|
# ===== myisampack.4 =====
|
|
|
|
#Tests the myisampack join operation with an existing destination .frm,.MYI,.MDI
|
|
|
|
#the command should fail with exit status 2
|
2012-06-17 14:34:39 +02:00
|
|
|
myisampack: Can't create/write to file (Errcode: 17 "File exists")
|
2009-11-26 13:47:55 +01:00
|
|
|
Aborted: file is not compressed
|
2009-11-25 20:19:59 +01:00
|
|
|
DROP TABLE t1,t2,t3;
|
2009-04-07 13:24:32 +02:00
|
|
|
DROP TABLE mysql_db1.t1;
|
|
|
|
DROP DATABASE mysql_db1;
|
2011-09-16 13:30:31 +02:00
|
|
|
#
|
|
|
|
# BUG#11761180 - 53646: MYISAMPACK CORRUPTS TABLES WITH FULLTEXT INDEXES
|
|
|
|
#
|
|
|
|
CREATE TABLE t1(a CHAR(4), FULLTEXT(a));
|
|
|
|
INSERT INTO t1 VALUES('aaaa'),('bbbb'),('cccc');
|
|
|
|
FLUSH TABLE t1;
|
|
|
|
CHECK TABLE t1;
|
|
|
|
Table Op Msg_type Msg_text
|
|
|
|
test.t1 check status OK
|
|
|
|
SELECT * FROM t1 WHERE MATCH(a) AGAINST('aaaa' IN BOOLEAN MODE);
|
|
|
|
a
|
|
|
|
aaaa
|
|
|
|
SELECT * FROM t1 WHERE MATCH(a) AGAINST('aaaa');
|
|
|
|
a
|
|
|
|
aaaa
|
|
|
|
DROP TABLE t1;
|
|
|
|
# Test table with key_reflength > rec_reflength
|
|
|
|
CREATE TABLE t1(a CHAR(30), FULLTEXT(a));
|
|
|
|
# Populating a table, so it's index file exceeds 65K
|
|
|
|
# Populating a table, so index file has second level fulltext tree
|
|
|
|
FLUSH TABLE t1;
|
|
|
|
# Compressing table
|
|
|
|
# Fixing index (repair by sort)
|
|
|
|
CHECK TABLE t1;
|
|
|
|
Table Op Msg_type Msg_text
|
|
|
|
test.t1 check status OK
|
|
|
|
FLUSH TABLE t1;
|
|
|
|
# Fixing index (repair with keycache)
|
|
|
|
CHECK TABLE t1;
|
|
|
|
Table Op Msg_type Msg_text
|
|
|
|
test.t1 check status OK
|
|
|
|
DROP TABLE t1;
|
2014-05-17 09:42:59 +02:00
|
|
|
create table `t1` (`id` varchar(15) DEFAULT NULL) ENGINE=MyISAM ROW_FORMAT=FIXED;
|
|
|
|
insert into t1 values ('aaa'),('bbb'),('ccc'),('ddd'),('eee');
|
|
|
|
insert into t1 (select * from t1);
|
|
|
|
insert into t1 (select * from t1);
|
|
|
|
insert into t1 (select * from t1);
|
|
|
|
insert into t1 (select * from t1);
|
|
|
|
checksum table t1;
|
|
|
|
Table Checksum
|
|
|
|
test.t1 2696656816
|
|
|
|
insert into t1 values(NULL);
|
|
|
|
checksum table t1;
|
|
|
|
Table Checksum
|
|
|
|
test.t1 2679879600
|
|
|
|
flush table t1;
|
|
|
|
check table t1;
|
|
|
|
Table Op Msg_type Msg_text
|
|
|
|
test.t1 check status OK
|
|
|
|
checksum table t1;
|
|
|
|
Table Checksum
|
|
|
|
test.t1 2679879600
|
|
|
|
alter table t1 checksum=1 row_format=fixed;
|
|
|
|
checksum table t1;
|
|
|
|
Table Checksum
|
|
|
|
test.t1 2679879600
|
|
|
|
flush table t1;
|
|
|
|
check table t1;
|
|
|
|
Table Op Msg_type Msg_text
|
|
|
|
test.t1 check status OK
|
|
|
|
checksum table t1;
|
|
|
|
Table Checksum
|
|
|
|
test.t1 2679879600
|
|
|
|
alter table t1 row_format=dynamic checksum=0;
|
|
|
|
checksum table t1;
|
|
|
|
Table Checksum
|
|
|
|
test.t1 2330021136
|
|
|
|
flush table t1;
|
|
|
|
check table t1;
|
|
|
|
Table Op Msg_type Msg_text
|
|
|
|
test.t1 check status OK
|
|
|
|
checksum table t1;
|
|
|
|
Table Checksum
|
|
|
|
test.t1 2330021136
|
|
|
|
alter table t1 checksum=1 row_format=dynamic;
|
|
|
|
checksum table t1;
|
|
|
|
Table Checksum
|
|
|
|
test.t1 2330021136
|
|
|
|
flush table t1;
|
|
|
|
check table t1;
|
|
|
|
Table Op Msg_type Msg_text
|
|
|
|
test.t1 check status OK
|
|
|
|
checksum table t1;
|
|
|
|
Table Checksum
|
|
|
|
test.t1 2330021136
|
|
|
|
drop table t1;
|
2014-03-26 09:32:54 +01:00
|
|
|
#
|
|
|
|
# BUG#11751736: DROP DATABASE STATEMENT SHOULD REMOVE .OLD SUFFIX FROM
|
|
|
|
# DATABASE DIRECTORY
|
|
|
|
#
|
|
|
|
CREATE DATABASE db1;
|
|
|
|
CREATE TABLE db1.t1(c1 INT) ENGINE=MyISAM;
|
|
|
|
DROP DATABASE db1;
|