Commit 15853680 authored by Davi Arnaut's avatar Davi Arnaut
Browse files

Merge from mysql-5.0-bugteam into mysql-5.1-bugteam

parents 2bf160b0 5fd99149
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -1274,6 +1274,36 @@ tt
41
SET sql_mode=@save_sql_mode;
DROP TABLE t1, t2;
# 
# BUG#38072: Wrong result: HAVING not observed in a query with aggregate
# 
CREATE TABLE t1 (
pk int(11) NOT NULL AUTO_INCREMENT,
int_nokey int(11) NOT NULL,
int_key int(11) NOT NULL,
varchar_key varchar(1) NOT NULL,
varchar_nokey varchar(1) NOT NULL,
PRIMARY KEY (pk),
KEY int_key (int_key),
KEY varchar_key (varchar_key)
);
INSERT INTO t1 VALUES 
(1,5,5, 'h','h'),
(2,1,1, '{','{'),
(3,1,1, 'z','z'),
(4,8,8, 'x','x'),
(5,7,7, 'o','o'),
(6,3,3, 'p','p'),
(7,9,9, 'c','c'),
(8,0,0, 'k','k'),
(9,6,6, 't','t'),
(10,0,0,'c','c');
explain SELECT COUNT(varchar_key) AS X FROM t1 WHERE pk = 8 having 'foo'='bar';
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible HAVING
SELECT COUNT(varchar_key) AS X FROM t1 WHERE pk = 8 having 'foo'='bar';
X
drop table t1;
End of 5.0 tests
CREATE TABLE t1 (a INT, b INT,
PRIMARY KEY (a),
+2 −2
Original line number Diff line number Diff line
@@ -24,8 +24,8 @@ data directory='/not/existing'
  index directory='/not/existing'
);
Warnings:
Warning	1616	<DATA DIRECTORY> option ignored
Warning	1616	<INDEX DIRECTORY> option ignored
Warning	1618	<DATA DIRECTORY> option ignored
Warning	1618	<INDEX DIRECTORY> option ignored
show create table t2;
Table	Create Table
t2	CREATE TABLE `t2` (
+2 −2
Original line number Diff line number Diff line
@@ -101,8 +101,8 @@ data directory='/not/existing'
    index directory='/not/existing'
);
Warnings:
Warning	1616	<DATA DIRECTORY> option ignored
Warning	1616	<INDEX DIRECTORY> option ignored
Warning	1618	<DATA DIRECTORY> option ignored
Warning	1618	<INDEX DIRECTORY> option ignored
show create table t2;
Table	Create Table
t2	CREATE TABLE `t2` (
+5 −5
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@ drop database mysqltest;
create table t1 (a int not null) engine=myisam;
alter table t1 data directory="MYSQLTEST_VARDIR/tmp";
Warnings:
Warning	1616	<DATA DIRECTORY> option ignored
Warning	1618	<DATA DIRECTORY> option ignored
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
@@ -88,7 +88,7 @@ t1 CREATE TABLE `t1` (
alter table t1 add b int;
alter table t1 data directory="MYSQLTEST_VARDIR/log";
Warnings:
Warning	1616	<DATA DIRECTORY> option ignored
Warning	1618	<DATA DIRECTORY> option ignored
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
@@ -97,7 +97,7 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
alter table t1 index directory="MYSQLTEST_VARDIR/log";
Warnings:
Warning	1616	<INDEX DIRECTORY> option ignored
Warning	1618	<INDEX DIRECTORY> option ignored
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
@@ -164,8 +164,8 @@ ERROR HY000: Can't create/write to file 'TEST_DIR/master-data_var/t1.MYI' (Errco
SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE='NO_DIR_IN_CREATE';
CREATE TABLE t1(a INT) DATA DIRECTORY='MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY='MYSQLTEST_VARDIR/tmp';
Warnings:
Warning	1616	<DATA DIRECTORY> option ignored
Warning	1616	<INDEX DIRECTORY> option ignored
Warning	1618	<DATA DIRECTORY> option ignored
Warning	1618	<INDEX DIRECTORY> option ignored
DROP TABLE t1;
SET @@SQL_MODE=@OLD_SQL_MODE;
End of 5.1 tests
+29 −0
Original line number Diff line number Diff line
@@ -940,6 +940,35 @@ select (select sum(outr.a + t1.a) from t1 limit 1) as tt from t1 as outr order b
SET sql_mode=@save_sql_mode;
DROP TABLE t1, t2;

--echo # 
--echo # BUG#38072: Wrong result: HAVING not observed in a query with aggregate
--echo # 
CREATE TABLE t1 (
  pk int(11) NOT NULL AUTO_INCREMENT,
  int_nokey int(11) NOT NULL,
  int_key int(11) NOT NULL,
  varchar_key varchar(1) NOT NULL,
  varchar_nokey varchar(1) NOT NULL,
  PRIMARY KEY (pk),
  KEY int_key (int_key),
  KEY varchar_key (varchar_key)
);
INSERT INTO t1 VALUES 
(1,5,5, 'h','h'),
(2,1,1, '{','{'),
(3,1,1, 'z','z'),
(4,8,8, 'x','x'),
(5,7,7, 'o','o'),
(6,3,3, 'p','p'),
(7,9,9, 'c','c'),
(8,0,0, 'k','k'),
(9,6,6, 't','t'),
(10,0,0,'c','c');

explain SELECT COUNT(varchar_key) AS X FROM t1 WHERE pk = 8 having 'foo'='bar';
SELECT COUNT(varchar_key) AS X FROM t1 WHERE pk = 8 having 'foo'='bar';
drop table t1;
  
--echo End of 5.0 tests
# Bug #21174: Index degrades sort performance and 
#             optimizer does not honor IGNORE INDEX.
Loading