mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-10101 Wrong error message of SELECT 1 UNION (SELECT 1 FROM t1 GROUP BY 1 WITH ROLLUP)
This commit is contained in:
@@ -930,17 +930,27 @@ ERROR HY000: Invalid use of group function
|
|||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a LIMIT 1;
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a LIMIT 1;
|
||||||
ERROR HY000: Invalid use of group function
|
ERROR HY000: Invalid use of group function
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
# UNION with a parethesized term with ROLLUP
|
# UNION with a parenthesized term with ROLLUP
|
||||||
CREATE TABLE t1 (a INT);
|
CREATE TABLE t1 (a INT);
|
||||||
INSERT INTO t1 VALUES (10),(20),(30);
|
INSERT INTO t1 VALUES (10),(20),(30);
|
||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP);
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP);
|
||||||
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
|
a
|
||||||
|
1
|
||||||
|
10
|
||||||
|
20
|
||||||
|
30
|
||||||
|
NULL
|
||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) LIMIT 1;
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) LIMIT 1;
|
||||||
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
|
a
|
||||||
|
1
|
||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) ORDER BY a LIMIT 1;
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) ORDER BY a LIMIT 1;
|
||||||
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
|
a
|
||||||
|
NULL
|
||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP LIMIT 2);
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP LIMIT 2);
|
||||||
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
|
a
|
||||||
|
1
|
||||||
|
10
|
||||||
|
20
|
||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY a);
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY a);
|
||||||
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
|
||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a));
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a));
|
||||||
@@ -1154,3 +1164,58 @@ ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
|
|||||||
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1) AS a FROM t1;
|
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1) AS a FROM t1;
|
||||||
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
MDEV-10101 Wrong error message of SELECT 1 UNION (SELECT 1 FROM t1 GROUP BY 1 WITH ROLLUP)
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (10),(20),(30);
|
||||||
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
10
|
||||||
|
20
|
||||||
|
30
|
||||||
|
NULL
|
||||||
|
(SELECT a FROM t1 GROUP BY a WITH ROLLUP) UNION SELECT 1;
|
||||||
|
a
|
||||||
|
10
|
||||||
|
20
|
||||||
|
30
|
||||||
|
NULL
|
||||||
|
1
|
||||||
|
SELECT a FROM t1 GROUP BY a WITH ROLLUP UNION SELECT 1;
|
||||||
|
a
|
||||||
|
10
|
||||||
|
20
|
||||||
|
30
|
||||||
|
NULL
|
||||||
|
1
|
||||||
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) LIMIT 1;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
(SELECT a FROM t1 GROUP BY a WITH ROLLUP) UNION SELECT 1 LIMIT 1;
|
||||||
|
a
|
||||||
|
10
|
||||||
|
SELECT a FROM t1 GROUP BY a WITH ROLLUP UNION SELECT 1 LIMIT 1;
|
||||||
|
a
|
||||||
|
10
|
||||||
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) ORDER BY a LIMIT 1;
|
||||||
|
a
|
||||||
|
NULL
|
||||||
|
(SELECT a FROM t1 GROUP BY a WITH ROLLUP) UNION SELECT 1 ORDER BY a LIMIT 1;
|
||||||
|
a
|
||||||
|
NULL
|
||||||
|
SELECT a FROM t1 GROUP BY a WITH ROLLUP UNION SELECT 1 ORDER BY a LIMIT 1;
|
||||||
|
a
|
||||||
|
NULL
|
||||||
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP LIMIT 2);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
10
|
||||||
|
20
|
||||||
|
(SELECT a FROM t1 GROUP BY a WITH ROLLUP LIMIT 2) UNION SELECT 1;
|
||||||
|
a
|
||||||
|
10
|
||||||
|
20
|
||||||
|
1
|
||||||
|
DROP TABLE t1;
|
||||||
|
@@ -1075,18 +1075,16 @@ SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER
|
|||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a LIMIT 1;
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a LIMIT 1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo # UNION with a parethesized term with ROLLUP
|
--echo # UNION with a parenthesized term with ROLLUP
|
||||||
|
|
||||||
CREATE TABLE t1 (a INT);
|
CREATE TABLE t1 (a INT);
|
||||||
INSERT INTO t1 VALUES (10),(20),(30);
|
INSERT INTO t1 VALUES (10),(20),(30);
|
||||||
--error ER_WRONG_USAGE
|
|
||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP);
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP);
|
||||||
--error ER_WRONG_USAGE
|
|
||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) LIMIT 1;
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) LIMIT 1;
|
||||||
--error ER_WRONG_USAGE
|
|
||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) ORDER BY a LIMIT 1;
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) ORDER BY a LIMIT 1;
|
||||||
--error ER_WRONG_USAGE
|
|
||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP LIMIT 2);
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP LIMIT 2);
|
||||||
|
|
||||||
|
|
||||||
--error ER_WRONG_USAGE
|
--error ER_WRONG_USAGE
|
||||||
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY a);
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY a);
|
||||||
--error ER_WRONG_USAGE
|
--error ER_WRONG_USAGE
|
||||||
@@ -1225,3 +1223,27 @@ SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a)) FROM t
|
|||||||
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1) AS a FROM t1;
|
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1) AS a FROM t1;
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo MDEV-10101 Wrong error message of SELECT 1 UNION (SELECT 1 FROM t1 GROUP BY 1 WITH ROLLUP)
|
||||||
|
--echo
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (10),(20),(30);
|
||||||
|
|
||||||
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP);
|
||||||
|
(SELECT a FROM t1 GROUP BY a WITH ROLLUP) UNION SELECT 1;
|
||||||
|
SELECT a FROM t1 GROUP BY a WITH ROLLUP UNION SELECT 1;
|
||||||
|
|
||||||
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) LIMIT 1;
|
||||||
|
(SELECT a FROM t1 GROUP BY a WITH ROLLUP) UNION SELECT 1 LIMIT 1;
|
||||||
|
SELECT a FROM t1 GROUP BY a WITH ROLLUP UNION SELECT 1 LIMIT 1;
|
||||||
|
|
||||||
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) ORDER BY a LIMIT 1;
|
||||||
|
(SELECT a FROM t1 GROUP BY a WITH ROLLUP) UNION SELECT 1 ORDER BY a LIMIT 1;
|
||||||
|
SELECT a FROM t1 GROUP BY a WITH ROLLUP UNION SELECT 1 ORDER BY a LIMIT 1;
|
||||||
|
|
||||||
|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP LIMIT 2);
|
||||||
|
(SELECT a FROM t1 GROUP BY a WITH ROLLUP LIMIT 2) UNION SELECT 1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
@@ -737,13 +737,6 @@ bool setup_select_in_parentheses(LEX *lex)
|
|||||||
my_parse_error(lex->thd, ER_SYNTAX_ERROR);
|
my_parse_error(lex->thd, ER_SYNTAX_ERROR);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
if (sel->linkage == UNION_TYPE &&
|
|
||||||
sel->olap != UNSPECIFIED_OLAP_TYPE &&
|
|
||||||
sel->master_unit()->fake_select_lex)
|
|
||||||
{
|
|
||||||
my_error(ER_WRONG_USAGE, MYF(0), "CUBE/ROLLUP", "ORDER BY");
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user