mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-10-20 10:41:47 +00:00
Add support for DuckDB functions named arguments with assignment operator (#1195)
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
This commit is contained in:
parent
e747c9c2af
commit
14b33ac493
4 changed files with 56 additions and 6 deletions
|
@ -117,8 +117,8 @@ pub enum Token {
|
|||
Colon,
|
||||
/// DoubleColon `::` (used for casting in PostgreSQL)
|
||||
DoubleColon,
|
||||
/// Assignment `:=` (used for keyword argument in DuckDB macros)
|
||||
DuckAssignment,
|
||||
/// Assignment `:=` (used for keyword argument in DuckDB macros and some functions, and for variable declarations in DuckDB and Snowflake)
|
||||
Assignment,
|
||||
/// SemiColon `;` used as separator for COPY and payload
|
||||
SemiColon,
|
||||
/// Backslash `\` used in terminating the COPY payload with `\.`
|
||||
|
@ -239,7 +239,7 @@ impl fmt::Display for Token {
|
|||
Token::Period => f.write_str("."),
|
||||
Token::Colon => f.write_str(":"),
|
||||
Token::DoubleColon => f.write_str("::"),
|
||||
Token::DuckAssignment => f.write_str(":="),
|
||||
Token::Assignment => f.write_str(":="),
|
||||
Token::SemiColon => f.write_str(";"),
|
||||
Token::Backslash => f.write_str("\\"),
|
||||
Token::LBracket => f.write_str("["),
|
||||
|
@ -959,7 +959,7 @@ impl<'a> Tokenizer<'a> {
|
|||
chars.next();
|
||||
match chars.peek() {
|
||||
Some(':') => self.consume_and_return(chars, Token::DoubleColon),
|
||||
Some('=') => self.consume_and_return(chars, Token::DuckAssignment),
|
||||
Some('=') => self.consume_and_return(chars, Token::Assignment),
|
||||
_ => Ok(Some(Token::Colon)),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue