MXS-2413 Parse 'DROP DATABASE [IF EXISTS] db' completely

This commit is contained in:
Johan Wikman
2019-03-29 10:09:38 +02:00
parent 24c763d701
commit 514dd96301
4 changed files with 41 additions and 12 deletions

View File

@ -615,7 +615,7 @@ columnid(A) ::= nm(X). {
// TODO: However, if not here then rules such as CAST need to be modified.
BINARY
/*CASCADE*/ CAST CLOSE COLUMNKW COLUMNS COMMENT CONCURRENT /*CONFLICT*/
DATA /*DATABASE*/ DEALLOCATE DEFERRED /*DESC*/ /*DETACH*/ DUMPFILE
DATA DATABASE DEALLOCATE DEFERRED /*DESC*/ /*DETACH*/ DUMPFILE
/*EACH*/ END ENGINE ENUM EXCLUSIVE /*EXPLAIN*/
FIRST FLUSH /*FOR*/ FORMAT
GLOBAL
@ -2861,6 +2861,12 @@ eq_opt ::= EQ.
default_opt ::= .
default_opt ::= DEFAULT.
////////////////////////// DROP DATABASE statement /////////////////////////////////////
//
cmd ::= DROP DATABASE ifexists id(X). {
maxscaleDrop(pParse, MXS_DROP_DATABASE, &X, NULL);
}
//////////////////////// CALL statement ////////////////////////////////////
//
cmd ::= call.

View File

@ -4094,6 +4094,7 @@ int sqlite3DbstatRegister(sqlite3*);
typedef enum mxs_drop
{
MXS_DROP_DATABASE,
MXS_DROP_FUNCTION,
MXS_DROP_SEQUENCE,
} mxs_drop_t;

View File

@ -216,8 +216,10 @@ static Keyword aKeywordTable[] = {
{ "CURRENT_TIMESTAMP","TK_CTIME_KW", ALWAYS },
#ifdef MAXSCALE
{ "DATA", "TK_DATA", ALWAYS },
#endif
{ "DATABASE", "TK_DATABASE", ALWAYS },
#else
{ "DATABASE", "TK_DATABASE", ATTACH },
#endif
#ifdef MAXSCALE
{ "DATABASES", "TK_DATABASES_KW", ALWAYS },
{ "DEALLOCATE", "TK_DEALLOCATE", ALWAYS },