diff --git a/src/ast/mod.rs b/src/ast/mod.rs index 7666846c8..496731171 100644 --- a/src/ast/mod.rs +++ b/src/ast/mod.rs @@ -705,6 +705,7 @@ pub enum ShowCreateObject { Procedure, Table, Trigger, + View, } impl fmt::Display for ShowCreateObject { @@ -715,6 +716,7 @@ impl fmt::Display for ShowCreateObject { ShowCreateObject::Procedure => f.write_str("PROCEDURE"), ShowCreateObject::Table => f.write_str("TABLE"), ShowCreateObject::Trigger => f.write_str("TRIGGER"), + ShowCreateObject::View => f.write_str("VIEW"), } } } diff --git a/src/parser.rs b/src/parser.rs index 7a9ab607d..49f4a7292 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -3610,12 +3610,14 @@ impl<'a> Parser<'a> { Keyword::FUNCTION, Keyword::PROCEDURE, Keyword::EVENT, + Keyword::VIEW, ])? { Keyword::TABLE => Ok(ShowCreateObject::Table), Keyword::TRIGGER => Ok(ShowCreateObject::Trigger), Keyword::FUNCTION => Ok(ShowCreateObject::Function), Keyword::PROCEDURE => Ok(ShowCreateObject::Procedure), Keyword::EVENT => Ok(ShowCreateObject::Event), + Keyword::VIEW => Ok(ShowCreateObject::View), keyword => Err(ParserError::ParserError(format!( "Unable to map keyword to ShowCreateObject: {:?}", keyword diff --git a/tests/sqlparser_mysql.rs b/tests/sqlparser_mysql.rs index c16f29a36..b3c02de30 100644 --- a/tests/sqlparser_mysql.rs +++ b/tests/sqlparser_mysql.rs @@ -128,6 +128,7 @@ fn parse_show_create() { ShowCreateObject::Event, ShowCreateObject::Function, ShowCreateObject::Procedure, + ShowCreateObject::View, ] { assert_eq!( mysql_and_generic().verified_stmt(format!("SHOW CREATE {} myident", obj_type).as_str()),