Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
43582593
Commit
43582593
authored
Dec 14, 2007
by
igor@olga.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug27848
parents
8be07b88
f25e30eb
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
105 additions
and
1 deletion
+105
-1
mysql-test/r/union.result
mysql-test/r/union.result
+51
-0
mysql-test/t/union.test
mysql-test/t/union.test
+44
-0
sql/sql_yacc.yy
sql/sql_yacc.yy
+10
-1
No files found.
mysql-test/r/union.result
View file @
43582593
...
...
@@ -1389,4 +1389,55 @@ select @var;
1
(select 2) union (select 1 into @var);
ERROR 42000: Result consisted of more than one row
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (10), (20);
CREATE TABLE t2 (b int);
INSERT INTO t2 VALUES (10), (50), (50);
SELECT a,1 FROM t1
UNION
SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP
ORDER BY a;
a 1
NULL 3
10 1
20 1
50 2
SELECT a,1 FROM t1
UNION
SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP
ORDER BY a DESC;
a 1
50 2
20 1
10 1
NULL 3
SELECT a,1 FROM t1
UNION
SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP
ORDER BY a ASC LIMIT 3;
a 1
NULL 3
10 1
20 1
SELECT a,1 FROM t1
UNION ALL
SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP
ORDER BY a DESC;
a 1
50 2
20 1
10 1
10 1
NULL 3
SELECT a,1 FROM t1
UNION
(SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP ORDER BY a);
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
SELECT a,1 FROM t1
UNION ALL
SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP ORDER BY a
UNION
SELECT 1,1;
ERROR HY000: Incorrect usage of UNION and ORDER BY
DROP TABLE t1,t2;
End of 5.0 tests
mysql-test/t/union.test
View file @
43582593
...
...
@@ -877,4 +877,48 @@ DROP TABLE t1;
select
@
var
;
--
error
1172
(
select
2
)
union
(
select
1
into
@
var
);
#
# Bug#27848: order-by of union clashes with rollup of select part
#
CREATE
TABLE
t1
(
a
int
);
INSERT
INTO
t1
VALUES
(
10
),
(
20
);
CREATE
TABLE
t2
(
b
int
);
INSERT
INTO
t2
VALUES
(
10
),
(
50
),
(
50
);
SELECT
a
,
1
FROM
t1
UNION
SELECT
b
,
COUNT
(
*
)
FROM
t2
GROUP
BY
b
WITH
ROLLUP
ORDER
BY
a
;
SELECT
a
,
1
FROM
t1
UNION
SELECT
b
,
COUNT
(
*
)
FROM
t2
GROUP
BY
b
WITH
ROLLUP
ORDER
BY
a
DESC
;
SELECT
a
,
1
FROM
t1
UNION
SELECT
b
,
COUNT
(
*
)
FROM
t2
GROUP
BY
b
WITH
ROLLUP
ORDER
BY
a
ASC
LIMIT
3
;
SELECT
a
,
1
FROM
t1
UNION
ALL
SELECT
b
,
COUNT
(
*
)
FROM
t2
GROUP
BY
b
WITH
ROLLUP
ORDER
BY
a
DESC
;
--
error
ER_WRONG_USAGE
SELECT
a
,
1
FROM
t1
UNION
(
SELECT
b
,
COUNT
(
*
)
FROM
t2
GROUP
BY
b
WITH
ROLLUP
ORDER
BY
a
);
--
error
ER_WRONG_USAGE
SELECT
a
,
1
FROM
t1
UNION
ALL
SELECT
b
,
COUNT
(
*
)
FROM
t2
GROUP
BY
b
WITH
ROLLUP
ORDER
BY
a
UNION
SELECT
1
,
1
;
DROP
TABLE
t1
,
t2
;
--
echo
End
of
5.0
tests
sql/sql_yacc.yy
View file @
43582593
...
...
@@ -4211,6 +4211,14 @@ select_paren:
my_parse_error(ER(ER_SYNTAX_ERROR));
MYSQL_YYABORT;
}
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");
MYSQL_YYABORT;
}
/* select in braces, can't contain global parameters */
if (sel->master_unit()->fake_select_lex)
sel->master_unit()->global_parameters=
...
...
@@ -6165,7 +6173,8 @@ order_clause:
SELECT_LEX *sel= lex->current_select;
SELECT_LEX_UNIT *unit= sel-> master_unit();
if (sel->linkage != GLOBAL_OPTIONS_TYPE &&
sel->olap != UNSPECIFIED_OLAP_TYPE)
sel->olap != UNSPECIFIED_OLAP_TYPE &&
(sel->linkage != UNION_TYPE || sel->braces))
{
my_error(ER_WRONG_USAGE, MYF(0),
"CUBE/ROLLUP", "ORDER BY");
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment