diff --git a/mysql-test/suite/compat/oracle/r/versioning.result b/mysql-test/suite/compat/oracle/r/versioning.result index ebedcf0f462..bbecfa1f6b1 100644 --- a/mysql-test/suite/compat/oracle/r/versioning.result +++ b/mysql-test/suite/compat/oracle/r/versioning.result @@ -14,3 +14,11 @@ SELECT * FROM t1 FOR SYSTEM_TIME AS OF (NOW()+INTERVAL 10 YEAR); a 20 DROP TABLE t1; +# +# MDEV-17959 Assertion `opt_bootstrap || mysql_parse_status || thd->lex->select_stack_top == 0' failed in parse_sql upon DELETE HISTORY under ORACLE mode +# +SET SQL_MODE= ORACLE; +CREATE TABLE t1 (a INT); +DELETE HISTORY FROM t1; +ERROR HY000: Table `t1` is not system-versioned +DROP TABLE t1; diff --git a/mysql-test/suite/compat/oracle/t/versioning.test b/mysql-test/suite/compat/oracle/t/versioning.test index d70058c56e4..abcca8c588a 100644 --- a/mysql-test/suite/compat/oracle/t/versioning.test +++ b/mysql-test/suite/compat/oracle/t/versioning.test @@ -11,3 +11,13 @@ INSERT INTO t1 VALUES (20); SELECT * FROM t1 FOR SYSTEM_TIME ALL; SELECT * FROM t1 FOR SYSTEM_TIME AS OF (NOW()+INTERVAL 10 YEAR); DROP TABLE t1; + +--echo # +--echo # MDEV-17959 Assertion `opt_bootstrap || mysql_parse_status || thd->lex->select_stack_top == 0' failed in parse_sql upon DELETE HISTORY under ORACLE mode +--echo # + +SET SQL_MODE= ORACLE; +CREATE TABLE t1 (a INT); +--error ER_VERS_NOT_VERSIONED +DELETE HISTORY FROM t1; +DROP TABLE t1; diff --git a/sql/sql_yacc_ora.yy b/sql/sql_yacc_ora.yy index 5708962aabe..a7537c971ce 100644 --- a/sql/sql_yacc_ora.yy +++ b/sql/sql_yacc_ora.yy @@ -13679,6 +13679,7 @@ delete_part2: | HISTORY_SYM delete_single_table opt_delete_system_time { Lex->last_table()->vers_conditions= Lex->vers_conditions; + Lex->pop_select(); //main select } ;