diff options
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 1b50cb03572..dbc401b3ddc 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -2432,7 +2432,8 @@ order_clause: net_printf(lex->thd, ER_WRONG_USAGE, "UPDATE", "ORDER BY"); YYABORT; } - if (lex->select->olap != UNSPECIFIED_OLAP_TYPE) + if (lex->select->linkage != GLOBAL_OPTIONS_TYPE && + lex->select->olap != UNSPECIFIED_OLAP_TYPE) { net_printf(lex->thd, ER_WRONG_USAGE, "CUBE/ROLLUP", @@ -2458,7 +2459,8 @@ limit_clause: | LIMIT ULONG_NUM { LEX *lex=Lex; - if (lex->select->olap != UNSPECIFIED_OLAP_TYPE) + if (lex->select->linkage != GLOBAL_OPTIONS_TYPE && + lex->select->olap != UNSPECIFIED_OLAP_TYPE) { net_printf(lex->thd, ER_WRONG_USAGE, "CUBE/ROLLUP", "LIMIT"); @@ -2471,7 +2473,8 @@ limit_clause: | LIMIT ULONG_NUM ',' ULONG_NUM { LEX *lex=Lex; - if (lex->select->olap != UNSPECIFIED_OLAP_TYPE) + if (lex->select->linkage != GLOBAL_OPTIONS_TYPE && + lex->select->olap != UNSPECIFIED_OLAP_TYPE) { net_printf(lex->thd, ER_WRONG_USAGE, "CUBE/ROLLUP", "LIMIT"); |