334
334
user_name varchar(12),
336
336
subscribed char(1),
337
user_id int(11) DEFAULT '0' NOT NULL,
337
user_id int DEFAULT '0' NOT NULL,
340
340
access_date date,
342
341
approved datetime,
343
dummy_primary_key int(11) NOT NULL auto_increment,
342
dummy_primary_key int NOT NULL auto_increment,
344
343
PRIMARY KEY (dummy_primary_key)
346
INSERT INTO t1 VALUES ('user_0','somepassword','N',0,0,0,'2000-09-07','23:06:59','2000-09-07 23:06:59',1);
347
INSERT INTO t1 VALUES ('user_1','somepassword','Y',1,1,1,'2000-09-07','23:06:59','2000-09-07 23:06:59',2);
348
INSERT INTO t1 VALUES ('user_2','somepassword','N',2,2,1.4142135623731,'2000-09-07','23:06:59','2000-09-07 23:06:59',3);
349
INSERT INTO t1 VALUES ('user_3','somepassword','Y',3,3,1.7320508075689,'2000-09-07','23:06:59','2000-09-07 23:06:59',4);
350
INSERT INTO t1 VALUES ('user_4','somepassword','N',4,4,2,'2000-09-07','23:06:59','2000-09-07 23:06:59',5);
351
select user_name, password , subscribed, user_id, quota, weight, access_date, access_time, approved, dummy_primary_key from t1 order by user_name;
345
INSERT INTO t1 VALUES ('user_0','somepassword','N',0,0,0,'2000-09-07','2000-09-07 23:06:59',1);
346
INSERT INTO t1 VALUES ('user_1','somepassword','Y',1,1,1,'2000-09-07','2000-09-07 23:06:59',2);
347
INSERT INTO t1 VALUES ('user_2','somepassword','N',2,2,1.4142135623731,'2000-09-07','2000-09-07 23:06:59',3);
348
INSERT INTO t1 VALUES ('user_3','somepassword','Y',3,3,1.7320508075689,'2000-09-07','2000-09-07 23:06:59',4);
349
INSERT INTO t1 VALUES ('user_4','somepassword','N',4,4,2,'2000-09-07','2000-09-07 23:06:59',5);
350
select user_name, password , subscribed, user_id, quota, weight, access_date, approved, dummy_primary_key from t1 order by user_name;
489
create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(30),primary key (id,id2),index index_id3 (id3)) engine=innodb;
490
insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL');
491
LOCK TABLES t1 WRITE;
493
insert into t1 values (99,1,2,'D'),(1,1,2,'D');
499
create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(30),primary key (id,id2),index index_id3 (id3)) engine=innodb;
500
insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL');
501
LOCK TABLES t1 WRITE;
504
insert into t1 values (99,1,2,'D'),(1,1,2,'D');
506
insert ignore into t1 values (100,1,2,'D'),(1,1,99,'D');
508
select id,id3 from t1;
513
485
# Test prefix key
515
487
create table t1 (a char(20), unique (a(5))) engine=innodb;
635
# Test of multi-table-delete
639
number bigint(20) NOT NULL default '0',
640
cname char(15) NOT NULL default '',
641
carrier_id int(6) NOT NULL default '0',
642
privacy int(4) NOT NULL default '0',
643
last_mod_date timestamp NOT NULL,
644
last_mod_id int(6) NOT NULL default '0',
645
last_app_date timestamp NOT NULL,
646
last_app_id int(6) default '-1',
647
version int(6) NOT NULL default '0',
648
assigned_scps int(11) default '0',
649
status int(4) default '0'
651
INSERT INTO t1 VALUES (4077711111,'SeanWheeler',90,2,20020111112846,500,00000000000000,-1,2,3,1);
652
INSERT INTO t1 VALUES (9197722223,'berry',90,3,20020111112809,500,20020102114532,501,4,10,0);
653
INSERT INTO t1 VALUES (650,'San Francisco',0,0,20011227111336,342,00000000000000,-1,1,24,1);
654
INSERT INTO t1 VALUES (302467,'Sue\'s Subshop',90,3,20020109113241,500,20020102115111,501,7,24,0);
655
INSERT INTO t1 VALUES (6014911113,'SudzCarwash',520,1,20020102115234,500,20020102115259,501,33,32768,0);
656
INSERT INTO t1 VALUES (333,'tubs',99,2,20020109113440,501,20020109113440,500,3,10,0);
658
number bigint(20) NOT NULL default '0',
659
cname char(15) NOT NULL default '',
660
carrier_id int(6) NOT NULL default '0',
661
privacy int(4) NOT NULL default '0',
662
last_mod_date timestamp NOT NULL,
663
last_mod_id int(6) NOT NULL default '0',
664
last_app_date timestamp NOT NULL,
665
last_app_id int(6) default '-1',
666
version int(6) NOT NULL default '0',
667
assigned_scps int(11) default '0',
668
status int(4) default '0'
670
INSERT INTO t2 VALUES (4077711111,'SeanWheeler',0,2,20020111112853,500,00000000000000,-1,2,3,1);
671
INSERT INTO t2 VALUES (9197722223,'berry',90,3,20020111112818,500,20020102114532,501,4,10,0);
672
INSERT INTO t2 VALUES (650,'San Francisco',90,0,20020109113158,342,00000000000000,-1,1,24,1);
673
INSERT INTO t2 VALUES (333,'tubs',99,2,20020109113453,501,20020109113453,500,3,10,0);
676
delete t1, t2 from t1 left join t2 on t1.number=t2.number where (t1.carrier_id=90 and t1.number=t2.number) or (t2.carrier_id=90 and t1.number=t2.number) or (t1.carrier_id=90 and t2.number is null);
683
607
# A simple test with some isolation levels
684
608
# TODO: Make this into a test using replication to really test how
711
# Test of multi-table-update
713
create table t1 (n int(10), d int(10)) engine=innodb;
714
create table t2 (n int(10), d int(10)) engine=innodb;
715
insert into t1 values(1,1),(1,2);
716
insert into t2 values(1,10),(2,20);
717
UPDATE t1,t2 SET t1.d=t2.d,t2.d=30 WHERE t1.n=t2.n;
723
# Bug #29136 erred multi-delete on trans table does not rollback
728
drop table if exists t1, t2;
730
CREATE TABLE t1 (a int, PRIMARY KEY (a));
731
CREATE TABLE t2 (a int, PRIMARY KEY (a)) ENGINE=InnoDB;
732
create trigger trg_del_t2 after delete on t2 for each row
733
insert into t1 values (1);
734
insert into t1 values (1);
735
insert into t2 values (1),(2);
738
# exec cases A, B - see multi_update.test
740
# A. send_error() w/o send_eof() branch
747
select count(*) from t2 /* must be 2 as restored after rollback caused by the error */;
755
635
# Testing of IFNULL
757
637
create table t1 (a int, b int) engine=innodb;
777
657
create table t2 (a int not null, b int, primary key (a)) engine = innodb;
778
658
insert into t1 values (10, 20);
779
659
insert into t2 values (10, 20);
780
update t1, t2 set t1.b = 150, t2.b = t1.b where t2.a = t1.a and t1.a = 10;
781
660
drop table t1,t2;
784
# Test of multi-table-delete with foreign key constraints
787
CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB;
788
CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE ) ENGINE=INNODB;
789
insert into t1 set id=1;
790
insert into t2 set id=1, t1_id=1;
791
delete t1,t2 from t1,t2 where t1.id=t2.t1_id;
795
CREATE TABLE t1(id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB;
796
CREATE TABLE t2(id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id) ) ENGINE=INNODB;
797
INSERT INTO t1 VALUES(1);
798
INSERT INTO t2 VALUES(1, 1);
800
UPDATE t1,t2 SET t1.id=t1.id+1, t2.t1_id=t1.id+1;
802
UPDATE t1,t2 SET t1.id=t1.id+1 where t1.id!=t2.id;
807
663
# Test of range_optimizer
850
# Test multi update with different join methods
853
CREATE TABLE t1 (a int not null primary key, b int not null, key (b)) engine=innodb;
854
CREATE TABLE t2 (a int not null primary key, b int not null, key (b)) engine=innodb;
855
INSERT INTO t1 values (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10),(11,11),(12,12);
856
INSERT INTO t2 values (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9);
858
# Full join, without key
859
update t1,t2 set t1.a=t1.a+100;
863
update t1,t2 set t1.a=t1.a+100 where t1.a=101;
867
update t1,t2 set t1.b=t1.b+10 where t1.b=2;
871
update t1,t2 set t1.b=t1.b+2,t2.b=t1.b+10 where t1.b between 3 and 5 and t1.a=t2.a+100;
876
CREATE TABLE t2 ( NEXT_T BIGINT NOT NULL PRIMARY KEY) ENGINE=MyISAM;
877
CREATE TABLE t1 ( B_ID INTEGER NOT NULL PRIMARY KEY) ENGINE=InnoDB;
879
INSERT INTO t1 ( B_ID ) VALUES ( 1 );
880
INSERT INTO t2 ( NEXT_T ) VALUES ( 1 );
884
create table t1 ( pk int primary key, parent int not null, child int not null, index (parent) ) engine = innodb;
885
insert into t1 values (1,0,4), (2,1,3), (3,2,1), (4,1,2);
886
select distinct parent,child from t1 order by parent;
890
706
# Test that MySQL priorities clustered indexes
892
708
create table t1 (a int not null auto_increment primary key, b int, c int, key(c)) engine=innodb;
935
# Test of multi-table-updates (bug #1980).
938
create table t1 ( c char(8) not null ) engine=innodb;
939
insert into t1 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9');
940
insert into t1 values ('A'),('B'),('C'),('D'),('E'),('F');
942
alter table t1 add b char(8) not null;
943
alter table t1 add a char(8) not null;
944
alter table t1 add primary key (a,b,c);
945
update t1 set a=c, b=c;
947
create table t2 (c char(8) not null, b char(8) not null, a char(8) not null, primary key(a,b,c)) engine=innodb;
948
insert into t2 select * from t1;
950
delete t1,t2 from t2,t1 where t1.a<'B' and t2.b=t1.b;
954
751
# test autoincrement with TRUNCATE
972
769
drop table t2,t1;
975
# Test of multi updated and foreign keys
978
create table `t1` (`id` int( 11 ) not null ,primary key ( `id` )) engine = innodb;
979
insert into `t1`values ( 1 ) ;
980
create table `t2` (`id` int( 11 ) not null default '0',unique key `id` ( `id` ) ,constraint `t1_id_fk` foreign key ( `id` ) references `t1` (`id` )) engine = innodb;
981
insert into `t2`values ( 1 ) ;
982
create table `t3` (`id` int( 11 ) not null default '0',key `id` ( `id` ) ,constraint `t2_id_fk` foreign key ( `id` ) references `t2` (`id` )) engine = innodb;
983
insert into `t3`values ( 1 ) ;
985
delete t3,t2,t1 from t1,t2,t3 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
987
update t1,t2,t3 set t3.id=5, t2.id=6, t1.id=7 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
989
update t3 set t3.id=7 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
993
772
# test for recursion depth limit
1010
789
# Test timestamps
1013
CREATE TABLE t1 (col1 int(1))ENGINE=InnoDB;
1014
CREATE TABLE t2 (col1 int(1),stamp TIMESTAMP,INDEX stamp_idx
1015
(stamp))ENGINE=InnoDB;
792
CREATE TABLE t1 (col1 int) ENGINE=InnoDB;
793
CREATE TABLE t2 (col1 int, stamp TIMESTAMP,INDEX stamp_idx (stamp)) ENGINE=InnoDB;
1016
794
insert into t1 values (1),(2),(3);
1017
795
# Note that timestamp 3 is wrong
1018
insert into t2 values (1, 20020204130000),(2, 20020204130000),(4,20020204310000 ),(5,20020204230000);
796
insert into t2 values (1, 20020204110000),(2, 20020204110001),(4,20020204110002 ),(5,20020204110003);
1019
797
SELECT col1 FROM t1 UNION SELECT col1 FROM t2 WHERE stamp <
1020
798
'20020204120000' GROUP BY col1;
1021
799
drop table t1,t2;
1038
816
INSERT INTO t1 VALUES("6", "3382", "9", "Test", NULL), ("7", "102", "5", "Le Pekin (Test)", NULL),("584", "1794", "4", "Test de resto", NULL),("837", "1822", "6", "Test 3", NULL),("1119", "3524", "1", "Societe Test", NULL),("1122", "3525", "1", "Fournisseur Test", NULL);
1040
818
CREATE TABLE t2 (
1041
`id` int(10) NOT NULL auto_increment,
1042
`id_version` int(10) NOT NULL default '1',
819
`id` int NOT NULL auto_increment,
820
`id_version` int NOT NULL default '1',
1043
821
PRIMARY KEY (`id`),
1044
822
KEY `id_version` (`id_version`)
1045
823
) ENGINE=InnoDB;
1051
829
ON (t2.id = lbl.id_object) INNER JOIN t1 ON (t2.id = t1.id_object);
1052
830
drop table t1,t2;
1054
create table t1 (a int, b varchar(200), c text not null) checksum=1 engine=myisam;
1055
create table t2 (a int, b varchar(200), c text not null) checksum=0 engine=innodb;
1056
create table t3 (a int, b varchar(200), c text not null) checksum=1 engine=innodb;
832
create TEMPORARY table t1 (a int, b varchar(200), c text not null) engine=myisam;
833
create table t2 (a int, b varchar(200), c text not null) engine=innodb;
834
create table t3 (a int, b varchar(200), c text not null) engine=innodb;
1057
835
insert t1 values (1, "aaa", "bbb"), (NULL, "", "ccccc"), (0, NULL, "");
1058
836
insert t2 select * from t1;
1059
837
insert t3 select * from t1;
1097
875
show create table t2;
1100
create table t2 (id int(11) not null, id2 int(11) not null, constraint t1_id_fk foreign key (id,id2) references t1 (id,id2)) engine = innodb;
878
create table t2 (id int not null, id2 int not null, constraint t1_id_fk foreign key (id,id2) references t1 (id,id2)) engine = innodb;
1101
879
show create table t2;
1102
880
create unique index id on t2 (id,id2);
1103
881
show create table t2;
1106
884
# Check foreign key columns created in different order than key columns
1107
create table t2 (id int(11) not null, id2 int(11) not null, unique (id,id2),constraint t1_id_fk foreign key (id2,id) references t1 (id,id2)) engine = innodb;
1108
show create table t2;
1111
create table t2 (id int(11) not null, id2 int(11) not null, unique (id,id2), constraint t1_id_fk foreign key (id) references t1 (id)) engine = innodb;
1112
show create table t2;
1115
create table t2 (id int(11) not null, id2 int(11) not null, unique (id,id2),constraint t1_id_fk foreign key (id2,id) references t1 (id,id2)) engine = innodb;
1116
show create table t2;
1119
create table t2 (id int(11) not null auto_increment, id2 int(11) not null, constraint t1_id_fk foreign key (id) references t1 (id), primary key (id), index (id,id2)) engine = innodb;
1120
show create table t2;
1123
create table t2 (id int(11) not null auto_increment, id2 int(11) not null, constraint t1_id_fk foreign key (id) references t1 (id)) engine= innodb;
885
create table t2 (id int not null, id2 int not null, unique (id,id2),constraint t1_id_fk foreign key (id2,id) references t1 (id,id2)) engine = innodb;
886
show create table t2;
889
create table t2 (id int not null, id2 int not null, unique (id,id2), constraint t1_id_fk foreign key (id) references t1 (id)) engine = innodb;
890
show create table t2;
893
create table t2 (id int not null, id2 int not null, unique (id,id2),constraint t1_id_fk foreign key (id2,id) references t1 (id,id2)) engine = innodb;
894
show create table t2;
897
create table t2 (id int not null auto_increment, id2 int not null, constraint t1_id_fk foreign key (id) references t1 (id), primary key (id), index (id,id2)) engine = innodb;
898
show create table t2;
901
create table t2 (id int not null auto_increment, id2 int not null, constraint t1_id_fk foreign key (id) references t1 (id)) engine= innodb;
1124
902
show create table t2;
1125
903
alter table t2 add index id_test (id), add index id_test2 (id,id2);
1126
904
show create table t2;
1169
947
# Bug #4082: integer truncation
1172
create table t1(a int(1) , b int(1)) engine=innodb;
950
create table t1(a int, b int) engine=innodb;
1173
951
insert into t1 values ('1111', '3333');
1174
952
select distinct concat(a, b) from t1;
1178
# BUG#7709 test case - Boolean fulltext query against unsupported
1179
# engines does not fail
1182
CREATE TABLE t1 ( a char(10) ) ENGINE=InnoDB;
1184
SELECT a FROM t1 WHERE MATCH (a) AGAINST ('test' IN BOOLEAN MODE);
1188
956
# check null values #1
1191
959
--disable_warnings
1192
CREATE TABLE t1 (a_id int(4) NOT NULL default '0', PRIMARY KEY (a_id)) ENGINE=InnoDB DEFAULT CHARSET=latin1;
960
CREATE TABLE t1 (a_id int NOT NULL default '0', PRIMARY KEY (a_id)) ENGINE=InnoDB;
1193
961
INSERT INTO t1 VALUES (1),(2),(3);
1194
CREATE TABLE t2 (b_id int(4) NOT NULL default '0',b_a int(4) NOT NULL default '0', PRIMARY KEY (b_id), KEY (b_a),
1195
CONSTRAINT fk_b_a FOREIGN KEY (b_a) REFERENCES t1 (a_id) ON DELETE CASCADE ON UPDATE NO ACTION) ENGINE=InnoDB DEFAULT CHARSET=latin1;
962
CREATE TABLE t2 (b_id int NOT NULL default '0',b_a int NOT NULL default '0', PRIMARY KEY (b_id), KEY (b_a),
963
CONSTRAINT fk_b_a FOREIGN KEY (b_a) REFERENCES t1 (a_id) ON DELETE CASCADE ON UPDATE NO ACTION) ENGINE=InnoDB;
1196
964
--enable_warnings
1197
965
INSERT INTO t2 VALUES (1,1),(2,1),(3,1),(4,2),(5,2);
1198
966
SELECT * FROM (SELECT t1.*,GROUP_CONCAT(t2.b_id SEPARATOR ',') as b_list FROM (t1 LEFT JOIN (t2) on t1.a_id = t2.b_a) GROUP BY t1.a_id ) AS xyz;
1254
1022
explain select count(*) from t1 where x > -16;
1255
1023
select count(*) from t1 where x > -16;
1256
1024
select * from t1 where x > -16;
1257
select count(*) from t1 where x = 18446744073709551601;
1025
select count(*) from t1 where x = 1152921504606846961;
1029
## Not deterministic.
1261
1030
# Test for testable InnoDB status variables. This test
1262
1031
# uses previous ones(pages_created, rows_deleted, ...).
1263
show status like "Innodb_buffer_pool_pages_total";
1264
show status like "Innodb_page_size";
1265
show status like "Innodb_rows_deleted";
1266
show status like "Innodb_rows_inserted";
1267
show status like "Innodb_rows_updated";
1032
#show status like "Innodb_buffer_pool_pages_total";
1033
#show status like "Innodb_page_size";
1034
#show status like "Innodb_rows_deleted";
1035
#show status like "Innodb_rows_inserted";
1036
#show status like "Innodb_rows_updated";
1269
# Test for row locks InnoDB status variables.
1270
show status like "Innodb_row_lock_waits";
1271
show status like "Innodb_row_lock_current_waits";
1272
show status like "Innodb_row_lock_time";
1273
show status like "Innodb_row_lock_time_max";
1274
show status like "Innodb_row_lock_time_avg";
1038
## Test for row locks InnoDB status variables.
1039
#show status like "Innodb_row_lock_waits";
1040
#show status like "Innodb_row_lock_current_waits";
1041
#show status like "Innodb_row_lock_time";
1042
#show status like "Innodb_row_lock_time_max";
1043
#show status like "Innodb_row_lock_time_avg";
1276
1045
# Test for innodb_sync_spin_loops variable
1277
1046
show variables like "innodb_sync_spin_loops";
1459
1217
create table t1 (col1 varchar(2000), index (col1(767)))
1460
character set = latin1 engine = innodb;
1462
1220
# normal indexes
1463
1221
create table t2 (col1 char(255), index (col1))
1464
character set = latin1 engine = innodb;
1465
create table t3 (col1 binary(255), index (col1))
1466
character set = latin1 engine = innodb;
1467
1223
create table t4 (col1 varchar(767), index (col1))
1468
character set = latin1 engine = innodb;
1469
create table t5 (col1 varchar(767) primary key)
1470
character set = latin1 engine = innodb;
1471
create table t6 (col1 varbinary(767) primary key)
1472
character set = latin1 engine = innodb;
1225
create table t5 (col1 varchar(190) primary key)
1227
create table t6 (col1 varbinary(254) primary key)
1473
1229
create table t7 (col1 text, index(col1(767)))
1474
character set = latin1 engine = innodb;
1475
1231
create table t8 (col1 blob, index(col1(767)))
1476
character set = latin1 engine = innodb;
1478
1234
# multi-column indexes are allowed to be longer
1479
1235
create table t9 (col1 varchar(512), col2 varchar(512), index(col1, col2))
1480
character set = latin1 engine = innodb;
1482
1238
show create table t9;
1484
drop table t1, t2, t3, t4, t5, t6, t7, t8, t9;
1240
drop table t1, t2, t4, t5, t6, t7, t8, t9;
1486
1242
# these should have their index length trimmed
1487
1243
create table t1 (col1 varchar(768), index(col1))
1488
character set = latin1 engine = innodb;
1489
1245
create table t2 (col1 varbinary(768), index(col1))
1490
character set = latin1 engine = innodb;
1491
1247
create table t3 (col1 text, index(col1(768)))
1492
character set = latin1 engine = innodb;
1493
1249
create table t4 (col1 blob, index(col1(768)))
1494
character set = latin1 engine = innodb;
1496
1252
show create table t1;
1625
1369
set foreign_key_checks=1;
1626
1370
drop table t2,t1;
1628
# test that charset conversions with ALTER are allowed when f_k_c is 0
1630
set foreign_key_checks=0;
1631
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb DEFAULT CHARSET=latin1;
1632
create table t1(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=latin1;
1633
alter table t1 convert to character set utf8;
1634
set foreign_key_checks=1;
1637
# test that RENAME does not allow invalid charsets when f_k_c is 0
1639
set foreign_key_checks=0;
1640
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb DEFAULT CHARSET=latin1;
1641
create table t3(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=utf8;
1642
# Embedded server doesn't chdir to data directory
1643
--replace_result $MYSQLTEST_VARDIR . master-data/ ''
1644
rename table t3 to t1;
1645
set foreign_key_checks=1;
1648
1372
# test that foreign key errors are reported correctly (Bug #15550)
1650
1374
create table t1(a int primary key) row_format=redundant engine=innodb;
1685
1408
# Test that we can create a large (>1K) key
1687
create table t1 (a varchar(255) character set utf8,
1688
b varchar(255) character set utf8,
1689
c varchar(255) character set utf8,
1690
d varchar(255) character set utf8,
1410
create table t1 (a varchar(255),
1691
1414
key (a,b,c,d)) engine=innodb;
1693
1416
--error ER_TOO_LONG_KEY
1694
create table t1 (a varchar(255) character set utf8,
1695
b varchar(255) character set utf8,
1696
c varchar(255) character set utf8,
1697
d varchar(255) character set utf8,
1698
e varchar(255) character set utf8,
1417
create table t1 (a varchar(255),
1699
1422
key (a,b,c,d,e)) engine=innodb;
1702
1425
# test the padding of BINARY types and collations (Bug #14189)
1704
1427
create table t1 (s1 varbinary(2),primary key (s1)) engine=innodb;
1705
create table t2 (s1 binary(2),primary key (s1)) engine=innodb;
1706
1428
create table t3 (s1 varchar(2) binary,primary key (s1)) engine=innodb;
1707
1429
create table t4 (s1 char(2) binary,primary key (s1)) engine=innodb;
1709
1431
insert into t1 values (0x41),(0x4120),(0x4100);
1710
1432
-- error ER_DUP_ENTRY
1711
insert into t2 values (0x41),(0x4120),(0x4100);
1712
insert into t2 values (0x41),(0x4120);
1713
1433
insert into t3 values (0x41),(0x4120),(0x4100);
1714
1434
insert into t3 values (0x41),(0x4100);
1715
1435
-- error ER_DUP_ENTRY
1716
1436
insert into t4 values (0x41),(0x4120),(0x4100);
1717
1437
insert into t4 values (0x41),(0x4100);
1718
1438
select hex(s1) from t1;
1719
select hex(s1) from t2;
1720
1439
select hex(s1) from t3;
1721
1440
select hex(s1) from t4;
1722
drop table t1,t2,t3,t4;
1441
drop table t1,t3,t4;
1724
1443
create table t1 (a int primary key,s1 varbinary(3) not null unique) engine=innodb;
1725
create table t2 (s1 binary(2) not null, constraint c foreign key(s1) references t1(s1) on update cascade) engine=innodb;
1444
create table t2 (s1 varbinary(2) not null, constraint c foreign key(s1) references t1(s1) on update cascade) engine=innodb;
1727
1446
insert into t1 values(1,0x4100),(2,0x41),(3,0x4120),(4,0x42);
1728
1447
insert into t2 values(0x42);
1729
1448
insert into t2 values(0x41);
1730
1449
select hex(s1) from t2;
1731
1451
update t1 set s1=0x123456 where a=2;
1732
1452
select hex(s1) from t2;
1733
1453
update t1 set s1=0x12 where a=1;
1734
1455
update t1 set s1=0x12345678 where a=1;
1735
1456
update t1 set s1=0x123457 where a=1;
1736
1457
update t1 set s1=0x1220 where a=1;
1737
1458
select hex(s1) from t2;
1786
1500
DROP TABLE t2,t1;
1789
# Test case for bug #16229: MySQL/InnoDB uses full explicit table locks in trigger processing
1792
connect (a,localhost,root,,);
1793
connect (b,localhost,root,,);
1795
create table t1(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
1796
insert into t1(a) values (1),(2),(3);
1800
update t1 set b = 5 where a = 2;
1803
create trigger t1t before insert on t1 for each row begin set NEW.b = NEW.a * 10 + 5, NEW.c = NEW.a / 10; end |
1807
insert into t1(a) values (10),(20),(30),(40),(50),(60),(70),(80),(90),(100),
1808
(11),(21),(31),(41),(51),(61),(71),(81),(91),(101),
1809
(12),(22),(32),(42),(52),(62),(72),(82),(92),(102),
1810
(13),(23),(33),(43),(53),(63),(73),(83),(93),(103),
1811
(14),(24),(34),(44),(54),(64),(74),(84),(94),(104);
1821
# Another trigger test
1823
connect (a,localhost,root,,);
1824
connect (b,localhost,root,,);
1826
create table t1(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
1827
create table t2(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
1828
create table t3(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
1829
create table t4(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
1830
create table t5(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
1831
insert into t1(a) values (1),(2),(3);
1832
insert into t2(a) values (1),(2),(3);
1833
insert into t3(a) values (1),(2),(3);
1834
insert into t4(a) values (1),(2),(3);
1835
insert into t3(a) values (5),(7),(8);
1836
insert into t4(a) values (5),(7),(8);
1837
insert into t5(a) values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12);
1840
create trigger t1t before insert on t1 for each row begin
1841
INSERT INTO t2 SET a = NEW.a;
1844
create trigger t2t before insert on t2 for each row begin
1845
DELETE FROM t3 WHERE a = NEW.a;
1848
create trigger t3t before delete on t3 for each row begin
1849
UPDATE t4 SET b = b + 1 WHERE a = OLD.a;
1852
create trigger t4t before update on t4 for each row begin
1853
UPDATE t5 SET b = b + 1 where a = NEW.a;
1858
update t1 set b = b + 5 where a = 1;
1859
update t2 set b = b + 5 where a = 1;
1860
update t3 set b = b + 5 where a = 1;
1861
update t4 set b = b + 5 where a = 1;
1862
insert into t5(a) values(20);
1865
insert into t1(a) values(7);
1866
insert into t2(a) values(8);
1867
delete from t2 where a = 3;
1868
update t4 set b = b + 1 where a = 3;
1874
drop table t1, t2, t3, t4, t5;
1880
1503
# Test that cascading updates leading to duplicate keys give the correct
1881
1504
# error message (bug #9680)
2307
1928
DROP TABLE t1,t2;
2310
# Bug #21101 (Prints wrong error message if max row size is too large)
2314
c01 CHAR(255), c02 CHAR(255), c03 CHAR(255), c04 CHAR(255),
2315
c05 CHAR(255), c06 CHAR(255), c07 CHAR(255), c08 CHAR(255),
2316
c09 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
2317
c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
2318
c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
2319
c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
2320
c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
2321
c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
2325
1931
# Bug #31860 InnoDB assumes AUTOINC values can only be positive.
2327
1933
DROP TABLE IF EXISTS t1;
2328
1934
CREATE TABLE t1(
2329
id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY
1935
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
2330
1936
) ENGINE=InnoDB;
2331
1937
INSERT INTO t1 VALUES(-10);
2332
1938
SELECT * FROM t1;
2340
1946
SELECT * FROM t1;
2344
# Bug #21409 Incorrect result returned when in READ-COMMITTED with
2347
CONNECT (c1,localhost,root,,);
2348
CONNECT (c2,localhost,root,,);
2350
SET TX_ISOLATION='read-committed';
2352
DROP TABLE IF EXISTS t1, t2;
2353
CREATE TABLE t1 ( a int ) ENGINE=InnoDB;
2354
CREATE TABLE t2 LIKE t1;
2357
SET TX_ISOLATION='read-committed';
2359
INSERT INTO t1 VALUES (1);
2362
SELECT * FROM t1 WHERE a=1;
2365
CONNECT (c1,localhost,root,,);
2366
CONNECT (c2,localhost,root,,);
2368
SET TX_ISOLATION='read-committed';
2372
SET TX_ISOLATION='read-committed';
2374
INSERT INTO t1 VALUES (2);
2377
# The result set below should be the same for both selects
2378
SELECT * FROM t1 WHERE a=2;
2379
SELECT * FROM t1 WHERE a=2;
2385
1949
#######################################################################
2387
1951
# Please, DO NOT TOUCH this file as well as the innodb.result file. #