Commit cd1afe0a authored by Alexander Barkov's avatar Alexander Barkov

MDEV-10588 sql_mode=ORACLE: TRUNCATE TABLE t1 [ {DROP|REUSE} STORAGE ]

parent c0576ba5
...@@ -356,3 +356,5 @@ CREATE TABLE notfound (notfound int); ...@@ -356,3 +356,5 @@ CREATE TABLE notfound (notfound int);
DROP TABLE notfound; DROP TABLE notfound;
CREATE TABLE raise (raise int); CREATE TABLE raise (raise int);
DROP TABLE raise; DROP TABLE raise;
CREATE TABLE reuse (reuse int);
DROP TABLE reuse;
SET sql_mode=ORACLE;
#
# MDEV-10588 sql_mode=ORACLE: TRUNCATE TABLE t1 [ {DROP|REUSE} STORAGE ]
#
CREATE TABLE t1 (a INT);
TRUNCATE TABLE t1 REUSE STORAGE;
TRUNCATE TABLE t1 DROP STORAGE;
DROP TABLE t1;
CREATE TABLE reuse (reuse INT);
DROP TABLE reuse;
SET sql_mode=ORACLE;
--echo #
--echo # MDEV-10588 sql_mode=ORACLE: TRUNCATE TABLE t1 [ {DROP|REUSE} STORAGE ]
--echo #
CREATE TABLE t1 (a INT);
TRUNCATE TABLE t1 REUSE STORAGE;
TRUNCATE TABLE t1 DROP STORAGE;
DROP TABLE t1;
# REUSE is actually a reserved word in Oracle.
# But we don't reserve it for MDEV-10588
CREATE TABLE reuse (reuse INT);
DROP TABLE reuse;
...@@ -256,3 +256,6 @@ DROP TABLE notfound; ...@@ -256,3 +256,6 @@ DROP TABLE notfound;
CREATE TABLE raise (raise int); CREATE TABLE raise (raise int);
DROP TABLE raise; DROP TABLE raise;
CREATE TABLE reuse (reuse int);
DROP TABLE reuse;
...@@ -517,6 +517,7 @@ static SYMBOL symbols[] = { ...@@ -517,6 +517,7 @@ static SYMBOL symbols[] = {
{ "RETURN", SYM(RETURN_SYM)}, { "RETURN", SYM(RETURN_SYM)},
{ "RETURNING", SYM(RETURNING_SYM)}, { "RETURNING", SYM(RETURNING_SYM)},
{ "RETURNS", SYM(RETURNS_SYM)}, { "RETURNS", SYM(RETURNS_SYM)},
{ "REUSE", SYM(REUSE_SYM)},
{ "REVERSE", SYM(REVERSE_SYM)}, { "REVERSE", SYM(REVERSE_SYM)},
{ "REVOKE", SYM(REVOKE)}, { "REVOKE", SYM(REVOKE)},
{ "RIGHT", SYM(RIGHT)}, { "RIGHT", SYM(RIGHT)},
......
...@@ -1369,6 +1369,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); ...@@ -1369,6 +1369,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%token RETURNING_SYM %token RETURNING_SYM
%token RETURNS_SYM /* SQL-2003-R */ %token RETURNS_SYM /* SQL-2003-R */
%token RETURN_SYM /* SQL-2003-R */ %token RETURN_SYM /* SQL-2003-R */
%token REUSE_SYM /* Oracle-R */
%token REVERSE_SYM %token REVERSE_SYM
%token REVOKE /* SQL-2003-R */ %token REVOKE /* SQL-2003-R */
%token RIGHT /* SQL-2003-R */ %token RIGHT /* SQL-2003-R */
...@@ -14365,6 +14366,7 @@ keyword_sp: ...@@ -14365,6 +14366,7 @@ keyword_sp:
| RESUME_SYM {} | RESUME_SYM {}
| RETURNED_SQLSTATE_SYM {} | RETURNED_SQLSTATE_SYM {}
| RETURNS_SYM {} | RETURNS_SYM {}
| REUSE_SYM {}
| REVERSE_SYM {} | REVERSE_SYM {}
| ROLE_SYM {} | ROLE_SYM {}
| ROLLUP_SYM {} | ROLLUP_SYM {}
......
...@@ -786,6 +786,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); ...@@ -786,6 +786,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%token RETURNING_SYM %token RETURNING_SYM
%token RETURNS_SYM /* SQL-2003-R */ %token RETURNS_SYM /* SQL-2003-R */
%token RETURN_SYM /* SQL-2003-R */ %token RETURN_SYM /* SQL-2003-R */
%token REUSE_SYM /* Oracle-R */
%token REVERSE_SYM %token REVERSE_SYM
%token REVOKE /* SQL-2003-R */ %token REVOKE /* SQL-2003-R */
%token RIGHT /* SQL-2003-R */ %token RIGHT /* SQL-2003-R */
...@@ -12341,6 +12342,13 @@ truncate: ...@@ -12341,6 +12342,13 @@ truncate:
if (lex->m_sql_cmd == NULL) if (lex->m_sql_cmd == NULL)
MYSQL_YYABORT; MYSQL_YYABORT;
} }
opt_truncate_table_storage_clause { }
;
opt_truncate_table_storage_clause:
/* Empty */
| DROP STORAGE_SYM
| REUSE_SYM STORAGE_SYM
; ;
opt_table_sym: opt_table_sym:
...@@ -14507,6 +14515,7 @@ keyword_sp: ...@@ -14507,6 +14515,7 @@ keyword_sp:
| RESUME_SYM {} | RESUME_SYM {}
| RETURNED_SQLSTATE_SYM {} | RETURNED_SQLSTATE_SYM {}
| RETURNS_SYM {} | RETURNS_SYM {}
| REUSE_SYM {} /* Oracle-R */
| REVERSE_SYM {} | REVERSE_SYM {}
| ROLE_SYM {} | ROLE_SYM {}
| ROLLUP_SYM {} | ROLLUP_SYM {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment