Skip to content

Commit 9c428b1

Browse files
committed
Refactor to avoid cloning/unwrapping
1 parent 96d9e44 commit 9c428b1

File tree

1 file changed

+25
-18
lines changed

1 file changed

+25
-18
lines changed

src/parser/mod.rs

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5210,33 +5210,40 @@ impl<'a> Parser<'a> {
52105210

52115211
let return_table = self.maybe_parse(|p| {
52125212
let return_table_name = p.parse_identifier()?;
5213-
let table_column_defs = if p.peek_keyword(Keyword::TABLE) {
5214-
match p.parse_data_type()? {
5215-
DataType::Table(t) => t,
5216-
_ => parser_err!(
5217-
"Expected table data type after TABLE keyword",
5218-
p.peek_token().span.start
5219-
)?,
5220-
}
5221-
} else {
5213+
5214+
if !p.peek_keyword(Keyword::TABLE) {
52225215
parser_err!(
52235216
"Expected TABLE keyword after return type",
52245217
p.peek_token().span.start
52255218
)?
5226-
};
5219+
}
52275220

5228-
if table_column_defs.is_none()
5229-
|| table_column_defs.clone().is_some_and(|tcd| tcd.is_empty())
5230-
{
5231-
parser_err!(
5232-
"Expected table column definitions after TABLE keyword",
5221+
let table_column_defs = match p.parse_data_type()? {
5222+
DataType::Table(maybe_table_column_defs) => match maybe_table_column_defs {
5223+
Some(table_column_defs) => {
5224+
if table_column_defs.is_empty() {
5225+
parser_err!(
5226+
"Expected table column definitions after TABLE keyword",
5227+
p.peek_token().span.start
5228+
)?
5229+
}
5230+
5231+
table_column_defs
5232+
}
5233+
None => parser_err!(
5234+
"Expected table column definitions after TABLE keyword",
5235+
p.peek_token().span.start
5236+
)?,
5237+
},
5238+
_ => parser_err!(
5239+
"Expected table data type after TABLE keyword",
52335240
p.peek_token().span.start
5234-
)?
5235-
}
5241+
)?,
5242+
};
52365243

52375244
Ok(DataType::NamedTable(
52385245
ObjectName(vec![ObjectNamePart::Identifier(return_table_name)]),
5239-
table_column_defs.clone().unwrap(),
5246+
table_column_defs,
52405247
))
52415248
})?;
52425249

0 commit comments

Comments
 (0)