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 @@ -15023,7 +15023,8 @@ impl<'a> Parser<'a> {
1502315023
1502415024 /// Parse a FETCH clause
1502515025 pub fn parse_fetch(&mut self) -> Result<Fetch, ParserError> {
15026- self.expect_one_of_keywords(&[Keyword::FIRST, Keyword::NEXT])?;
15026+ let _ = self.parse_one_of_keywords(&[Keyword::FIRST, Keyword::NEXT]);
15027+
1502715028 let (quantity, percent) = if self
1502815029 .parse_one_of_keywords(&[Keyword::ROW, Keyword::ROWS])
1502915030 .is_some()
@@ -15032,16 +15033,16 @@ impl<'a> Parser<'a> {
1503215033 } else {
1503315034 let quantity = Expr::Value(self.parse_value()?);
1503415035 let percent = self.parse_keyword(Keyword::PERCENT);
15035- self.expect_one_of_keywords (&[Keyword::ROW, Keyword::ROWS])? ;
15036+ let _ = self.parse_one_of_keywords (&[Keyword::ROW, Keyword::ROWS]);
1503615037 (Some(quantity), percent)
1503715038 };
15039+
1503815040 let with_ties = if self.parse_keyword(Keyword::ONLY) {
1503915041 false
15040- } else if self.parse_keywords(&[Keyword::WITH, Keyword::TIES]) {
15041- true
1504215042 } else {
15043- return self.expected("one of ONLY or WITH TIES", self.peek_token());
15043+ self.parse_keywords(&[Keyword:: WITH, Keyword::TIES])
1504415044 };
15045+
1504515046 Ok(Fetch {
1504615047 with_ties,
1504715048 percent,
Original file line number Diff line number Diff line change @@ -4146,3 +4146,22 @@ END
41464146 assert_eq ! ( 2 , exception[ 1 ] . idents. len( ) ) ;
41474147 assert_eq ! ( 2 , exception[ 1 ] . statements. len( ) ) ;
41484148}
4149+
4150+ #[ test]
4151+ fn test_snowflake_fetch_clause_syntax ( ) {
4152+ let canonical = "SELECT c1 FROM fetch_test FETCH FIRST 2 ROWS ONLY" ;
4153+ snowflake ( ) . verified_only_select_with_canonical ( "SELECT c1 FROM fetch_test FETCH 2" , canonical) ;
4154+
4155+ snowflake ( )
4156+ . verified_only_select_with_canonical ( "SELECT c1 FROM fetch_test FETCH FIRST 2" , canonical) ;
4157+ snowflake ( )
4158+ . verified_only_select_with_canonical ( "SELECT c1 FROM fetch_test FETCH NEXT 2" , canonical) ;
4159+
4160+ snowflake ( )
4161+ . verified_only_select_with_canonical ( "SELECT c1 FROM fetch_test FETCH 2 ROW" , canonical) ;
4162+
4163+ snowflake ( ) . verified_only_select_with_canonical (
4164+ "SELECT c1 FROM fetch_test FETCH FIRST 2 ROWS" ,
4165+ canonical,
4166+ ) ;
4167+ }
You can’t perform that action at this time.
0 commit comments