mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
ddb91478e8
into sunlight.local:/local_work/tmp_merge-5.1-opt-mysql client/mysql.cc: Auto merged mysql-test/r/date_formats.result: Auto merged mysql-test/r/func_gconcat.result: Auto merged mysql-test/r/func_group.result: Auto merged mysql-test/r/func_str.result: Auto merged mysql-test/r/group_min_max.result: Auto merged BitKeeper/deleted/.del-make_win_src_distribution.sh~f80d8fca44e4e5f1: Auto merged BitKeeper/deleted/.del-mysqld.dsp~ffdbf2d234e23e56: Auto merged BitKeeper/deleted/.del-mysqld_ia64.dsp~7f8cf84d81ee04e2: Auto merged BitKeeper/deleted/.del-mysqldump.dsp~a8bd23547d3fc27e: Auto merged BitKeeper/deleted/.del-mysqldump_ia64.dsp~a2aabe898be35b31: Auto merged mysql-test/r/innodb.result: Auto merged mysql-test/r/innodb_mysql.result: Auto merged mysql-test/r/ps_7ndb.result: Auto merged mysql-test/r/type_ranges.result: Auto merged mysql-test/r/udf.result: Auto merged mysql-test/r/union.result: Auto merged mysql-test/r/view.result: Auto merged mysql-test/t/date_formats.test: Auto merged mysql-test/t/func_gconcat.test: Auto merged mysql-test/t/func_group.test: Auto merged mysql-test/t/group_min_max.test: Auto merged mysql-test/t/innodb.test: Auto merged mysql-test/t/innodb_mysql.test: Auto merged mysql-test/t/mysql.test: Auto merged mysql-test/t/select.test: Auto merged mysql-test/t/sp.test: Auto merged mysql-test/t/view.test: Auto merged sql/field.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_cmpfunc.h: Auto merged sql/item_func.cc: Auto merged sql/item_func.h: Auto merged sql/item_strfunc.cc: Auto merged sql/item_subselect.cc: Auto merged sql/item_subselect.h: Auto merged sql/opt_range.h: Auto merged sql/sql_base.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_yacc.yy: Auto merged sql/time.cc: Auto merged storage/ndb/test/ndbapi/Makefile.am: Auto merged strings/decimal.c: Auto merged mysql-test/r/analyse.result: Manual merge mysql-test/r/bigint.result: Manual merge mysql-test/r/create.result: Manual merge mysql-test/r/information_schema.result: Manual merge mysql-test/r/ps_2myisam.result: Manual merge mysql-test/r/ps_3innodb.result: Manual merge mysql-test/r/ps_4heap.result: Manual merge mysql-test/r/ps_5merge.result: Manual merge mysql-test/r/ps_6bdb.result: Manual merge mysql-test/r/rpl_insert_id.result: Manual merge mysql-test/r/select.result: Manual merge mysql-test/r/sp.result: Manual merge mysql-test/r/subselect.result: Manual merge mysql-test/t/information_schema.test: Manual merge mysql-test/t/rpl_insert_id.test: Manual merge sql/field.h: Manual merge sql/item.cc: Manual merge sql/item.h: Manual merge sql/item_strfunc.h: Manual merge sql/item_sum.cc: Manual merge sql/mysql_priv.h: Manual merge sql/share/errmsg.txt: Manual merge sql/sql_class.h: Manual merge sql/sql_select.cc: Manual merge
322 lines
12 KiB
Text
322 lines
12 KiB
Text
-- source include/have_innodb.inc
|
|
|
|
--disable_warnings
|
|
drop table if exists t1,t2,t1m,t1i,t2m,t2i,t4;
|
|
--enable_warnings
|
|
|
|
#
|
|
# Bug#17530: Incorrect key truncation on table creation caused server crash.
|
|
#
|
|
create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb
|
|
character set utf8 collate utf8_general_ci;
|
|
insert into t1 values('aaa');
|
|
drop table t1;
|
|
|
|
# BUG#16798: Uninitialized row buffer reads in ref-or-null optimizer
|
|
# (repeatable only w/innodb).
|
|
create table t1 (
|
|
c_id int(11) not null default '0',
|
|
org_id int(11) default null,
|
|
unique key contacts$c_id (c_id),
|
|
key contacts$org_id (org_id)
|
|
) engine=innodb;
|
|
insert into t1 values
|
|
(2,null),(120,null),(141,null),(218,7), (128,1),
|
|
(151,2),(234,2),(236,2),(243,2),(255,2),(259,2),(232,3),(235,3),(238,3),
|
|
(246,3),(253,3),(269,3),(285,3),(291,3),(293,3),(131,4),(230,4),(231,4);
|
|
|
|
create table t2 (
|
|
slai_id int(11) not null default '0',
|
|
owner_tbl int(11) default null,
|
|
owner_id int(11) default null,
|
|
sla_id int(11) default null,
|
|
inc_web int(11) default null,
|
|
inc_email int(11) default null,
|
|
inc_chat int(11) default null,
|
|
inc_csr int(11) default null,
|
|
inc_total int(11) default null,
|
|
time_billed int(11) default null,
|
|
activedate timestamp null default null,
|
|
expiredate timestamp null default null,
|
|
state int(11) default null,
|
|
sla_set int(11) default null,
|
|
unique key t2$slai_id (slai_id),
|
|
key t2$owner_id (owner_id),
|
|
key t2$sla_id (sla_id)
|
|
) engine=innodb;
|
|
insert into t2(slai_id, owner_tbl, owner_id, sla_id) values
|
|
(1,3,1,1), (3,3,10,2), (4,3,3,6), (5,3,2,5), (6,3,8,3), (7,3,9,7),
|
|
(8,3,6,8), (9,3,4,9), (10,3,5,10), (11,3,11,11), (12,3,7,12);
|
|
|
|
flush tables;
|
|
select si.slai_id
|
|
from t1 c join t2 si on
|
|
((si.owner_tbl = 3 and si.owner_id = c.org_id) or
|
|
( si.owner_tbl = 2 and si.owner_id = c.c_id))
|
|
where
|
|
c.c_id = 218 and expiredate is null;
|
|
|
|
select * from t1 where org_id is null;
|
|
select si.slai_id
|
|
from t1 c join t2 si on
|
|
((si.owner_tbl = 3 and si.owner_id = c.org_id) or
|
|
( si.owner_tbl = 2 and si.owner_id = c.c_id))
|
|
where
|
|
c.c_id = 218 and expiredate is null;
|
|
|
|
drop table t1, t2;
|
|
|
|
#
|
|
# Bug#17212: results not sorted correctly by ORDER BY when using index
|
|
# (repeatable only w/innodb because of index props)
|
|
#
|
|
CREATE TABLE t1 (a int, b int, KEY b (b)) Engine=InnoDB;
|
|
CREATE TABLE t2 (a int, b int, PRIMARY KEY (a,b)) Engine=InnoDB;
|
|
CREATE TABLE t3 (a int, b int, c int, PRIMARY KEY (a),
|
|
UNIQUE KEY b (b,c), KEY a (a,b,c)) Engine=InnoDB;
|
|
|
|
INSERT INTO t1 VALUES (1, 1);
|
|
INSERT INTO t1 SELECT a + 1, b + 1 FROM t1;
|
|
INSERT INTO t1 SELECT a + 2, b + 2 FROM t1;
|
|
|
|
INSERT INTO t2 VALUES (1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8);
|
|
INSERT INTO t2 SELECT a + 1, b FROM t2;
|
|
DELETE FROM t2 WHERE a = 1 AND b < 2;
|
|
|
|
INSERT INTO t3 VALUES (1,1,1),(2,1,2);
|
|
INSERT INTO t3 SELECT a + 2, a + 2, 3 FROM t3;
|
|
INSERT INTO t3 SELECT a + 4, a + 4, 3 FROM t3;
|
|
|
|
# demonstrate a problem when a must-use-sort table flag
|
|
# (sort_by_table=1) is being neglected.
|
|
SELECT STRAIGHT_JOIN SQL_NO_CACHE t1.b, t1.a FROM t1, t3, t2 WHERE
|
|
t3.a = t2.a AND t2.b = t1.a AND t3.b = 1 AND t3.c IN (1, 2)
|
|
ORDER BY t1.b LIMIT 2;
|
|
|
|
# demonstrate the problem described in the bug report
|
|
SELECT STRAIGHT_JOIN SQL_NO_CACHE t1.b, t1.a FROM t1, t3, t2 WHERE
|
|
t3.a = t2.a AND t2.b = t1.a AND t3.b = 1 AND t3.c IN (1, 2)
|
|
ORDER BY t1.b LIMIT 5;
|
|
DROP TABLE t1, t2, t3;
|
|
#
|
|
# Bug #12882 min/max inconsistent on empty table
|
|
#
|
|
|
|
--disable_warnings
|
|
create table t1m (a int) engine=myisam;
|
|
create table t1i (a int) engine=innodb;
|
|
create table t2m (a int) engine=myisam;
|
|
create table t2i (a int) engine=innodb;
|
|
--enable_warnings
|
|
insert into t2m values (5);
|
|
insert into t2i values (5);
|
|
|
|
# test with MyISAM
|
|
select min(a) from t1m;
|
|
select min(7) from t1m;
|
|
select min(7) from DUAL;
|
|
explain select min(7) from t2m join t1m;
|
|
select min(7) from t2m join t1m;
|
|
|
|
select max(a) from t1m;
|
|
select max(7) from t1m;
|
|
select max(7) from DUAL;
|
|
explain select max(7) from t2m join t1m;
|
|
select max(7) from t2m join t1m;
|
|
|
|
select 1, min(a) from t1m where a=99;
|
|
select 1, min(a) from t1m where 1=99;
|
|
select 1, min(1) from t1m where a=99;
|
|
select 1, min(1) from t1m where 1=99;
|
|
|
|
select 1, max(a) from t1m where a=99;
|
|
select 1, max(a) from t1m where 1=99;
|
|
select 1, max(1) from t1m where a=99;
|
|
select 1, max(1) from t1m where 1=99;
|
|
|
|
# test with InnoDB
|
|
select min(a) from t1i;
|
|
select min(7) from t1i;
|
|
select min(7) from DUAL;
|
|
explain select min(7) from t2i join t1i;
|
|
select min(7) from t2i join t1i;
|
|
|
|
select max(a) from t1i;
|
|
select max(7) from t1i;
|
|
select max(7) from DUAL;
|
|
explain select max(7) from t2i join t1i;
|
|
select max(7) from t2i join t1i;
|
|
|
|
select 1, min(a) from t1i where a=99;
|
|
select 1, min(a) from t1i where 1=99;
|
|
select 1, min(1) from t1i where a=99;
|
|
select 1, min(1) from t1i where 1=99;
|
|
|
|
select 1, max(a) from t1i where a=99;
|
|
select 1, max(a) from t1i where 1=99;
|
|
select 1, max(1) from t1i where a=99;
|
|
select 1, max(1) from t1i where 1=99;
|
|
|
|
# mixed MyISAM/InnoDB test
|
|
explain select count(*), min(7), max(7) from t1m, t1i;
|
|
select count(*), min(7), max(7) from t1m, t1i;
|
|
|
|
explain select count(*), min(7), max(7) from t1m, t2i;
|
|
select count(*), min(7), max(7) from t1m, t2i;
|
|
|
|
explain select count(*), min(7), max(7) from t2m, t1i;
|
|
select count(*), min(7), max(7) from t2m, t1i;
|
|
|
|
drop table t1m, t1i, t2m, t2i;
|
|
|
|
#
|
|
# Bug #12672: primary key implcitly included in every innodb index
|
|
# (was part of group_min_max.test)
|
|
#
|
|
|
|
create table t1 (
|
|
a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
|
|
);
|
|
|
|
insert into t1 (a1, a2, b, c, d) values
|
|
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
|
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
|
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
|
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
|
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
|
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
|
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
|
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
|
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
|
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
|
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
|
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
|
|
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
|
|
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
|
|
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
|
|
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'),
|
|
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
|
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
|
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
|
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
|
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
|
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
|
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
|
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
|
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
|
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
|
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
|
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
|
|
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
|
|
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
|
|
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
|
|
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4');
|
|
--disable_warnings
|
|
create table t4 (
|
|
pk_col int auto_increment primary key, a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
|
|
) engine=innodb;
|
|
--enable_warnings
|
|
insert into t4 (a1, a2, b, c, d, dummy) select * from t1;
|
|
|
|
create index idx12672_0 on t4 (a1);
|
|
create index idx12672_1 on t4 (a1,a2,b,c);
|
|
create index idx12672_2 on t4 (a1,a2,b);
|
|
analyze table t1;
|
|
|
|
select distinct a1 from t4 where pk_col not in (1,2,3,4);
|
|
|
|
drop table t1,t4;
|
|
|
|
#
|
|
# Bug #6142: a problem with the empty innodb table
|
|
# (was part of group_min_max.test)
|
|
#
|
|
|
|
--disable_warnings
|
|
create table t1 (
|
|
a varchar(30), b varchar(30), primary key(a), key(b)
|
|
) engine=innodb;
|
|
--enable_warnings
|
|
select distinct a from t1;
|
|
drop table t1;
|
|
|
|
#
|
|
# Bug #9798: group by with rollup
|
|
# (was part of group_min_max.test)
|
|
#
|
|
|
|
--disable_warnings
|
|
create table t1(a int, key(a)) engine=innodb;
|
|
--enable_warnings
|
|
insert into t1 values(1);
|
|
select a, count(a) from t1 group by a with rollup;
|
|
drop table t1;
|
|
|
|
#
|
|
# Bug #13293 Wrongly used index results in endless loop.
|
|
# (was part of group_min_max.test)
|
|
#
|
|
create table t1 (f1 int, f2 char(1), primary key(f1,f2)) engine=innodb;
|
|
insert into t1 values ( 1,"e"),(2,"a"),( 3,"c"),(4,"d");
|
|
alter table t1 drop primary key, add primary key (f2, f1);
|
|
explain select distinct f1 a, f1 b from t1;
|
|
explain select distinct f1, f2 from t1;
|
|
drop table t1;
|
|
|
|
|
|
#
|
|
# Test of behaviour with CREATE ... SELECT
|
|
#
|
|
|
|
set storage_engine=innodb;
|
|
CREATE TABLE t1 (a int, b int);
|
|
insert into t1 values (1,1),(1,2);
|
|
--error 1062
|
|
CREATE TABLE t2 (primary key (a)) select * from t1;
|
|
# This should give warning
|
|
drop table if exists t2;
|
|
--error 1062
|
|
CREATE TEMPORARY TABLE t2 (primary key (a)) select * from t1;
|
|
# This should give warning
|
|
drop table if exists t2;
|
|
CREATE TABLE t2 (a int, b int, primary key (a));
|
|
BEGIN;
|
|
INSERT INTO t2 values(100,100);
|
|
--error 1062
|
|
CREATE TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1;
|
|
SELECT * from t2;
|
|
ROLLBACK;
|
|
SELECT * from t2;
|
|
TRUNCATE table t2;
|
|
--error 1062
|
|
INSERT INTO t2 select * from t1;
|
|
SELECT * from t2;
|
|
drop table t2;
|
|
|
|
CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a));
|
|
BEGIN;
|
|
INSERT INTO t2 values(100,100);
|
|
--error 1062
|
|
CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1;
|
|
SELECT * from t2;
|
|
COMMIT;
|
|
BEGIN;
|
|
INSERT INTO t2 values(101,101);
|
|
--error 1062
|
|
CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1;
|
|
SELECT * from t2;
|
|
ROLLBACK;
|
|
SELECT * from t2;
|
|
TRUNCATE table t2;
|
|
--error 1062
|
|
INSERT INTO t2 select * from t1;
|
|
SELECT * from t2;
|
|
drop table t1,t2;
|
|
|
|
#
|
|
# Bug#17530: Incorrect key truncation on table creation caused server crash.
|
|
#
|
|
create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb
|
|
character set utf8 collate utf8_general_ci;
|
|
insert into t1 values('aaa');
|
|
drop table t1;
|