@@ -86,6 +86,28 @@ pub enum Operator {
8686 AtArrow ,
8787 /// Arrow at, like `<@`
8888 ArrowAt ,
89+ /// Arrow, like `->`
90+ Arrow ,
91+ /// Long arrow, like `->>`
92+ LongArrow ,
93+ /// Hash arrow, like `#>`
94+ HashArrow ,
95+ /// Hash long arrow, like `#>>`
96+ HashLongArrow ,
97+ /// At at, like `@@`
98+ AtAt ,
99+ /// Integer division operator, like `DIV` from MySQL or `//` from DuckDB
100+ IntegerDivide ,
101+ /// Hash Minis, like `#-`
102+ HashMinus ,
103+ /// At question, like `@?`
104+ AtQuestion ,
105+ /// Question, like `?`
106+ Question ,
107+ /// Question and, like `?&`
108+ QuestionAnd ,
109+ /// Question pipe, like `?|`
110+ QuestionPipe ,
89111}
90112
91113impl Operator {
@@ -123,7 +145,18 @@ impl Operator {
123145 | Operator :: BitwiseShiftLeft
124146 | Operator :: StringConcat
125147 | Operator :: AtArrow
126- | Operator :: ArrowAt => None ,
148+ | Operator :: ArrowAt
149+ | Operator :: Arrow
150+ | Operator :: LongArrow
151+ | Operator :: HashArrow
152+ | Operator :: HashLongArrow
153+ | Operator :: AtAt
154+ | Operator :: IntegerDivide
155+ | Operator :: HashMinus
156+ | Operator :: AtQuestion
157+ | Operator :: Question
158+ | Operator :: QuestionAnd
159+ | Operator :: QuestionPipe => None ,
127160 }
128161 }
129162
@@ -216,7 +249,18 @@ impl Operator {
216249 | Operator :: BitwiseXor
217250 | Operator :: BitwiseShiftRight
218251 | Operator :: BitwiseShiftLeft
219- | Operator :: StringConcat => None ,
252+ | Operator :: StringConcat
253+ | Operator :: Arrow
254+ | Operator :: LongArrow
255+ | Operator :: HashArrow
256+ | Operator :: HashLongArrow
257+ | Operator :: AtAt
258+ | Operator :: IntegerDivide
259+ | Operator :: HashMinus
260+ | Operator :: AtQuestion
261+ | Operator :: Question
262+ | Operator :: QuestionAnd
263+ | Operator :: QuestionPipe => None ,
220264 }
221265 }
222266
@@ -245,7 +289,18 @@ impl Operator {
245289 | Operator :: BitwiseXor
246290 | Operator :: StringConcat
247291 | Operator :: AtArrow
248- | Operator :: ArrowAt => 30 ,
292+ | Operator :: ArrowAt
293+ | Operator :: Arrow
294+ | Operator :: LongArrow
295+ | Operator :: HashArrow
296+ | Operator :: HashLongArrow
297+ | Operator :: AtAt
298+ | Operator :: IntegerDivide
299+ | Operator :: HashMinus
300+ | Operator :: AtQuestion
301+ | Operator :: Question
302+ | Operator :: QuestionAnd
303+ | Operator :: QuestionPipe => 30 ,
249304 Operator :: Plus | Operator :: Minus => 40 ,
250305 Operator :: Multiply | Operator :: Divide | Operator :: Modulo => 45 ,
251306 }
@@ -286,6 +341,17 @@ impl fmt::Display for Operator {
286341 Operator :: StringConcat => "||" ,
287342 Operator :: AtArrow => "@>" ,
288343 Operator :: ArrowAt => "<@" ,
344+ Operator :: Arrow => "->" ,
345+ Operator :: LongArrow => "->>" ,
346+ Operator :: HashArrow => "#>" ,
347+ Operator :: HashLongArrow => "#>>" ,
348+ Operator :: AtAt => "@@" ,
349+ Operator :: IntegerDivide => "DIV" ,
350+ Operator :: HashMinus => "#-" ,
351+ Operator :: AtQuestion => "@?" ,
352+ Operator :: Question => "?" ,
353+ Operator :: QuestionAnd => "?&" ,
354+ Operator :: QuestionPipe => "?|" ,
289355 } ;
290356 write ! ( f, "{display}" )
291357 }
0 commit comments