You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.7 KiB
68 lines
1.7 KiB
3 months ago
|
#
|
||
|
# BUG#46077 "wrong result: HAVING + ORDER BY + MyISAM + ICP
|
||
|
# returns extra rows"
|
||
|
#
|
||
|
CREATE TABLE `t1` (
|
||
|
`pk` int(11) NOT NULL AUTO_INCREMENT,
|
||
|
`int_key` int(11) NOT NULL,
|
||
|
PRIMARY KEY (`pk`),
|
||
|
KEY `int_key` (`int_key`)
|
||
|
) AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
|
||
|
Warnings:
|
||
|
Warning 1681 Integer display width is deprecated and will be removed in a future release.
|
||
|
Warning 1681 Integer display width is deprecated and will be removed in a future release.
|
||
|
INSERT INTO `t1` VALUES (1,7),(2,9);
|
||
|
SELECT `pk`, `int_key` field1
|
||
|
FROM t1 WHERE `pk` < 3
|
||
|
HAVING field1 < 8
|
||
|
ORDER BY field1;
|
||
|
pk field1
|
||
|
1 7
|
||
|
drop table `t1`;
|
||
|
#
|
||
|
# Bug#13406172: HAVING CLAUSE ON AGGREGATED COLUMN RETURNS
|
||
|
# WRONG RESULT WITH MYISAM
|
||
|
#
|
||
|
CREATE TABLE ot (i int) ENGINE=MyISAM;
|
||
|
INSERT INTO ot VALUES (1);
|
||
|
CREATE TABLE it (i int) ENGINE=MyISAM;
|
||
|
INSERT INTO it VALUES (7), (8);
|
||
|
SELECT COUNT(i) AS x
|
||
|
FROM ot
|
||
|
WHERE (i) IN (SELECT i FROM it WHERE it.i <= 4) OR i IS NULL
|
||
|
HAVING x > 1;
|
||
|
x
|
||
|
CREATE FUNCTION f(a INTEGER) RETURNS INTEGER DETERMINISTIC RETURN a*a;
|
||
|
SELECT BIT_AND(i) AS x
|
||
|
FROM ot
|
||
|
WHERE f(2) < 2
|
||
|
HAVING x < 2;
|
||
|
x
|
||
|
DROP TABLE it,ot;
|
||
|
DROP FUNCTION f;
|
||
|
# Bug#21067109: Assert 'join == __NULL' failed in ::optimize()
|
||
|
CREATE TABLE t1 (
|
||
|
col_int_key INT,
|
||
|
pk INT NOT NULL,
|
||
|
PRIMARY KEY (pk),
|
||
|
KEY col_int_key (col_int_key)
|
||
|
) ENGINE=MyISAM;
|
||
|
INSERT INTO t1 VALUES (6, 1);
|
||
|
CREATE TABLE t2 (
|
||
|
pk INT NOT NULL,
|
||
|
PRIMARY KEY (pk)
|
||
|
) ENGINE=MyISAM;
|
||
|
INSERT INTO t2 VALUES (5), (6), (7), (8);
|
||
|
SELECT col_int_key
|
||
|
FROM t1 AS alias1
|
||
|
HAVING (2, 7) NOT IN
|
||
|
(SELECT pk, SUM(pk)
|
||
|
FROM t1
|
||
|
WHERE pk <> (SELECT t2_alias1 .pk
|
||
|
FROM t2 AS t2_alias1 JOIN t2 AS t2_alias2
|
||
|
)
|
||
|
GROUP BY pk
|
||
|
);
|
||
|
ERROR 21000: Subquery returns more than 1 row
|
||
|
DROP TABLE t1, t2;
|