~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/include/mix1.inc

  • Committer: Brian Aker
  • Date: 2008-11-04 15:39:09 UTC
  • mfrom: (575.1.2 devel)
  • Revision ID: brian@tangent.org-20081104153909-c72hn65udxs1ccal
Merge of Monty's work

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
# BUG#16798: Uninitialized row buffer reads in ref-or-null optimizer
36
36
# (repeatable only w/innodb).
37
37
create table t1 (
38
 
  c_id int(11) not null default '0',
39
 
  org_id int(11) default null,
 
38
  c_id int not null default '0',
 
39
  org_id int default null,
40
40
  unique key contacts$c_id (c_id),
41
41
  key contacts$org_id (org_id)
42
42
);
46
46
  (246,3),(253,3),(269,3),(285,3),(291,3),(293,3),(131,4),(230,4),(231,4);
47
47
 
48
48
create table t2 (
49
 
  slai_id int(11) not null default '0',
50
 
  owner_tbl int(11) default null,
51
 
  owner_id int(11) default null,
52
 
  sla_id int(11) default null,
53
 
  inc_web int(11) default null,
54
 
  inc_email int(11) default null,
55
 
  inc_chat int(11) default null,
56
 
  inc_csr int(11) default null,
57
 
  inc_total int(11) default null,
58
 
  time_billed int(11) default null,
 
49
  slai_id int not null default '0',
 
50
  owner_tbl int default null,
 
51
  owner_id int default null,
 
52
  sla_id int default null,
 
53
  inc_web int default null,
 
54
  inc_email int default null,
 
55
  inc_chat int default null,
 
56
  inc_csr int default null,
 
57
  inc_total int default null,
 
58
  time_billed int default null,
59
59
  activedate timestamp null default null,
60
60
  expiredate timestamp null default null,
61
 
  state int(11) default null,
62
 
  sla_set int(11) default null,
 
61
  state int default null,
 
62
  sla_set int default null,
63
63
  unique key t2$slai_id (slai_id),
64
64
  key t2$owner_id (owner_id),
65
65
  key t2$sla_id (sla_id)
109
109
 
110
110
# demonstrate a problem when a must-use-sort table flag
111
111
# (sort_by_table=1) is being neglected.
112
 
SELECT STRAIGHT_JOIN SQL_NO_CACHE t1.b, t1.a FROM t1, t3, t2 WHERE
 
112
SELECT STRAIGHT_JOIN t1.b, t1.a FROM t1, t3, t2 WHERE
113
113
  t3.a = t2.a AND t2.b = t1.a AND t3.b = 1 AND t3.c IN (1, 2)
114
114
  ORDER BY t1.b LIMIT 2;
115
115
 
116
116
# demonstrate the problem described in the bug report
117
 
SELECT STRAIGHT_JOIN SQL_NO_CACHE t1.b, t1.a FROM t1, t3, t2 WHERE
 
117
SELECT STRAIGHT_JOIN t1.b, t1.a FROM t1, t3, t2 WHERE
118
118
  t3.a = t2.a AND t2.b = t1.a AND t3.b = 1 AND t3.c IN (1, 2)
119
119
  ORDER BY t1.b LIMIT 5;
120
120
DROP TABLE t1, t2, t3;
152
152
#
153
153
 
154
154
CREATE TABLE t1(c1 TEXT, UNIQUE (c1(1)), cnt INT DEFAULT 1)
155
 
  ENGINE=INNODB CHARACTER SET UTF8;
 
155
  ENGINE=INNODB;
156
156
INSERT INTO t1 (c1) VALUES ('1a');
157
157
SELECT * FROM t1;
158
158
INSERT INTO t1 (c1) VALUES ('1b') ON DUPLICATE KEY UPDATE cnt=cnt+1;
160
160
DROP TABLE t1;
161
161
 
162
162
CREATE TABLE t1(c1 VARCHAR(2), UNIQUE (c1(1)), cnt INT DEFAULT 1)
163
 
  ENGINE=INNODB CHARACTER SET UTF8;
 
163
  ENGINE=INNODB;
164
164
INSERT INTO t1 (c1) VALUES ('1a');
165
165
SELECT * FROM t1;
166
166
INSERT INTO t1 (c1) VALUES ('1b') ON DUPLICATE KEY UPDATE cnt=cnt+1;
168
168
DROP TABLE t1;
169
169
 
170
170
CREATE TABLE t1(c1 CHAR(2), UNIQUE (c1(1)), cnt INT DEFAULT 1)
171
 
  ENGINE=INNODB CHARACTER SET UTF8;
 
171
  ENGINE=INNODB;
172
172
INSERT INTO t1 (c1) VALUES ('1a');
173
173
SELECT * FROM t1;
174
174
INSERT INTO t1 (c1) VALUES ('1b') ON DUPLICATE KEY UPDATE cnt=cnt+1;
186
186
  a4 blob,
187
187
  a5 char(175) DEFAULT NULL,
188
188
  a6 timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
189
 
  a7 tinyblob,
 
189
  a7 blob,
190
190
  INDEX idx (a6,a7(239),a5)
191
191
) ENGINE=InnoDB;
192
192
 
363
363
# Test for bug #17164: ORed FALSE blocked conversion of outer join into join
364
364
#
365
365
 
366
 
CREATE TABLE t1 (id int(11) NOT NULL PRIMARY KEY, name varchar(20),
 
366
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, name varchar(20),
367
367
                 INDEX (name));
368
 
CREATE TABLE t2 (id int(11) NOT NULL PRIMARY KEY, fkey int(11));
369
 
# CREATE TABLE t2 (id int(11) NOT NULL PRIMARY KEY, fkey int(11),
 
368
CREATE TABLE t2 (id int NOT NULL PRIMARY KEY, fkey int);
 
369
# CREATE TABLE t2 (id int NOT NULL PRIMARY KEY, fkey int,
370
370
#                  FOREIGN KEY (fkey) REFERENCES t2(id));
371
371
if ($test_foreign_keys)
372
372
{
393
393
  id int NOT NULL,
394
394
  name varchar(20) NOT NULL,
395
395
  dept varchar(20) NOT NULL,
396
 
  age tinyint(3) unsigned NOT NULL,
 
396
  age int NOT NULL,
397
397
  PRIMARY KEY (id),
398
398
  INDEX (name,dept)
399
399
) ENGINE=InnoDB;
422
422
drop table if exists `test`;
423
423
CREATE TABLE `test` (`test1` varchar(3) NOT NULL,
424
424
  `test2` varchar(4) NOT NULL,PRIMARY KEY  (`test1`))
425
 
  ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
425
  ENGINE=InnoDB;
426
426
INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '5678');
427
427
disconnect con1;
428
428
connect (con2,localhost,root,,);
483
483
 
484
484
drop table t1;
485
485
 
486
 
#
487
 
# Bug #28189: optimizer erroniously prefers ref access to range access 
488
 
#             for an InnoDB table
489
 
#
490
 
 
491
 
CREATE TABLE t1(
492
 
  id int AUTO_INCREMENT PRIMARY KEY,
493
 
  stat_id int NOT NULL,
494
 
  acct_id int DEFAULT NULL,
495
 
  INDEX idx1 (stat_id, acct_id),
496
 
  INDEX idx2 (acct_id)
497
 
) ENGINE=MyISAM;
498
 
 
499
 
CREATE TABLE t2(
500
 
  id int AUTO_INCREMENT PRIMARY KEY,
501
 
  stat_id int NOT NULL,
502
 
  acct_id int DEFAULT NULL,
503
 
  INDEX idx1 (stat_id, acct_id),
504
 
  INDEX idx2 (acct_id)
505
 
) ENGINE=InnoDB;
506
 
 
507
 
INSERT INTO t1(stat_id,acct_id) VALUES
508
 
  (1,759), (2,831), (3,785), (4,854), (1,921),
509
 
  (1,553), (2,589), (3,743), (2,827), (2,545),
510
 
  (4,779), (4,783), (1,597), (1,785), (4,832),
511
 
  (1,741), (1,833), (3,788), (2,973), (1,907);
512
 
 
513
 
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
514
 
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
515
 
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
516
 
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
517
 
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
518
 
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
519
 
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
520
 
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
521
 
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
522
 
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
523
 
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
524
 
UPDATE t1 SET acct_id=785 
525
 
  WHERE MOD(stat_id,2)=0 AND MOD(id,stat_id)=MOD(acct_id,stat_id);
526
 
OPTIMIZE TABLE t1;
527
 
 
528
 
SELECT COUNT(*) FROM t1;
529
 
SELECT COUNT(*) FROM t1 WHERE acct_id=785;
530
 
 
531
 
EXPLAIN SELECT COUNT(*) FROM t1 WHERE stat_id IN (1,3) AND acct_id=785; 
532
 
 
533
 
INSERT INTO t2 SELECT * FROM t1;
534
 
OPTIMIZE TABLE t2;
535
 
 
536
 
EXPLAIN SELECT COUNT(*) FROM t2 WHERE stat_id IN (1,3) AND acct_id=785;
537
 
 
538
 
DROP TABLE t1,t2; 
539
 
 
 
486
# Test needs to be rewritten to not use divide by zero
 
487
##
 
488
## Bug #28189: optimizer erroniously prefers ref access to range access 
 
489
##             for an InnoDB table
 
490
##
 
491
#
 
492
#CREATE TABLE t1(
 
493
#  id int AUTO_INCREMENT PRIMARY KEY,
 
494
#  stat_id int NOT NULL,
 
495
#  acct_id int DEFAULT NULL,
 
496
#  INDEX idx1 (stat_id, acct_id),
 
497
#  INDEX idx2 (acct_id)
 
498
#) ENGINE=MyISAM;
 
499
#
 
500
#CREATE TABLE t2(
 
501
#  id int AUTO_INCREMENT PRIMARY KEY,
 
502
#  stat_id int NOT NULL,
 
503
#  acct_id int DEFAULT NULL,
 
504
#  INDEX idx1 (stat_id, acct_id),
 
505
#  INDEX idx2 (acct_id)
 
506
#) ENGINE=InnoDB;
 
507
#
 
508
#INSERT INTO t1(stat_id,acct_id) VALUES
 
509
#  (1,759), (2,831), (3,785), (4,854), (1,921),
 
510
#  (1,553), (2,589), (3,743), (2,827), (2,545),
 
511
#  (4,779), (4,783), (1,597), (1,785), (4,832),
 
512
#  (1,741), (1,833), (3,788), (2,973), (1,907);
 
513
#
 
514
#INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
 
515
#INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
 
516
#INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
 
517
#INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
 
518
#INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
 
519
#INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
 
520
#INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
 
521
#INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
 
522
#INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
 
523
#INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
 
524
#INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
 
525
#UPDATE t1 SET acct_id=785 
 
526
#  WHERE MOD(stat_id,2)=0 AND MOD(id,stat_id)=MOD(acct_id,stat_id);
 
527
#OPTIMIZE TABLE t1;
 
528
#
 
529
#SELECT COUNT(*) FROM t1;
 
530
#SELECT COUNT(*) FROM t1 WHERE acct_id=785;
 
531
#
 
532
#EXPLAIN SELECT COUNT(*) FROM t1 WHERE stat_id IN (1,3) AND acct_id=785; 
 
533
#
 
534
#INSERT INTO t2 SELECT * FROM t1;
 
535
#OPTIMIZE TABLE t2;
 
536
#
 
537
#EXPLAIN SELECT COUNT(*) FROM t2 WHERE stat_id IN (1,3) AND acct_id=785;
 
538
#
 
539
#DROP TABLE t1,t2; 
 
540
#
540
541
#
541
542
# Bug #28652: assert when alter innodb table operation
542
543
#
548
549
#
549
550
# Bug #25866: Getting "#HY000 Can't find record in..." on and INSERT
550
551
#
551
 
CREATE TABLE t1 (a CHAR(2), KEY (a)) ENGINE = InnoDB DEFAULT CHARSET=UTF8;
 
552
CREATE TABLE t1 (a CHAR(2), KEY (a)) ENGINE = InnoDB;
552
553
INSERT INTO t1 VALUES ('uk'),('bg');
553
554
SELECT * FROM t1 WHERE a = 'uk';
554
555
DELETE FROM t1 WHERE a = 'uk';
731
732
#
732
733
# Bug#17530: Incorrect key truncation on table creation caused server crash.
733
734
#
734
 
create table t1(f1 varchar(800) binary not null, key(f1))
735
 
  character set utf8 collate utf8_general_ci;
 
735
create table t1(f1 varchar(800) not null, key(f1));
736
736
insert into t1 values('aaa');
737
737
drop table t1;
738
738
 
841
841
#
842
842
# Bug #28125: ERROR 2013 when adding index.
843
843
#
844
 
create table t1(a text) engine=innodb default charset=utf8; 
 
844
create table t1(a text) engine=innodb;
845
845
insert into t1 values('aaa');
846
846
alter table t1 add index(a(1024));
847
847
show create table t1;
1017
1017
# UPDATE": if the row is updated, it's like a regular UPDATE:
1018
1018
# LAST_INSERT_ID() is not affected.
1019
1019
CREATE TABLE `t2` (
1020
 
  `k` int(11) NOT NULL auto_increment,
1021
 
  `a` int(11) default NULL,
1022
 
  `c` int(11) default NULL,
 
1020
  `k` int NOT NULL auto_increment,
 
1021
  `a` int default NULL,
 
1022
  `c` int default NULL,
1023
1023
  PRIMARY KEY  (`k`),
1024
1024
  UNIQUE KEY `idx_1` (`a`)
1025
1025
);
1176
1176
#             auto_increment keys
1177
1177
#
1178
1178
create table t1 (a int auto_increment primary key) engine=innodb;
 
1179
--error 1105
1179
1180
alter table t1 order by a;
1180
1181
drop table t1;
1181
1182