diff --git a/mysql-test/main/set_statement.result b/mysql-test/main/set_statement.result index c34e1171899..a12954927b6 100644 --- a/mysql-test/main/set_statement.result +++ b/mysql-test/main/set_statement.result @@ -1225,3 +1225,10 @@ set @rnd=1; select @rnd; @rnd 0 +create table t (a int); +SET sql_mode=ORACLE; +SET STATEMENT myisam_sort_buffer_size=800000 FOR OPTIMIZE TABLE t; +Table Op Msg_type Msg_text +test.t optimize status Table is already up to date +SET sql_mode=default; +drop table t; diff --git a/mysql-test/main/set_statement.test b/mysql-test/main/set_statement.test index cc361553cfd..e2a3288106b 100644 --- a/mysql-test/main/set_statement.test +++ b/mysql-test/main/set_statement.test @@ -1130,3 +1130,10 @@ while ($1) --enable_query_log --echo # @rnd should be 0 select @rnd; + +create table t (a int); +SET sql_mode=ORACLE; +SET STATEMENT myisam_sort_buffer_size=800000 FOR OPTIMIZE TABLE t; +SET sql_mode=default; +drop table t; + diff --git a/sql/sql_yacc_ora.yy b/sql/sql_yacc_ora.yy index 28a93806469..8cd2ad598ea 100644 --- a/sql/sql_yacc_ora.yy +++ b/sql/sql_yacc_ora.yy @@ -13176,10 +13176,11 @@ table_list: table_name: table_ident { - if (unlikely(!Select->add_table_to_list(thd, $1, NULL, - TL_OPTION_UPDATING, - YYPS->m_lock_type, - YYPS->m_mdl_type))) + if (!thd->lex->current_select_or_default()-> + add_table_to_list(thd, $1, NULL, + TL_OPTION_UPDATING, + YYPS->m_lock_type, + YYPS->m_mdl_type)) MYSQL_YYABORT; } ;