summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <igor@olga.mysql.com>2007-12-14 18:17:52 -0800
committerunknown <igor@olga.mysql.com>2007-12-14 18:17:52 -0800
commitd8babe1ae29065af5fa1c11f16e8db52c280e5ca (patch)
treeef5fecff402f9feaabb2c97c84f93428c60d28a1 /sql
parent12504d906bfabdd64938e313d3ac2d88b490834d (diff)
parent3f6073ae63f9cb738cb6f0a6a8136e1d21ba0e1b (diff)
downloadmariadb-git-d8babe1ae29065af5fa1c11f16e8db52c280e5ca.tar.gz
Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug27848
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_yacc.yy11
1 files changed, 10 insertions, 1 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index bd85ce55edb..170ae1b889b 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -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");