File tree 2 files changed +12
-11
lines changed
2 files changed +12
-11
lines changed Original file line number Diff line number Diff line change @@ -795,17 +795,12 @@ impl Parser {
795
795
} else {
796
796
return self . expected ( "column name or constraint definition" , self . peek_token ( ) ) ;
797
797
}
798
- match self . next_token ( ) {
799
- Some ( Token :: Comma ) => { }
800
- Some ( Token :: RParen ) => {
801
- break ;
802
- }
803
- other => {
804
- return parser_err ! ( format!(
805
- "Expected ',' or ')' after column definition but found {:?}" ,
806
- other
807
- ) ) ;
808
- }
798
+ let comma = self . consume_token ( & Token :: Comma ) ;
799
+ if self . consume_token ( & Token :: RParen ) {
800
+ // allow a trailing comma, even though it's not in standard
801
+ break ;
802
+ } else if !comma {
803
+ return self . expected ( "',' or ')' after column definition" , self . peek_token ( ) ) ;
809
804
}
810
805
}
811
806
Original file line number Diff line number Diff line change @@ -573,6 +573,12 @@ fn parse_create_table() {
573
573
}
574
574
}
575
575
576
+ #[ test]
577
+ fn parse_create_table_trailing_comma ( ) {
578
+ let sql = "CREATE TABLE foo (bar int,)" ;
579
+ all_dialects ( ) . one_statement_parses_to ( sql, "CREATE TABLE foo (bar int)" ) ;
580
+ }
581
+
576
582
#[ test]
577
583
fn parse_create_external_table ( ) {
578
584
let sql = "CREATE EXTERNAL TABLE uk_cities (\
You can’t perform that action at this time.
0 commit comments