Skip to content

Commit

Permalink
Allow foreign table constraint without columns (#1608)
Browse files Browse the repository at this point in the history
  • Loading branch information
ramnivas authored Dec 19, 2024
1 parent fac84d8 commit 6523dab
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 3 deletions.
6 changes: 4 additions & 2 deletions src/ast/ddl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -885,12 +885,14 @@ impl fmt::Display for TableConstraint {
} => {
write!(
f,
"{}FOREIGN KEY ({}) REFERENCES {}({})",
"{}FOREIGN KEY ({}) REFERENCES {}",
display_constraint_name(name),
display_comma_separated(columns),
foreign_table,
display_comma_separated(referred_columns),
)?;
if !referred_columns.is_empty() {
write!(f, "({})", display_comma_separated(referred_columns))?;
}
if let Some(action) = on_delete {
write!(f, " ON DELETE {action}")?;
}
Expand Down
2 changes: 1 addition & 1 deletion src/parser/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6830,7 +6830,7 @@ impl<'a> Parser<'a> {
let columns = self.parse_parenthesized_column_list(Mandatory, false)?;
self.expect_keyword(Keyword::REFERENCES)?;
let foreign_table = self.parse_object_name(false)?;
let referred_columns = self.parse_parenthesized_column_list(Mandatory, false)?;
let referred_columns = self.parse_parenthesized_column_list(Optional, false)?;
let mut on_delete = None;
let mut on_update = None;
loop {
Expand Down
1 change: 1 addition & 0 deletions tests/sqlparser_common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4167,6 +4167,7 @@ fn parse_alter_table_constraints() {
check_one("UNIQUE (id)");
check_one("FOREIGN KEY (foo, bar) REFERENCES AnotherTable(foo, bar)");
check_one("CHECK (end_date > start_date OR end_date IS NULL)");
check_one("CONSTRAINT fk FOREIGN KEY (lng) REFERENCES othertable4");

fn check_one(constraint_text: &str) {
match alter_table_op(verified_stmt(&format!(
Expand Down

0 comments on commit 6523dab

Please sign in to comment.