mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
a55c159424
- Fixed bug that we where using wrong checksum algorithm when using VARCHAR with fixed lenth rows - Ensure in myisampack that HA_OPTION_NULL_FIELDS is set for tables with null fields. mysql-test/r/myisampack.result: Updated results mysql-test/t/myisampack.test: Added more tests storage/myisam/mi_open.c: Use correct checksum algorithm when we have VARCHAR fields with fixed length records storage/myisam/myisampack.c: Ensure HA_OPTION_NULL_FIELDS is set for tables with null fields. (This was not set by default for not compressed tables without checksums to keep MyISAM tables compatible with MySQL)
206 lines
8.6 KiB
Text
206 lines
8.6 KiB
Text
DROP TABLE IF EXISTS t1,t2,t3;
|
|
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;
|
|
drop table if exists t1;
|
|
create table t1(f1 int, f2 char(255));
|
|
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
|
|
test.t1 optimize Error Table 't1' is read only
|
|
test.t1 optimize status Operation failed
|
|
repair table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair Error Table 't1' is read only
|
|
test.t1 repair status Operation failed
|
|
drop table t1;
|
|
#
|
|
# 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;
|
|
#
|
|
# 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
|
|
# ===== myisampack.1 =====
|
|
CREATE TABLE t1(a INT);
|
|
INSERT INTO t1 VALUES(20);
|
|
CREATE TABLE t2(a INT);
|
|
INSERT INTO t2 VALUES(40);
|
|
FLUSH TABLE t1,t2;
|
|
#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 =====
|
|
FLUSH TABLE t3;
|
|
#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
|
|
myisampack: Can't create/write to file (Errcode: 17)
|
|
Aborted: file is not compressed
|
|
DROP TABLE t1,t2,t3;
|
|
DROP TABLE mysql_db1.t1;
|
|
DROP DATABASE mysql_db1;
|
|
#
|
|
# 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;
|
|
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;
|