Closed
Description
How to reproduce
use sqlparser::{
dialect::GenericDialect,
parser::{Parser, ParserError, ParserOptions},
};
fn main() -> Result<(), ParserError> {
let dialect = GenericDialect {};
let options = ParserOptions::new().with_trailing_commas(true);
let result = Parser::new(&dialect)
.with_options(options)
.try_with_sql("GRANT USAGE, SELECT ON SEQUENCE p TO u")?
.parse_statements();
println!("{:?}", result);
Ok(())
}
Output
Err(ParserError("Expected ON, found: SELECT at Line: 1, Column 14"))
Expected Output
Should parse successfully.
Ok([Grant { privileges: Actions([Usage, Select { columns: None }]), objects: Sequenc
es([ObjectName([Ident { value: "p", quote_style: None }])]), grantees: [Ident { valu
e: "u", quote_style: None }], with_grant_option: false, granted_by: None }])
Cause
parse_comma_separated
guesses that the comma is a trailing comma since it's followed by a reserved keyword (SELECT).
Metadata
Metadata
Assignees
Labels
No labels