Skip to content

Commit e5d77c6

Browse files
committed
simplifications
1 parent e29b564 commit e5d77c6

File tree

1 file changed

+9
-26
lines changed

1 file changed

+9
-26
lines changed

src/parser.rs

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -883,29 +883,8 @@ impl<'a> Parser<'a> {
883883
let args = self.parse_optional_args()?;
884884
let over = if self.parse_keyword(Keyword::OVER) {
885885
if self.consume_token(&Token::LParen) {
886-
let partition_by = if self.parse_keywords(&[Keyword::PARTITION, Keyword::BY]) {
887-
self.parse_comma_separated(Parser::parse_expr)?
888-
} else {
889-
vec![]
890-
};
891-
let order_by = if self.parse_keywords(&[Keyword::ORDER, Keyword::BY]) {
892-
self.parse_comma_separated(Parser::parse_order_by_expr)?
893-
} else {
894-
vec![]
895-
};
896-
let window_frame = if !self.consume_token(&Token::RParen) {
897-
let window_frame = self.parse_window_frame()?;
898-
self.expect_token(&Token::RParen)?;
899-
Some(window_frame)
900-
} else {
901-
None
902-
};
903-
904-
Some(WindowType::WindowSpec(WindowSpec {
905-
partition_by,
906-
order_by,
907-
window_frame,
908-
}))
886+
let window_spec = self.parse_window_args()?;
887+
Some(WindowType::WindowSpec(window_spec))
909888
} else {
910889
Some(WindowType::NamedWindow(self.parse_identifier()?))
911890
}
@@ -6948,6 +6927,11 @@ impl<'a> Parser<'a> {
69486927
let ident = self.parse_identifier()?;
69496928
self.expect_keyword(Keyword::AS)?;
69506929
self.expect_token(&Token::LParen)?;
6930+
let window_spec = self.parse_window_args()?;
6931+
Ok(IdentWindow(ident, window_spec))
6932+
}
6933+
6934+
pub fn parse_window_args(&mut self) -> Result<WindowSpec, ParserError> {
69516935
let partition_by = if self.parse_keywords(&[Keyword::PARTITION, Keyword::BY]) {
69526936
self.parse_comma_separated(Parser::parse_expr)?
69536937
} else {
@@ -6965,12 +6949,11 @@ impl<'a> Parser<'a> {
69656949
} else {
69666950
None
69676951
};
6968-
let over = WindowSpec {
6952+
Ok(WindowSpec {
69696953
partition_by,
69706954
order_by,
69716955
window_frame,
6972-
};
6973-
Ok(IdentWindow(ident, over))
6956+
})
69746957
}
69756958
}
69766959

0 commit comments

Comments
 (0)