Skip to content

Commit 764e28d

Browse files
committed
Refactor to avoid cloning/unwrapping
1 parent 999964c commit 764e28d

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
@@ -5206,33 +5206,40 @@ impl<'a> Parser<'a> {
52065206

52075207
let return_table = self.maybe_parse(|p| {
52085208
let return_table_name = p.parse_identifier()?;
5209-
let table_column_defs = if p.peek_keyword(Keyword::TABLE) {
5210-
match p.parse_data_type()? {
5211-
DataType::Table(t) => t,
5212-
_ => parser_err!(
5213-
"Expected table data type after TABLE keyword",
5214-
p.peek_token().span.start
5215-
)?,
5216-
}
5217-
} else {
5209+
5210+
if !p.peek_keyword(Keyword::TABLE) {
52185211
parser_err!(
52195212
"Expected TABLE keyword after return type",
52205213
p.peek_token().span.start
52215214
)?
5222-
};
5215+
}
52235216

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

52335240
Ok(DataType::NamedTable(
52345241
ObjectName(vec![ObjectNamePart::Identifier(return_table_name)]),
5235-
table_column_defs.clone().unwrap(),
5242+
table_column_defs,
52365243
))
52375244
})?;
52385245

0 commit comments

Comments
 (0)