mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-09-04 13:10:31 +00:00
Support json operators @>
<@
#-
@?
and @@
postgres supports a bunch more json operators. See https://www.postgresql.org/docs/15/functions-json.html Skipping operators starting with a question mark for now, since those are hard to distinguish from placeholders without more context.
This commit is contained in:
parent
fb02344131
commit
6d6eb4bc9b
4 changed files with 132 additions and 2 deletions
|
@ -1602,12 +1602,22 @@ impl<'a> Parser<'a> {
|
|||
|| Token::LongArrow == tok
|
||||
|| Token::HashArrow == tok
|
||||
|| Token::HashLongArrow == tok
|
||||
|| Token::AtArrow == tok
|
||||
|| Token::ArrowAt == tok
|
||||
|| Token::HashMinus == tok
|
||||
|| Token::AtQuestion == tok
|
||||
|| Token::AtAt == tok
|
||||
{
|
||||
let operator = match tok.token {
|
||||
Token::Arrow => JsonOperator::Arrow,
|
||||
Token::LongArrow => JsonOperator::LongArrow,
|
||||
Token::HashArrow => JsonOperator::HashArrow,
|
||||
Token::HashLongArrow => JsonOperator::HashLongArrow,
|
||||
Token::AtArrow => JsonOperator::AtArrow,
|
||||
Token::ArrowAt => JsonOperator::ArrowAt,
|
||||
Token::HashMinus => JsonOperator::HashMinus,
|
||||
Token::AtQuestion => JsonOperator::AtQuestion,
|
||||
Token::AtAt => JsonOperator::AtAt,
|
||||
_ => unreachable!(),
|
||||
};
|
||||
Ok(Expr::JsonAccess {
|
||||
|
@ -1805,7 +1815,12 @@ impl<'a> Parser<'a> {
|
|||
| Token::LongArrow
|
||||
| Token::Arrow
|
||||
| Token::HashArrow
|
||||
| Token::HashLongArrow => Ok(50),
|
||||
| Token::HashLongArrow
|
||||
| Token::AtArrow
|
||||
| Token::ArrowAt
|
||||
| Token::HashMinus
|
||||
| Token::AtQuestion
|
||||
| Token::AtAt => Ok(50),
|
||||
_ => Ok(0),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue