File tree 2 files changed +16
-1
lines changed
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> {
2906
2906
pub fn parse_number_value ( & mut self ) -> Result < Value , ParserError > {
2907
2907
match self . parse_value ( ) ? {
2908
2908
v @ Value :: Number ( _, _) => Ok ( v) ,
2909
+ v @ Value :: Placeholder ( _) => Ok ( v) ,
2909
2910
_ => {
2910
2911
self . prev_token ( ) ;
2911
2912
self . expected ( "literal number" , self . peek_token ( ) )
@@ -4478,7 +4479,7 @@ impl<'a> Parser<'a> {
4478
4479
if self . parse_keyword ( Keyword :: ALL ) {
4479
4480
Ok ( None )
4480
4481
} else {
4481
- Ok ( Some ( self . parse_expr ( ) ?) )
4482
+ Ok ( Some ( Expr :: Value ( self . parse_number_value ( ) ?) ) )
4482
4483
}
4483
4484
}
4484
4485
Original file line number Diff line number Diff line change @@ -4852,6 +4852,20 @@ fn test_placeholder() {
4852
4852
ast. limit,
4853
4853
Some ( Expr :: Value ( Value :: Placeholder ( "$1" . into( ) ) ) )
4854
4854
) ;
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
+ ) ;
4855
4869
}
4856
4870
4857
4871
#[ test]
You can’t perform that action at this time.
0 commit comments