Skip to content

Commit 846e5c9

Browse files
committed
Refactor to avoid cloning/unwrapping
1 parent 6798bcc commit 846e5c9

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

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

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

52345241
Ok(DataType::NamedTable(
52355242
ObjectName(vec![ObjectNamePart::Identifier(return_table_name)]),
5236-
table_column_defs.clone().unwrap(),
5243+
table_column_defs,
52375244
))
52385245
})?;
52395246

0 commit comments

Comments
 (0)