251
257
int, i975 int, i976 int, i977 int, i978 int, i979 int, i980 int, i981 int, i982
252
258
int, i983 int, i984 int, i985 int, i986 int, i987 int, i988 int, i989 int, i990
253
259
int, i991 int, i992 int, i993 int, i994 int, i995 int, i996 int, i997 int, i998
254
int, i999 int, i1000 int, b blob) engine=myisam row_format=dynamic;
260
int, i999 int, i1000 int, b blob) row_format=dynamic;
255
261
insert into t1 values (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
256
262
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
257
263
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
492
488
select c1 from t1 order by c1 limit 1;
492
# Bug #14400 Join could miss concurrently inserted row
495
create table t1 (a int not null, primary key(a));
496
create table t2 (a int not null, b int not null, primary key(a,b));
497
insert into t1 values (1),(2),(3),(4),(5),(6);
498
insert into t2 values (1,1),(2,1);
499
lock tables t1 read local, t2 read local;
500
select straight_join * from t1,t2 force index (primary) where t1.a=t2.a;
501
connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
502
insert into t2 values(2,0);
505
select straight_join * from t1,t2 force index (primary) where t1.a=t2.a;
510
CREATE TABLE t1 (c1 varchar(250) NOT NULL);
511
CREATE TABLE t2 (c1 varchar(250) NOT NULL, PRIMARY KEY (c1));
512
INSERT INTO t1 VALUES ('test000001'), ('test000002'), ('test000003');
513
INSERT INTO t2 VALUES ('test000002'), ('test000003'), ('test000004');
514
LOCK TABLES t1 READ LOCAL, t2 READ LOCAL;
515
SELECT t1.c1 AS t1c1, t2.c1 AS t2c1 FROM t1, t2
516
WHERE t1.c1 = t2.c1 HAVING t1c1 != t2c1;
517
connect (con1,localhost,root,,);
519
INSERT INTO t2 VALUES ('test000001'), ('test000005');
522
SELECT t1.c1 AS t1c1, t2.c1 AS t2c1 FROM t1, t2
523
WHERE t1.c1 = t2.c1 HAVING t1c1 != t2c1;
495
527
# End of 4.0 tests
497
create table t1 (a int, b varchar(200), c text not null);
498
create table t2 (a int, b varchar(200), c text not null);
533
CREATE TABLE t1 (`a` int(11) NOT NULL default '0', `b` int(11) NOT NULL default '0', UNIQUE KEY `a` USING RTREE (`a`,`b`)) ENGINE=MyISAM;
534
# INSERT INTO t1 VALUES (1,1),(1,1);
535
# DELETE FROM rt WHERE a<1;
536
# DROP TABLE IF EXISTS t1;
538
create table t1 (a int, b varchar(200), c text not null) checksum=1;
539
create table t2 (a int, b varchar(200), c text not null) checksum=0;
499
540
insert t1 values (1, "aaa", "bbb"), (NULL, "", "ccccc"), (0, NULL, "");
500
541
insert t2 select * from t1;
501
checksum table t1, t2, t3;
502
checksum table t1, t2, t3;
503
checksum table t1, t2, t3;
542
checksum table t1, t2, t3 quick;
543
checksum table t1, t2, t3;
544
checksum table t1, t2, t3 extended;
504
545
#show table status;
505
546
drop table t1,t2;
507
#@TODO Figure out what the heck the below is testing.
508
# It bombs the test with unknown system variables...
510
#create table t1 (a int, key (a));
512
#alter table t1 disable keys;
514
#create table t2 (a int);
516
#set @@rand_seed1=31415926,@@rand_seed2=2718281828;
521
# insert t2 values (rand()*100000);
524
#insert t1 select * from t2;
526
#alter table t1 enable keys;
528
#alter table t1 engine=MEMORY;
529
#alter table t1 disable keys;
548
create table t1 (a int, key (a));
550
alter table t1 disable keys;
552
create table t2 (a int);
554
set @@rand_seed1=31415926,@@rand_seed2=2718281828;
559
insert t2 values (rand()*100000);
562
insert t1 select * from t2;
564
alter table t1 enable keys;
566
alter table t1 engine=heap;
567
alter table t1 disable keys;
534
572
# index search for NULL in blob. Bug #4816
565
603
checksum table t2;
566
604
drop table t1, t2;
607
# BUG#12232: New myisam_stats_method variable.
610
show variables like 'myisam_stats_method';
612
create table t1 (a int, key(a));
613
insert into t1 values (0),(1),(2),(3),(4);
614
insert into t1 select NULL from t1;
616
# default: NULLs considered inequal
619
insert into t1 values (11);
620
delete from t1 where a=11;
624
# Set nulls to be equal:
625
set myisam_stats_method=nulls_equal;
626
show variables like 'myisam_stats_method';
627
insert into t1 values (11);
628
delete from t1 where a=11;
633
insert into t1 values (11);
634
delete from t1 where a=11;
639
# Set nulls back to be equal
640
set myisam_stats_method=DEFAULT;
641
show variables like 'myisam_stats_method';
642
insert into t1 values (11);
643
delete from t1 where a=11;
648
insert into t1 values (11);
649
delete from t1 where a=11;
656
# WL#2609, CSC#XXXX: MyISAM
657
set myisam_stats_method=nulls_ignored;
658
show variables like 'myisam_stats_method';
661
a char(3), b char(4), c char(5), d char(6),
664
insert into t1 values ('bcd','def1', NULL, 'zz');
665
insert into t1 values ('bcd','def2', NULL, 'zz');
666
insert into t1 values ('bce','def1', 'yuu', NULL);
667
insert into t1 values ('bce','def2', NULL, 'quux');
674
set myisam_stats_method=DEFAULT;
568
677
# BUG#13814 - key value packed incorrectly for TINYBLOBs
571
680
cip INT NOT NULL,
572
682
score INT NOT NULL DEFAULT 0,
576
insert into t1 (cip) VALUES (1), (2), (3);
577
insert into t1 (cip, bob) VALUES (4, 'a' ), (5, 'b'),
686
insert into t1 (cip, time) VALUES (1, '00:01'), (2, '00:02'), (3,'00:03');
687
insert into t1 (cip, bob, time) VALUES (4, 'a', '00:04'), (5, 'b', '00:05'),
579
689
select * from t1 where bob is null and cip=1;
580
create index bug on t1 (bob(22), cip);
690
create index bug on t1 (bob(22), cip, time);
581
691
select * from t1 where bob is null and cip=1;
585
695
# Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
587
create temporary table t1 (
588
698
id1 int not null auto_increment,
589
699
id2 int not null default '0',
725
# BUG#18036 - update of table joined to self reports table as crashed
727
CREATE TABLE t1(a CHAR(9), b VARCHAR(7)) ENGINE=MyISAM;
728
INSERT INTO t1(a) VALUES('xxxxxxxxx'),('xxxxxxxxx');
729
UPDATE t1 AS ta1,t1 AS ta2 SET ta1.b='aaaaaa',ta2.b='bbbbbb';
615
734
# Bug#8283 - OPTIMIZE TABLE causes data loss
617
SET GLOBAL myisam_repair_threads=2;
736
SET @@myisam_repair_threads=2;
618
737
SHOW VARIABLES LIKE 'myisam_repair%';
620
739
# Test OPTIMIZE. This creates a new data file.
621
CREATE TEMPORARY TABLE t1 (
622
`_id` int NOT NULL default '0',
626
`loverlap` int default NULL,
627
`roverlap` int default NULL,
628
`lneighbor_id` int default NULL,
629
`rneighbor_id` int default NULL,
630
`length_` int default NULL,
633
`_obj_class` text NOT NULL,
635
UNIQUE KEY `sequence_name_index` (`name`(50)),
639
INSERT INTO t1 VALUES
640
(1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample1',''),
641
(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample2',''),
642
(3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample3',''),
643
(4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample4',''),
644
(5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample5',''),
645
(6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample6',''),
646
(7,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample7',''),
647
(8,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample8',''),
648
(9,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample9','');
651
DELETE FROM t1 WHERE _id < 8;
652
--replace_column 6 # 7 # 8 # 9 # 11 # 12 # 13 # 14 # 15 # 16 #
653
SHOW TABLE STATUS LIKE 't1';
655
ALTER TABLE t1 ENGINE=MYISAM;
657
--replace_column 6 # 7 # 8 # 9 # 11 # 12 # 13 # 14 # 15 # 16 #
658
SHOW TABLE STATUS LIKE 't1';
662
SET GLOBAL myisam_repair_threads=1;
741
`_id` int(11) NOT NULL default '0',
745
`loverlap` int(11) default NULL,
746
`roverlap` int(11) default NULL,
747
`lneighbor_id` int(11) default NULL,
748
`rneighbor_id` int(11) default NULL,
749
`length_` int(11) default NULL,
750
`sequence` mediumtext,
752
`_obj_class` text NOT NULL,
754
UNIQUE KEY `sequence_name_index` (`name`(50)),
756
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
758
INSERT INTO t1 VALUES
759
(1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample1',''),
760
(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample2',''),
761
(3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample3',''),
762
(4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample4',''),
763
(5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample5',''),
764
(6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample6',''),
765
(7,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample7',''),
766
(8,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample8',''),
767
(9,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample9','');
770
DELETE FROM t1 WHERE _id < 8;
771
--replace_column 6 # 7 # 8 # 9 # 11 # 12 # 13 # 14 # 15 # 16 #
772
SHOW TABLE STATUS LIKE 't1';
773
CHECK TABLE t1 EXTENDED;
775
CHECK TABLE t1 EXTENDED;
776
--replace_column 6 # 7 # 8 # 9 # 11 # 12 # 13 # 14 # 15 # 16 #
777
SHOW TABLE STATUS LIKE 't1';
781
# Test REPAIR QUICK. This retains the old data file.
783
`_id` int(11) NOT NULL default '0',
787
`loverlap` int(11) default NULL,
788
`roverlap` int(11) default NULL,
789
`lneighbor_id` int(11) default NULL,
790
`rneighbor_id` int(11) default NULL,
791
`length_` int(11) default NULL,
792
`sequence` mediumtext,
794
`_obj_class` text NOT NULL,
796
UNIQUE KEY `sequence_name_index` (`name`(50)),
798
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
800
INSERT INTO t1 VALUES
801
(1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample1',''),
802
(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample2',''),
803
(3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample3',''),
804
(4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample4',''),
805
(5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample5',''),
806
(6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample6',''),
807
(7,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample7',''),
808
(8,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample8',''),
809
(9,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sample9','');
812
DELETE FROM t1 WHERE _id < 8;
813
--replace_column 6 # 7 # 8 # 9 # 11 # 12 # 13 # 14 # 15 # 16 #
814
SHOW TABLE STATUS LIKE 't1';
815
CHECK TABLE t1 EXTENDED;
816
REPAIR TABLE t1 QUICK;
817
CHECK TABLE t1 EXTENDED;
818
--replace_column 6 # 7 # 8 # 9 # 11 # 12 # 13 # 14 # 15 # 16 #
819
SHOW TABLE STATUS LIKE 't1';
823
SET @@myisam_repair_threads=1;
663
824
SHOW VARIABLES LIKE 'myisam_repair%';
827
# BUG#21310 - Trees in SQL causing a "crashed" table with MyISAM storage
831
# A simplified test case that reflect crashed table issue.
832
CREATE TABLE t1(a VARCHAR(16));
833
INSERT INTO t1 VALUES('aaaaaaaa'),(NULL);
834
UPDATE t1 AS ta1, t1 AS ta2 SET ta1.a='aaaaaaaaaaaaaaaa';
838
# A test case that reflect wrong result set.
839
CREATE TABLE t1(a INT);
840
INSERT INTO t1 VALUES(1),(2);
841
UPDATE t1,t1 AS t2 SET t1.a=t1.a+2 WHERE t1.a=t2.a-1;
842
SELECT * FROM t1 ORDER BY a;
666
846
# Bug#24607 - MyISAM pointer size determined incorrectly
668
CREATE TEMPORARY TABLE t1 (c1 TEXT) ENGINE=MyISAM;
848
CREATE TABLE t1 (c1 TEXT) AVG_ROW_LENGTH=70100 MAX_ROWS=4100100100;
669
849
--replace_column 5 X 6 X 7 X 9 X 10 X 11 X 12 X 13 X 14 X 16 X
670
850
SHOW TABLE STATUS LIKE 't1';
823
1003
let $default=`select @@storage_engine`;
824
1004
set storage_engine=MyISAM;
825
let $temp= TEMPORARY;
826
1005
source include/varchar.inc;
829
1008
# Some errors/warnings on create
833
create temporary table t1 (v varchar(65530), key(v));
835
create temporary table t1 (v varchar(65536));
837
create temporary table t1 (v varchar(65530));
1011
create table t1 (v varchar(65530), key(v));
1012
drop table if exists t1;
1013
create table t1 (v varchar(65536));
1014
show create table t1;
1016
create table t1 (v varchar(65530) character set utf8);
1017
show create table t1;
839
1020
# MyISAM specific varchar tests
841
create temporary table t1 (v varchar(65535));
1022
create table t1 (v varchar(65535));
843
1024
eval set storage_engine=$default;
1027
# Test concurrent insert
1028
# First with static record length
1030
set @save_concurrent_insert=@@concurrent_insert;
1031
set global concurrent_insert=1;
1032
create table t1 (a int);
1033
insert into t1 values (1),(2),(3),(4),(5);
1034
lock table t1 read local;
1035
connect (con1,localhost,root,,);
1037
# Insert in table without hole
1038
insert into t1 values(6),(7);
1041
delete from t1 where a>=3 and a<=4;
1042
lock table t1 read local;
1044
set global concurrent_insert=2;
1045
# Insert in table with hole -> Should insert at end
1046
insert into t1 values (8),(9);
1050
insert into t1 values (10),(11),(12);
1056
# Same test with dynamic record length
1057
create table t1 (a int, b varchar(30) default "hello");
1058
insert into t1 (a) values (1),(2),(3),(4),(5);
1059
lock table t1 read local;
1060
connect (con1,localhost,root,,);
1062
# Insert in table without hole
1063
insert into t1 (a) values(6),(7);
1066
delete from t1 where a>=3 and a<=4;
1067
lock table t1 read local;
1069
set global concurrent_insert=2;
1070
# Insert in table with hole -> Should insert at end
1071
insert into t1 (a) values (8),(9);
1075
insert into t1 (a) values (10),(11),(12);
1080
set global concurrent_insert=@save_concurrent_insert;
846
1083
# BUG#9622 - ANALYZE TABLE and ALTER TABLE .. ENABLE INDEX produce
847
1084
# different statistics on the same table with NULL values.