diff options
author | unknown <igor@olga.mysql.com> | 2007-12-14 18:17:52 -0800 |
---|---|---|
committer | unknown <igor@olga.mysql.com> | 2007-12-14 18:17:52 -0800 |
commit | d8babe1ae29065af5fa1c11f16e8db52c280e5ca (patch) | |
tree | ef5fecff402f9feaabb2c97c84f93428c60d28a1 /sql | |
parent | 12504d906bfabdd64938e313d3ac2d88b490834d (diff) | |
parent | 3f6073ae63f9cb738cb6f0a6a8136e1d21ba0e1b (diff) | |
download | mariadb-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.yy | 11 |
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"); |