File tree Expand file tree Collapse file tree 2 files changed +25
-5
lines changed
Expand file tree Collapse file tree 2 files changed +25
-5
lines changed Original file line number Diff line number Diff line change @@ -15055,7 +15055,8 @@ impl<'a> Parser<'a> {
1505515055
1505615056 /// Parse a FETCH clause
1505715057 pub fn parse_fetch(&mut self) -> Result<Fetch, ParserError> {
15058- self.expect_one_of_keywords(&[Keyword::FIRST, Keyword::NEXT])?;
15058+ let _ = self.parse_one_of_keywords(&[Keyword::FIRST, Keyword::NEXT]);
15059+
1505915060 let (quantity, percent) = if self
1506015061 .parse_one_of_keywords(&[Keyword::ROW, Keyword::ROWS])
1506115062 .is_some()
@@ -15064,16 +15065,16 @@ impl<'a> Parser<'a> {
1506415065 } else {
1506515066 let quantity = Expr::Value(self.parse_value()?);
1506615067 let percent = self.parse_keyword(Keyword::PERCENT);
15067- self.expect_one_of_keywords (&[Keyword::ROW, Keyword::ROWS])? ;
15068+ let _ = self.parse_one_of_keywords (&[Keyword::ROW, Keyword::ROWS]);
1506815069 (Some(quantity), percent)
1506915070 };
15071+
1507015072 let with_ties = if self.parse_keyword(Keyword::ONLY) {
1507115073 false
15072- } else if self.parse_keywords(&[Keyword::WITH, Keyword::TIES]) {
15073- true
1507415074 } else {
15075- return self.expected("one of ONLY or WITH TIES", self.peek_token());
15075+ self.parse_keywords(&[Keyword:: WITH, Keyword::TIES])
1507615076 };
15077+
1507715078 Ok(Fetch {
1507815079 with_ties,
1507915080 percent,
Original file line number Diff line number Diff line change @@ -4165,3 +4165,22 @@ END
41654165 assert_eq ! ( 2 , exception[ 1 ] . idents. len( ) ) ;
41664166 assert_eq ! ( 2 , exception[ 1 ] . statements. len( ) ) ;
41674167}
4168+
4169+ #[ test]
4170+ fn test_snowflake_fetch_clause_syntax ( ) {
4171+ let canonical = "SELECT c1 FROM fetch_test FETCH FIRST 2 ROWS ONLY" ;
4172+ snowflake ( ) . verified_only_select_with_canonical ( "SELECT c1 FROM fetch_test FETCH 2" , canonical) ;
4173+
4174+ snowflake ( )
4175+ . verified_only_select_with_canonical ( "SELECT c1 FROM fetch_test FETCH FIRST 2" , canonical) ;
4176+ snowflake ( )
4177+ . verified_only_select_with_canonical ( "SELECT c1 FROM fetch_test FETCH NEXT 2" , canonical) ;
4178+
4179+ snowflake ( )
4180+ . verified_only_select_with_canonical ( "SELECT c1 FROM fetch_test FETCH 2 ROW" , canonical) ;
4181+
4182+ snowflake ( ) . verified_only_select_with_canonical (
4183+ "SELECT c1 FROM fetch_test FETCH FIRST 2 ROWS" ,
4184+ canonical,
4185+ ) ;
4186+ }
You can’t perform that action at this time.
0 commit comments