@@ -265,7 +265,7 @@ impl Dialect for SnowflakeDialect {
265265 let set = match parser. parse_one_of_keywords ( & [ Keyword :: SET , Keyword :: UNSET ] ) {
266266 Some ( Keyword :: SET ) => true ,
267267 Some ( Keyword :: UNSET ) => false ,
268- _ => return Some ( parser. expected ( "SET or UNSET" , parser. peek_token ( ) ) ) ,
268+ _ => return Some ( parser. expected_ref ( "SET or UNSET" , parser. peek_token_ref ( ) ) ) ,
269269 } ;
270270 return Some ( parse_alter_session ( parser, set) ) ;
271271 }
@@ -417,9 +417,9 @@ impl Dialect for SnowflakeDialect {
417417 }
418418
419419 fn get_next_precedence ( & self , parser : & Parser ) -> Option < Result < u8 , ParserError > > {
420- let token = parser. peek_token ( ) ;
420+ let token = parser. peek_token_ref ( ) ;
421421 // Snowflake supports the `:` cast operator unlike other dialects
422- match token. token {
422+ match & token. token {
423423 Token :: Colon => Some ( Ok ( self . prec_value ( Precedence :: DoubleColon ) ) ) ,
424424 _ => None ,
425425 }
@@ -715,9 +715,9 @@ fn parse_alter_dynamic_table(parser: &mut Parser) -> Result<Statement, ParserErr
715715 } else if parser. parse_keyword ( Keyword :: RESUME ) {
716716 AlterTableOperation :: Resume
717717 } else {
718- return parser. expected (
718+ return parser. expected_ref (
719719 "REFRESH, SUSPEND, or RESUME after ALTER DYNAMIC TABLE" ,
720- parser. peek_token ( ) ,
720+ parser. peek_token_ref ( ) ,
721721 ) ;
722722 } ;
723723
@@ -757,7 +757,10 @@ fn parse_alter_external_table(parser: &mut Parser) -> Result<Statement, ParserEr
757757 } ;
758758 AlterTableOperation :: Refresh { subpath }
759759 } else {
760- return parser. expected ( "REFRESH after ALTER EXTERNAL TABLE" , parser. peek_token ( ) ) ;
760+ return parser. expected_ref (
761+ "REFRESH after ALTER EXTERNAL TABLE" ,
762+ parser. peek_token_ref ( ) ,
763+ ) ;
761764 } ;
762765
763766 let end_token = if parser. peek_token_ref ( ) . token == Token :: SemiColon {
@@ -1242,7 +1245,7 @@ pub fn parse_stage_name_identifier(parser: &mut Parser) -> Result<Ident, ParserE
12421245 Token :: Minus => ident. push ( '-' ) ,
12431246 Token :: Number ( n, _) => ident. push_str ( n) ,
12441247 Token :: Word ( w) => ident. push_str ( & w. to_string ( ) ) ,
1245- _ => return parser. expected ( "stage name identifier" , parser. peek_token ( ) ) ,
1248+ _ => return parser. expected_ref ( "stage name identifier" , parser. peek_token_ref ( ) ) ,
12461249 }
12471250 }
12481251 Ok ( Ident :: new ( ident) )
@@ -1273,7 +1276,7 @@ pub fn parse_snowflake_stage_name(parser: &mut Parser) -> Result<ObjectName, Par
12731276/// Parses a `COPY INTO` statement. Snowflake has two variants, `COPY INTO <table>`
12741277/// and `COPY INTO <location>` which have different syntax.
12751278pub fn parse_copy_into ( parser : & mut Parser ) -> Result < Statement , ParserError > {
1276- let kind = match parser. peek_token ( ) . token {
1279+ let kind = match & parser. peek_token_ref ( ) . token {
12771280 // Indicates an internal stage
12781281 Token :: AtSign => CopyIntoSnowflakeKind :: Location ,
12791282 // Indicates an external stage, i.e. s3://, gcs:// or azure://
@@ -1346,7 +1349,7 @@ pub fn parse_copy_into(parser: &mut Parser) -> Result<Statement, ParserError> {
13461349 from_stage_alias = if parser. parse_keyword ( Keyword :: AS ) {
13471350 Some ( match parser. next_token ( ) . token {
13481351 Token :: Word ( w) => Ok ( Ident :: new ( w. value ) ) ,
1349- _ => parser. expected ( "stage alias" , parser. peek_token ( ) ) ,
1352+ _ => parser. expected_ref ( "stage alias" , parser. peek_token_ref ( ) ) ,
13501353 } ?)
13511354 } else {
13521355 None
@@ -1404,7 +1407,10 @@ pub fn parse_copy_into(parser: &mut Parser) -> Result<Statement, ParserError> {
14041407 // In `COPY INTO <location>` the copy options do not have a shared key
14051408 // like in `COPY INTO <table>`
14061409 Token :: Word ( key) => copy_options. push ( parser. parse_key_value_option ( & key) ?) ,
1407- _ => return parser. expected ( "another copy option, ; or EOF'" , parser. peek_token ( ) ) ,
1410+ _ => {
1411+ return parser
1412+ . expected_ref ( "another copy option, ; or EOF'" , parser. peek_token_ref ( ) )
1413+ }
14081414 }
14091415 }
14101416 }
@@ -1499,7 +1505,7 @@ fn parse_select_item_for_data_load(
14991505 // parse element
15001506 element = Some ( Ident :: new ( match parser. next_token ( ) . token {
15011507 Token :: Word ( w) => Ok ( w. value ) ,
1502- _ => parser. expected ( "file_col_num" , parser. peek_token ( ) ) ,
1508+ _ => parser. expected_ref ( "file_col_num" , parser. peek_token_ref ( ) ) ,
15031509 } ?) ) ;
15041510 }
15051511 _ => {
@@ -1512,7 +1518,7 @@ fn parse_select_item_for_data_load(
15121518 if parser. parse_keyword ( Keyword :: AS ) {
15131519 item_as = Some ( match parser. next_token ( ) . token {
15141520 Token :: Word ( w) => Ok ( Ident :: new ( w. value ) ) ,
1515- _ => parser. expected ( "column item alias" , parser. peek_token ( ) ) ,
1521+ _ => parser. expected_ref ( "column item alias" , parser. peek_token_ref ( ) ) ,
15161522 } ?) ;
15171523 }
15181524
@@ -1540,7 +1546,7 @@ fn parse_stage_params(parser: &mut Parser) -> Result<StageParamsObject, ParserEr
15401546 parser. expect_token ( & Token :: Eq ) ?;
15411547 url = Some ( match parser. next_token ( ) . token {
15421548 Token :: SingleQuotedString ( word) => Ok ( word) ,
1543- _ => parser. expected ( "a URL statement" , parser. peek_token ( ) ) ,
1549+ _ => parser. expected_ref ( "a URL statement" , parser. peek_token_ref ( ) ) ,
15441550 } ?)
15451551 }
15461552
@@ -1555,7 +1561,7 @@ fn parse_stage_params(parser: &mut Parser) -> Result<StageParamsObject, ParserEr
15551561 parser. expect_token ( & Token :: Eq ) ?;
15561562 endpoint = Some ( match parser. next_token ( ) . token {
15571563 Token :: SingleQuotedString ( word) => Ok ( word) ,
1558- _ => parser. expected ( "an endpoint statement" , parser. peek_token ( ) ) ,
1564+ _ => parser. expected_ref ( "an endpoint statement" , parser. peek_token_ref ( ) ) ,
15591565 } ?)
15601566 }
15611567
@@ -1795,7 +1801,7 @@ fn parse_multi_table_insert_into_clauses(
17951801 into_clauses. push ( parse_multi_table_insert_into_clause ( parser) ?) ;
17961802 }
17971803 if into_clauses. is_empty ( ) {
1798- return parser. expected ( "INTO clause in multi-table INSERT" , parser. peek_token ( ) ) ;
1804+ return parser. expected_ref ( "INTO clause in multi-table INSERT" , parser. peek_token_ref ( ) ) ;
17991805 }
18001806 Ok ( into_clauses)
18011807}
@@ -1874,9 +1880,9 @@ fn parse_multi_table_insert_when_clauses(
18741880 }
18751881
18761882 if when_clauses. is_empty ( ) {
1877- return parser. expected (
1883+ return parser. expected_ref (
18781884 "at least one WHEN clause in conditional multi-table INSERT" ,
1879- parser. peek_token ( ) ,
1885+ parser. peek_token_ref ( ) ,
18801886 ) ;
18811887 }
18821888
0 commit comments