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;
638
610
CREATE TABLE t1 (
639
number bigint(20) NOT NULL default '0',
611
number bigint NOT NULL default '0',
640
612
cname char(15) NOT NULL default '',
641
carrier_id int(6) NOT NULL default '0',
642
privacy int(4) NOT NULL default '0',
613
carrier_id int NOT NULL default '0',
614
privacy int NOT NULL default '0',
643
615
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'
616
last_mod_id int NOT NULL default '0',
617
last_app_date timestamp NULL,
618
last_app_id int default '-1',
619
version int NOT NULL default '0',
620
assigned_scps int default '0',
621
status int default '0'
651
INSERT INTO t1 VALUES (4077711111,'SeanWheeler',90,2,20020111112846,500,00000000000000,-1,2,3,1);
623
INSERT INTO t1 VALUES (4077711111,'SeanWheeler',90,2,20020111112846,500,NULL,-1,2,3,1);
652
624
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);
625
INSERT INTO t1 VALUES (650,'San Francisco',0,0,20011227111336,342,NULL,-1,1,24,1);
654
626
INSERT INTO t1 VALUES (302467,'Sue\'s Subshop',90,3,20020109113241,500,20020102115111,501,7,24,0);
655
627
INSERT INTO t1 VALUES (6014911113,'SudzCarwash',520,1,20020102115234,500,20020102115259,501,33,32768,0);
656
628
INSERT INTO t1 VALUES (333,'tubs',99,2,20020109113440,501,20020109113440,500,3,10,0);
657
629
CREATE TABLE t2 (
658
number bigint(20) NOT NULL default '0',
630
number bigint NOT NULL default '0',
659
631
cname char(15) NOT NULL default '',
660
carrier_id int(6) NOT NULL default '0',
661
privacy int(4) NOT NULL default '0',
632
carrier_id int NOT NULL default '0',
633
privacy int NOT NULL default '0',
662
634
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'
635
last_mod_id int NOT NULL default '0',
636
last_app_date timestamp NULL,
637
last_app_id int default '-1',
638
version int NOT NULL default '0',
639
assigned_scps int default '0',
640
status int default '0'
670
INSERT INTO t2 VALUES (4077711111,'SeanWheeler',0,2,20020111112853,500,00000000000000,-1,2,3,1);
642
INSERT INTO t2 VALUES (4077711111,'SeanWheeler',0,2,20020111112853,500,NULL,-1,2,3,1);
671
643
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);
644
INSERT INTO t2 VALUES (650,'San Francisco',90,0,20020109113158,342,NULL,-1,1,24,1);
673
645
INSERT INTO t2 VALUES (333,'tubs',99,2,20020109113453,501,20020109113453,500,3,10,0);
674
646
select * from t1;
675
647
select * from t2;
1097
1036
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;
1039
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
1040
show create table t2;
1102
1041
create unique index id on t2 (id,id2);
1103
1042
show create table t2;
1106
1045
# 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;
1046
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;
1047
show create table t2;
1050
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;
1051
show create table t2;
1054
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;
1055
show create table t2;
1058
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;
1059
show create table t2;
1062
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
1063
show create table t2;
1125
1064
alter table t2 add index id_test (id), add index id_test2 (id,id2);
1126
1065
show create table t2;
1169
1108
# Bug #4082: integer truncation
1172
create table t1(a int(1) , b int(1)) engine=innodb;
1111
create table t1(a int, b int) engine=innodb;
1173
1112
insert into t1 values ('1111', '3333');
1174
1113
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
1117
# check null values #1
1191
1120
--disable_warnings
1192
CREATE TABLE t1 (a_id int(4) NOT NULL default '0', PRIMARY KEY (a_id)) ENGINE=InnoDB DEFAULT CHARSET=latin1;
1121
CREATE TABLE t1 (a_id int NOT NULL default '0', PRIMARY KEY (a_id)) ENGINE=InnoDB;
1193
1122
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;
1123
CREATE TABLE t2 (b_id int NOT NULL default '0',b_a int NOT NULL default '0', PRIMARY KEY (b_id), KEY (b_a),
1124
CONSTRAINT fk_b_a FOREIGN KEY (b_a) REFERENCES t1 (a_id) ON DELETE CASCADE ON UPDATE NO ACTION) ENGINE=InnoDB;
1196
1125
--enable_warnings
1197
1126
INSERT INTO t2 VALUES (1,1),(2,1),(3,1),(4,2),(5,2);
1198
1127
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
1183
explain select count(*) from t1 where x > -16;
1255
1184
select count(*) from t1 where x > -16;
1256
1185
select * from t1 where x > -16;
1257
select count(*) from t1 where x = 18446744073709551601;
1186
select count(*) from t1 where x = 1152921504606846961;
1190
## Not deterministic.
1261
1191
# Test for testable InnoDB status variables. This test
1262
1192
# 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";
1193
#show status like "Innodb_buffer_pool_pages_total";
1194
#show status like "Innodb_page_size";
1195
#show status like "Innodb_rows_deleted";
1196
#show status like "Innodb_rows_inserted";
1197
#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";
1199
## Test for row locks InnoDB status variables.
1200
#show status like "Innodb_row_lock_waits";
1201
#show status like "Innodb_row_lock_current_waits";
1202
#show status like "Innodb_row_lock_time";
1203
#show status like "Innodb_row_lock_time_max";
1204
#show status like "Innodb_row_lock_time_avg";
1276
1206
# Test for innodb_sync_spin_loops variable
1277
1207
show variables like "innodb_sync_spin_loops";
1459
1389
create table t1 (col1 varchar(2000), index (col1(767)))
1460
character set = latin1 engine = innodb;
1462
1392
# normal indexes
1463
1393
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
1395
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;
1397
create table t5 (col1 varchar(190) primary key)
1399
create table t6 (col1 varbinary(254) primary key)
1473
1401
create table t7 (col1 text, index(col1(767)))
1474
character set = latin1 engine = innodb;
1475
1403
create table t8 (col1 blob, index(col1(767)))
1476
character set = latin1 engine = innodb;
1478
1406
# multi-column indexes are allowed to be longer
1479
1407
create table t9 (col1 varchar(512), col2 varchar(512), index(col1, col2))
1480
character set = latin1 engine = innodb;
1482
1410
show create table t9;
1484
drop table t1, t2, t3, t4, t5, t6, t7, t8, t9;
1412
drop table t1, t2, t4, t5, t6, t7, t8, t9;
1486
1414
# these should have their index length trimmed
1487
1415
create table t1 (col1 varchar(768), index(col1))
1488
character set = latin1 engine = innodb;
1489
1417
create table t2 (col1 varbinary(768), index(col1))
1490
character set = latin1 engine = innodb;
1491
1419
create table t3 (col1 text, index(col1(768)))
1492
character set = latin1 engine = innodb;
1493
1421
create table t4 (col1 blob, index(col1(768)))
1494
character set = latin1 engine = innodb;
1496
1424
show create table t1;
1685
1580
# 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,
1582
create table t1 (a varchar(255),
1691
1586
key (a,b,c,d)) engine=innodb;
1693
1588
--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,
1589
create table t1 (a varchar(255),
1699
1594
key (a,b,c,d,e)) engine=innodb;
1702
1597
# test the padding of BINARY types and collations (Bug #14189)
1704
1599
create table t1 (s1 varbinary(2),primary key (s1)) engine=innodb;
1705
create table t2 (s1 binary(2),primary key (s1)) engine=innodb;
1706
1600
create table t3 (s1 varchar(2) binary,primary key (s1)) engine=innodb;
1707
1601
create table t4 (s1 char(2) binary,primary key (s1)) engine=innodb;
1709
1603
insert into t1 values (0x41),(0x4120),(0x4100);
1710
1604
-- error ER_DUP_ENTRY
1711
insert into t2 values (0x41),(0x4120),(0x4100);
1712
insert into t2 values (0x41),(0x4120);
1713
1605
insert into t3 values (0x41),(0x4120),(0x4100);
1714
1606
insert into t3 values (0x41),(0x4100);
1715
1607
-- error ER_DUP_ENTRY
1716
1608
insert into t4 values (0x41),(0x4120),(0x4100);
1717
1609
insert into t4 values (0x41),(0x4100);
1718
1610
select hex(s1) from t1;
1719
select hex(s1) from t2;
1720
1611
select hex(s1) from t3;
1721
1612
select hex(s1) from t4;
1722
drop table t1,t2,t3,t4;
1613
drop table t1,t3,t4;
1724
1615
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;
1616
create table t2 (s1 varbinary(2) not null, constraint c foreign key(s1) references t1(s1) on update cascade) engine=innodb;
1727
1618
insert into t1 values(1,0x4100),(2,0x41),(3,0x4120),(4,0x42);
1728
1619
insert into t2 values(0x42);
1729
1620
insert into t2 values(0x41);
1730
1621
select hex(s1) from t2;
1731
1623
update t1 set s1=0x123456 where a=2;
1732
1624
select hex(s1) from t2;
1733
1625
update t1 set s1=0x12 where a=1;
1734
1627
update t1 set s1=0x12345678 where a=1;
1735
1628
update t1 set s1=0x123457 where a=1;
1736
1629
update t1 set s1=0x1220 where a=1;
1737
1630
select hex(s1) from t2;
1786
1672
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
1675
# Test that cascading updates leading to duplicate keys give the correct
1881
1676
# error message (bug #9680)
2307
2102
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
2105
# Bug #31860 InnoDB assumes AUTOINC values can only be positive.
2327
2107
DROP TABLE IF EXISTS t1;
2328
2108
CREATE TABLE t1(
2329
id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY
2109
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
2330
2110
) ENGINE=InnoDB;
2331
2111
INSERT INTO t1 VALUES(-10);
2332
2112
SELECT * FROM t1;
2340
2120
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
2123
#######################################################################
2387
2125
# Please, DO NOT TOUCH this file as well as the innodb.result file. #