File tree Expand file tree Collapse file tree 2 files changed +16
-1
lines changed Expand file tree Collapse file tree 2 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -2906,6 +2906,7 @@ impl<'a> Parser<'a> {
29062906 pub fn parse_number_value ( & mut self ) -> Result < Value , ParserError > {
29072907 match self . parse_value ( ) ? {
29082908 v @ Value :: Number ( _, _) => Ok ( v) ,
2909+ v @ Value :: Placeholder ( _) => Ok ( v) ,
29092910 _ => {
29102911 self . prev_token ( ) ;
29112912 self . expected ( "literal number" , self . peek_token ( ) )
@@ -4478,7 +4479,7 @@ impl<'a> Parser<'a> {
44784479 if self . parse_keyword ( Keyword :: ALL ) {
44794480 Ok ( None )
44804481 } else {
4481- Ok ( Some ( self . parse_expr ( ) ?) )
4482+ Ok ( Some ( Expr :: Value ( self . parse_number_value ( ) ?) ) )
44824483 }
44834484 }
44844485
Original file line number Diff line number Diff line change @@ -4852,6 +4852,20 @@ fn test_placeholder() {
48524852 ast. limit,
48534853 Some ( Expr :: Value ( Value :: Placeholder ( "$1" . into( ) ) ) )
48544854 ) ;
4855+
4856+ let sql = "SELECT * FROM student OFFSET $1" ;
4857+ let ast = dialects. verified_query ( sql) ;
4858+ assert_eq ! (
4859+ ast. offset. map( |offset| offset. value) ,
4860+ Some ( Expr :: Value ( Value :: Placeholder ( "$1" . into( ) ) ) )
4861+ ) ;
4862+
4863+ let sql = "SELECT * FROM student FETCH FIRST $1 ROWS ONLY" ;
4864+ let ast = dialects. verified_query ( sql) ;
4865+ assert_eq ! (
4866+ ast. fetch. map( |fetch| fetch. quantity) ,
4867+ Some ( Some ( Expr :: Value ( Value :: Placeholder ( "$1" . into( ) ) ) ) )
4868+ ) ;
48554869}
48564870
48574871#[ test]
You can’t perform that action at this time.
0 commit comments