mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-07-08 01:15:00 +00:00
added ability to parse extension to parse_comment inside postgres dialect (#1451)
This commit is contained in:
parent
e849f7f143
commit
8ccb87a835
3 changed files with 21 additions and 0 deletions
|
@ -1855,6 +1855,7 @@ impl fmt::Display for ShowCreateObject {
|
|||
pub enum CommentObject {
|
||||
Column,
|
||||
Table,
|
||||
Extension,
|
||||
}
|
||||
|
||||
impl fmt::Display for CommentObject {
|
||||
|
@ -1862,6 +1863,7 @@ impl fmt::Display for CommentObject {
|
|||
match self {
|
||||
CommentObject::Column => f.write_str("COLUMN"),
|
||||
CommentObject::Table => f.write_str("TABLE"),
|
||||
CommentObject::Extension => f.write_str("EXTENSION"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -205,6 +205,10 @@ pub fn parse_comment(parser: &mut Parser) -> Result<Statement, ParserError> {
|
|||
let object_name = parser.parse_object_name(false)?;
|
||||
(CommentObject::Table, object_name)
|
||||
}
|
||||
Token::Word(w) if w.keyword == Keyword::EXTENSION => {
|
||||
let object_name = parser.parse_object_name(false)?;
|
||||
(CommentObject::Extension, object_name)
|
||||
}
|
||||
_ => parser.expected("comment object_type", token)?,
|
||||
};
|
||||
|
||||
|
|
|
@ -2902,6 +2902,21 @@ fn parse_comments() {
|
|||
_ => unreachable!(),
|
||||
}
|
||||
|
||||
match pg().verified_stmt("COMMENT ON EXTENSION plpgsql IS 'comment'") {
|
||||
Statement::Comment {
|
||||
object_type,
|
||||
object_name,
|
||||
comment: Some(comment),
|
||||
if_exists,
|
||||
} => {
|
||||
assert_eq!("comment", comment);
|
||||
assert_eq!("plpgsql", object_name.to_string());
|
||||
assert_eq!(CommentObject::Extension, object_type);
|
||||
assert!(!if_exists);
|
||||
}
|
||||
_ => unreachable!(),
|
||||
}
|
||||
|
||||
match pg().verified_stmt("COMMENT ON TABLE public.tab IS 'comment'") {
|
||||
Statement::Comment {
|
||||
object_type,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue