@@ -82,10 +82,64 @@ pub enum Operator {
8282 BitwiseShiftLeft ,
8383 /// String concat
8484 StringConcat ,
85- /// At arrow, like `@>`
85+ /// At arrow, like `@>`.
86+ ///
87+ /// Currently only supported to be used with lists:
88+ /// ```sql
89+ /// select [1,3] <@ [1,2,3]
90+ /// ```
8691 AtArrow ,
87- /// Arrow at, like `<@`
92+ /// Arrow at, like `<@`.
93+ ///
94+ /// Currently only supported to be used with lists:
95+ /// ```sql
96+ /// select [1,2,3] @> [1,3]
97+ /// ```
8898 ArrowAt ,
99+ /// Arrow, like `->`.
100+ ///
101+ /// Not implemented in DataFusion yet.
102+ Arrow ,
103+ /// Long arrow, like `->>`
104+ ///
105+ /// Not implemented in DataFusion yet.
106+ LongArrow ,
107+ /// Hash arrow, like `#>`
108+ ///
109+ /// Not implemented in DataFusion yet.
110+ HashArrow ,
111+ /// Hash long arrow, like `#>>`
112+ ///
113+ /// Not implemented in DataFusion yet.
114+ HashLongArrow ,
115+ /// At at, like `@@`
116+ ///
117+ /// Not implemented in DataFusion yet.
118+ AtAt ,
119+ /// Integer division operator, like `DIV` from MySQL or `//` from DuckDB
120+ ///
121+ /// Not implemented in DataFusion yet.
122+ IntegerDivide ,
123+ /// Hash Minis, like `#-`
124+ ///
125+ /// Not implemented in DataFusion yet.
126+ HashMinus ,
127+ /// At question, like `@?`
128+ ///
129+ /// Not implemented in DataFusion yet.
130+ AtQuestion ,
131+ /// Question, like `?`
132+ ///
133+ /// Not implemented in DataFusion yet.
134+ Question ,
135+ /// Question and, like `?&`
136+ ///
137+ /// Not implemented in DataFusion yet.
138+ QuestionAnd ,
139+ /// Question pipe, like `?|`
140+ ///
141+ /// Not implemented in DataFusion yet.
142+ QuestionPipe ,
89143}
90144
91145impl Operator {
@@ -123,7 +177,18 @@ impl Operator {
123177 | Operator :: BitwiseShiftLeft
124178 | Operator :: StringConcat
125179 | Operator :: AtArrow
126- | Operator :: ArrowAt => None ,
180+ | Operator :: ArrowAt
181+ | Operator :: Arrow
182+ | Operator :: LongArrow
183+ | Operator :: HashArrow
184+ | Operator :: HashLongArrow
185+ | Operator :: AtAt
186+ | Operator :: IntegerDivide
187+ | Operator :: HashMinus
188+ | Operator :: AtQuestion
189+ | Operator :: Question
190+ | Operator :: QuestionAnd
191+ | Operator :: QuestionPipe => None ,
127192 }
128193 }
129194
@@ -216,7 +281,18 @@ impl Operator {
216281 | Operator :: BitwiseXor
217282 | Operator :: BitwiseShiftRight
218283 | Operator :: BitwiseShiftLeft
219- | Operator :: StringConcat => None ,
284+ | Operator :: StringConcat
285+ | Operator :: Arrow
286+ | Operator :: LongArrow
287+ | Operator :: HashArrow
288+ | Operator :: HashLongArrow
289+ | Operator :: AtAt
290+ | Operator :: IntegerDivide
291+ | Operator :: HashMinus
292+ | Operator :: AtQuestion
293+ | Operator :: Question
294+ | Operator :: QuestionAnd
295+ | Operator :: QuestionPipe => None ,
220296 }
221297 }
222298
@@ -245,7 +321,18 @@ impl Operator {
245321 | Operator :: BitwiseXor
246322 | Operator :: StringConcat
247323 | Operator :: AtArrow
248- | Operator :: ArrowAt => 30 ,
324+ | Operator :: ArrowAt
325+ | Operator :: Arrow
326+ | Operator :: LongArrow
327+ | Operator :: HashArrow
328+ | Operator :: HashLongArrow
329+ | Operator :: AtAt
330+ | Operator :: IntegerDivide
331+ | Operator :: HashMinus
332+ | Operator :: AtQuestion
333+ | Operator :: Question
334+ | Operator :: QuestionAnd
335+ | Operator :: QuestionPipe => 30 ,
249336 Operator :: Plus | Operator :: Minus => 40 ,
250337 Operator :: Multiply | Operator :: Divide | Operator :: Modulo => 45 ,
251338 }
@@ -286,6 +373,17 @@ impl fmt::Display for Operator {
286373 Operator :: StringConcat => "||" ,
287374 Operator :: AtArrow => "@>" ,
288375 Operator :: ArrowAt => "<@" ,
376+ Operator :: Arrow => "->" ,
377+ Operator :: LongArrow => "->>" ,
378+ Operator :: HashArrow => "#>" ,
379+ Operator :: HashLongArrow => "#>>" ,
380+ Operator :: AtAt => "@@" ,
381+ Operator :: IntegerDivide => "DIV" ,
382+ Operator :: HashMinus => "#-" ,
383+ Operator :: AtQuestion => "@?" ,
384+ Operator :: Question => "?" ,
385+ Operator :: QuestionAnd => "?&" ,
386+ Operator :: QuestionPipe => "?|" ,
289387 } ;
290388 write ! ( f, "{display}" )
291389 }
0 commit comments