summaryrefslogtreecommitdiff
path: root/mysql-test/r
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2008-05-07 09:58:21 +0400
committerunknown <sergefp@mysql.com>2008-05-07 09:58:21 +0400
commit87e5098249e9a60f7a562b611478a2210f9daa24 (patch)
treec0c403c46232519fc6282e931ace54ee41bf79ee /mysql-test/r
parentd1361c86e7e2d094c105c5991acff03b235f2482 (diff)
downloadmariadb-git-87e5098249e9a60f7a562b611478a2210f9daa24.tar.gz
BUG#35850 "Performance regression in 5.1.23/5.1.24"
- Disable the "prefer full scan on clustered primary key over full scan of any secondary key" rule introduced by BUG#35850. - Update test results accordingly (bk trigger: file this for BUG#35850) mysql-test/r/innodb.result: BUG#35850 "Performance regression in 5.1.23/5.1.24" - Update test results mysql-test/r/innodb_mysql.result: BUG#35850 "Performance regression in 5.1.23/5.1.24" - Testcase - Update test results mysql-test/r/join_outer_innodb.result: BUG#35850 "Performance regression in 5.1.23/5.1.24" - Update test results mysql-test/t/innodb_mysql.test: BUG#35850 "Performance regression in 5.1.23/5.1.24" - Testcase sql/sql_select.cc: BUG#35850 "Performance regression in 5.1.23/5.1.24" - Disable the "prefer full scan on clustered primary key over full scan of any secondary key" rule introduced by BUG#35850.
Diffstat (limited to 'mysql-test/r')
-rw-r--r--mysql-test/r/innodb.result30
-rw-r--r--mysql-test/r/innodb_mysql.result26
-rw-r--r--mysql-test/r/join_outer_innodb.result4
3 files changed, 35 insertions, 25 deletions
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index 0cd276852bf..c244c948211 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -925,7 +925,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL b 4 NULL # Using index
explain select a,b from t1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL PRIMARY 4 NULL #
+1 SIMPLE t1 index NULL b 4 NULL # Using index
explain select a,b,c from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL #
@@ -1166,14 +1166,14 @@ UPDATE t1 set a=a+100 where b between 2 and 3 and a < 1000;
SELECT * from t1;
a b
1 1
+102 2
+103 3
4 4
5 5
6 6
7 7
8 8
9 9
-102 2
-103 3
drop table t1;
CREATE TABLE t1 (a int not null primary key, b int not null, key (b)) engine=innodb;
CREATE TABLE t2 (a int not null primary key, b int not null, key (b)) engine=innodb;
@@ -1197,6 +1197,7 @@ a b
update t1,t2 set t1.a=t1.a+100 where t1.a=101;
select * from t1;
a b
+201 1
102 2
103 3
104 4
@@ -1208,11 +1209,10 @@ a b
110 10
111 11
112 12
-201 1
update t1,t2 set t1.b=t1.b+10 where t1.b=2;
select * from t1;
a b
-102 12
+201 1
103 3
104 4
105 5
@@ -1222,34 +1222,34 @@ a b
109 9
110 10
111 11
+102 12
112 12
-201 1
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;
select * from t1;
a b
-102 12
+201 1
103 5
104 6
-105 7
106 6
+105 7
107 7
108 8
109 9
110 10
111 11
+102 12
112 12
-201 1
select * from t2;
a b
1 1
2 2
-3 13
-4 14
-5 15
6 6
7 7
8 8
9 9
+3 13
+4 14
+5 15
drop table t1,t2;
CREATE TABLE t2 ( NEXT_T BIGINT NOT NULL PRIMARY KEY) ENGINE=MyISAM;
CREATE TABLE t1 ( B_ID INTEGER NOT NULL PRIMARY KEY) ENGINE=InnoDB;
@@ -1300,11 +1300,11 @@ insert into t1 (id) values (null),(null),(null),(null),(null);
update t1 set fk=69 where fk is null order by id limit 1;
SELECT * from t1;
id fk
-1 69
2 NULL
3 NULL
4 NULL
5 NULL
+1 69
drop table t1;
create table t1 (a int not null, b int not null, key (a));
insert into t1 values (1,1),(1,2),(1,3),(3,1),(3,2),(3,3),(3,1),(3,2),(3,3),(2,1),(2,2),(2,3);
@@ -2438,8 +2438,8 @@ insert into t1 (b) values (1);
replace into t1 (b) values (2), (1), (3);
select * from t1;
a b
-2 2
3 1
+2 2
4 3
truncate table t1;
insert into t1 (b) values (1);
@@ -2448,8 +2448,8 @@ replace into t1 (b) values (1);
replace into t1 (b) values (3);
select * from t1;
a b
-2 2
3 1
+2 2
4 3
drop table t1;
create table t1 (rowid int not null auto_increment, val int not null,primary
diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result
index 8008fd50a90..ab279933853 100644
--- a/mysql-test/r/innodb_mysql.result
+++ b/mysql-test/r/innodb_mysql.result
@@ -355,13 +355,13 @@ EXPLAIN
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
WHERE t1.name LIKE 'A%';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index PRIMARY,name PRIMARY 4 NULL 3 Using where
+1 SIMPLE t1 index PRIMARY,name name 23 NULL 3 Using where; Using index
1 SIMPLE t2 ref fkey fkey 5 test.t1.id 1 Using where; Using index
EXPLAIN
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
WHERE t1.name LIKE 'A%' OR FALSE;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 index NULL PRIMARY 4 NULL 5
+1 SIMPLE t2 index NULL fkey 5 NULL 5 Using index
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.fkey 1 Using where
DROP TABLE t1,t2;
CREATE TABLE t1 (
@@ -1268,11 +1268,11 @@ select_type SIMPLE
table t1
type index
possible_keys NULL
-key PRIMARY
-key_len 4
+key b
+key_len 5
ref NULL
rows 3
-Extra Using filesort
+Extra Using index; Using filesort
SELECT * FROM t1 ORDER BY b ASC, a DESC;
a b
1 1
@@ -1284,11 +1284,11 @@ select_type SIMPLE
table t1
type index
possible_keys NULL
-key PRIMARY
-key_len 4
+key b
+key_len 5
ref NULL
rows 3
-Extra Using filesort
+Extra Using index; Using filesort
SELECT * FROM t1 ORDER BY b DESC, a ASC;
a b
2 2
@@ -1654,3 +1654,13 @@ ALTER TABLE t1 CHANGE id id2 INT;
DROP TABLE t2;
DROP TABLE t1;
End of 5.1 tests
+drop table if exists t1, t2, t3;
+create table t1(a int);
+insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (a int, b int, pk int, key(a,b), primary key(pk)) engine=innodb;
+insert into t2 select @a:=A.a+10*(B.a + 10*C.a),@a, @a from t1 A, t1 B, t1 C;
+this must use key 'a', not PRIMARY:
+explain select a from t2 where a=b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL a 10 NULL # Using where; Using index
+drop table t1, t2;
diff --git a/mysql-test/r/join_outer_innodb.result b/mysql-test/r/join_outer_innodb.result
index 24a11b12b03..e8a2d6f668b 100644
--- a/mysql-test/r/join_outer_innodb.result
+++ b/mysql-test/r/join_outer_innodb.result
@@ -8,12 +8,12 @@ EXPLAIN
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
WHERE t1.name LIKE 'A%';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index PRIMARY,name PRIMARY 4 NULL 3 Using where
+1 SIMPLE t1 index PRIMARY,name name 23 NULL 3 Using where; Using index
1 SIMPLE t2 ref fkey fkey 5 test.t1.id 1 Using where; Using index
EXPLAIN
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
WHERE t1.name LIKE 'A%' OR FALSE;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 index NULL PRIMARY 4 NULL 5
+1 SIMPLE t2 index NULL fkey 5 NULL 5 Using index
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.fkey 1 Using where
DROP TABLE t1,t2;