From 8a1187a51ce6f68e6ac3375ed0ad026f4c91e27e Mon Sep 17 00:00:00 2001 From: Mike Roberts <42875462+mrob95@users.noreply.github.com> Date: Mon, 18 Jul 2022 11:10:09 +0100 Subject: [PATCH] Add support for mysql 'SHOW CREATE VIEW' statement (#536) --- src/ast/mod.rs | 2 ++ src/parser.rs | 2 ++ tests/sqlparser_mysql.rs | 1 + 3 files changed, 5 insertions(+) diff --git a/src/ast/mod.rs b/src/ast/mod.rs index ae5893e1a..f428c1548 100644 --- a/src/ast/mod.rs +++ b/src/ast/mod.rs @@ -733,6 +733,7 @@ pub enum ShowCreateObject { Procedure, Table, Trigger, + View, } impl fmt::Display for ShowCreateObject { @@ -743,6 +744,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 741ebe7dc..72a3cfc3e 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -3636,12 +3636,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()),