pub enum BinaryOperator {
Show 50 variants
Plus,
Minus,
Multiply,
Divide,
Modulo,
StringConcat,
Gt,
Lt,
GtEq,
LtEq,
Spaceship,
Eq,
NotEq,
And,
Or,
Xor,
BitwiseOr,
BitwiseAnd,
BitwiseXor,
DuckIntegerDivide,
MyIntegerDivide,
Custom(String),
PGBitwiseXor,
PGBitwiseShiftLeft,
PGBitwiseShiftRight,
PGExp,
PGOverlap,
PGRegexMatch,
PGRegexIMatch,
PGRegexNotMatch,
PGRegexNotIMatch,
PGLikeMatch,
PGILikeMatch,
PGNotLikeMatch,
PGNotILikeMatch,
PGStartsWith,
Arrow,
LongArrow,
HashArrow,
HashLongArrow,
AtAt,
AtArrow,
ArrowAt,
HashMinus,
AtQuestion,
Question,
QuestionAnd,
QuestionPipe,
PGCustomBinaryOperator(Vec<String>),
Overlaps,
}
Expand description
Binary operators
Variants§
Plus
Plus, e.g. a + b
Minus
Minus, e.g. a - b
Multiply
Multiply, e.g. a * b
Divide
Divide, e.g. a / b
Modulo
Modulo, e.g. a % b
StringConcat
String/Array Concat operator, e.g. a || b
Gt
Greater than, e.g. a > b
Lt
Less than, e.g. a < b
GtEq
Greater equal, e.g. a >= b
LtEq
Less equal, e.g. a <= b
Spaceship
Spaceship, e.g. a <=> b
Eq
Equal, e.g. a = b
NotEq
Not equal, e.g. a <> b
And
And, e.g. a AND b
Or
Or, e.g. a OR b
Xor
XOR, e.g. a XOR b
BitwiseOr
Bitwise or, e.g. a | b
BitwiseAnd
Bitwise and, e.g. a & b
BitwiseXor
Bitwise XOR, e.g. a ^ b
DuckIntegerDivide
Integer division operator //
in DuckDB
MyIntegerDivide
MySQL DIV
integer division
Custom(String)
Support for custom operators (such as Postgres custom operators)
PGBitwiseXor
Bitwise XOR, e.g. a # b
(PostgreSQL-specific)
PGBitwiseShiftLeft
Bitwise shift left, e.g. a << b
(PostgreSQL-specific)
PGBitwiseShiftRight
Bitwise shift right, e.g. a >> b
(PostgreSQL-specific)
PGExp
Exponent, e.g. a ^ b
(PostgreSQL-specific)
PGOverlap
Overlap operator, e.g. a && b
(PostgreSQL-specific)
PGRegexMatch
String matches regular expression (case sensitively), e.g. a ~ b
(PostgreSQL-specific)
PGRegexIMatch
String matches regular expression (case insensitively), e.g. a ~* b
(PostgreSQL-specific)
PGRegexNotMatch
String does not match regular expression (case sensitively), e.g. a !~ b
(PostgreSQL-specific)
PGRegexNotIMatch
String does not match regular expression (case insensitively), e.g. a !~* b
(PostgreSQL-specific)
PGLikeMatch
String matches pattern (case sensitively), e.g. a ~~ b
(PostgreSQL-specific)
PGILikeMatch
String matches pattern (case insensitively), e.g. a ~~* b
(PostgreSQL-specific)
PGNotLikeMatch
String does not match pattern (case sensitively), e.g. a !~~ b
(PostgreSQL-specific)
PGNotILikeMatch
String does not match pattern (case insensitively), e.g. a !~~* b
(PostgreSQL-specific)
PGStartsWith
String “starts with”, eg: a ^@ b
(PostgreSQL-specific)
Arrow
The ->
operator.
On PostgreSQL, this operator extracts a JSON object field or array
element, for example '{"a":"b"}'::json -> 'a'
or [1, 2, 3]'::json -> 2
.
See https://www.postgresql.org/docs/current/functions-json.html.
LongArrow
The ->>
operator.
On PostgreSQL, this operator extracts a JSON object field or JSON
array element and converts it to text, for example '{"a":"b"}'::json ->> 'a'
or [1, 2, 3]'::json ->> 2
.
See https://www.postgresql.org/docs/current/functions-json.html.
HashArrow
The #>
operator.
On PostgreSQL, this operator extracts a JSON sub-object at the specified path, for example:
'{"a": {"b": ["foo","bar"]}}'::json #> '{a,b,1}'
See https://www.postgresql.org/docs/current/functions-json.html.
HashLongArrow
The #>>
operator.
A PostgreSQL-specific operator that extracts JSON sub-object at the specified path, for example
'{"a": {"b": ["foo","bar"]}}'::json #>> '{a,b,1}'
See https://www.postgresql.org/docs/current/functions-json.html.
AtAt
The @@
operator.
On PostgreSQL, this is used for JSON and text searches.
See https://www.postgresql.org/docs/current/functions-json.html. See https://www.postgresql.org/docs/current/functions-textsearch.html.
AtArrow
The @>
operator.
On PostgreSQL, this is used for JSON and text searches.
See https://www.postgresql.org/docs/current/functions-json.html. See https://www.postgresql.org/docs/current/functions-textsearch.html.
ArrowAt
The <@
operator.
On PostgreSQL, this is used for JSON and text searches.
See https://www.postgresql.org/docs/current/functions-json.html. See https://www.postgresql.org/docs/current/functions-textsearch.html.
HashMinus
The #-
operator.
On PostgreSQL, this operator is used to delete a field or array element at a specified path.
See https://www.postgresql.org/docs/current/functions-json.html.
AtQuestion
The @?
operator.
On PostgreSQL, this operator is used to check the given JSON path returns an item for the JSON value.
See https://www.postgresql.org/docs/current/functions-json.html.
Question
The ?
operator.
On PostgreSQL, this operator is used to check whether a string exists as a top-level key within the JSON value
See https://www.postgresql.org/docs/current/functions-json.html.
QuestionAnd
The ?&
operator.
On PostgreSQL, this operator is used to check whether all of the the indicated array members exist as top-level keys.
See https://www.postgresql.org/docs/current/functions-json.html.
QuestionPipe
The ?|
operator.
On PostgreSQL, this operator is used to check whether any of the the indicated array members exist as top-level keys.
See https://www.postgresql.org/docs/current/functions-json.html.
PGCustomBinaryOperator(Vec<String>)
PostgreSQL-specific custom operator.
See CREATE OPERATOR for more information.
Overlaps
The OVERLAPS
operator
Specifies a test for an overlap between two datetime periods: https://jakewheat.github.io/sql-overview/sql-2016-foundation-grammar.html#overlaps-predicate
Trait Implementations§
Source§impl Clone for BinaryOperator
impl Clone for BinaryOperator
Source§fn clone(&self) -> BinaryOperator
fn clone(&self) -> BinaryOperator
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for BinaryOperator
impl Debug for BinaryOperator
Source§impl Display for BinaryOperator
impl Display for BinaryOperator
Source§impl Hash for BinaryOperator
impl Hash for BinaryOperator
Source§impl Ord for BinaryOperator
impl Ord for BinaryOperator
Source§fn cmp(&self, other: &BinaryOperator) -> Ordering
fn cmp(&self, other: &BinaryOperator) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for BinaryOperator
impl PartialEq for BinaryOperator
Source§impl PartialOrd for BinaryOperator
impl PartialOrd for BinaryOperator
Source§impl Visit for BinaryOperator
impl Visit for BinaryOperator
Source§impl VisitMut for BinaryOperator
impl VisitMut for BinaryOperator
fn visit<V>(&mut self, visitor: &mut V) -> ControlFlow<<V as VisitorMut>::Break>where
V: VisitorMut,
impl Eq for BinaryOperator
impl StructuralPartialEq for BinaryOperator
Auto Trait Implementations§
impl Freeze for BinaryOperator
impl RefUnwindSafe for BinaryOperator
impl Send for BinaryOperator
impl Sync for BinaryOperator
impl Unpin for BinaryOperator
impl UnwindSafe for BinaryOperator
Blanket Implementations§
Source§impl<T> AlignerFor<1> for T
impl<T> AlignerFor<1> for T
Source§impl<T> AlignerFor<1024> for T
impl<T> AlignerFor<1024> for T
Source§type Aligner = AlignTo1024<T>
type Aligner = AlignTo1024<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<128> for T
impl<T> AlignerFor<128> for T
Source§type Aligner = AlignTo128<T>
type Aligner = AlignTo128<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<16> for T
impl<T> AlignerFor<16> for T
Source§impl<T> AlignerFor<16384> for T
impl<T> AlignerFor<16384> for T
Source§type Aligner = AlignTo16384<T>
type Aligner = AlignTo16384<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<2> for T
impl<T> AlignerFor<2> for T
Source§impl<T> AlignerFor<2048> for T
impl<T> AlignerFor<2048> for T
Source§type Aligner = AlignTo2048<T>
type Aligner = AlignTo2048<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<256> for T
impl<T> AlignerFor<256> for T
Source§type Aligner = AlignTo256<T>
type Aligner = AlignTo256<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<32> for T
impl<T> AlignerFor<32> for T
Source§impl<T> AlignerFor<32768> for T
impl<T> AlignerFor<32768> for T
Source§type Aligner = AlignTo32768<T>
type Aligner = AlignTo32768<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<4> for T
impl<T> AlignerFor<4> for T
Source§impl<T> AlignerFor<4096> for T
impl<T> AlignerFor<4096> for T
Source§type Aligner = AlignTo4096<T>
type Aligner = AlignTo4096<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<512> for T
impl<T> AlignerFor<512> for T
Source§type Aligner = AlignTo512<T>
type Aligner = AlignTo512<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<64> for T
impl<T> AlignerFor<64> for T
Source§impl<T> AlignerFor<8> for T
impl<T> AlignerFor<8> for T
Source§impl<T> AlignerFor<8192> for T
impl<T> AlignerFor<8192> for T
Source§type Aligner = AlignTo8192<T>
type Aligner = AlignTo8192<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<'a, T> RCowCompatibleRef<'a> for Twhere
T: Clone + 'a,
impl<'a, T> RCowCompatibleRef<'a> for Twhere
T: Clone + 'a,
Source§fn as_c_ref(from: &'a T) -> <T as RCowCompatibleRef<'a>>::RefC
fn as_c_ref(from: &'a T) -> <T as RCowCompatibleRef<'a>>::RefC
Source§fn as_rust_ref(from: <T as RCowCompatibleRef<'a>>::RefC) -> &'a T
fn as_rust_ref(from: <T as RCowCompatibleRef<'a>>::RefC) -> &'a T
Source§impl<S> ROExtAcc for S
impl<S> ROExtAcc for S
Source§fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
offset
. Read moreSource§fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
offset
. Read moreSource§fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
offset
. Read moreSource§fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
offset
. Read moreSource§impl<S> ROExtOps<Aligned> for S
impl<S> ROExtOps<Aligned> for S
Source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read moreSource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
Source§impl<S> ROExtOps<Unaligned> for S
impl<S> ROExtOps<Unaligned> for S
Source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read moreSource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
Source§impl<T> SelfOps for Twhere
T: ?Sized,
impl<T> SelfOps for Twhere
T: ?Sized,
Source§fn piped<F, U>(self, f: F) -> U
fn piped<F, U>(self, f: F) -> U
Source§fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
piped
except that the function takes &Self
Useful for functions that take &Self
instead of Self
. Read moreSource§fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
piped
, except that the function takes &mut Self
.
Useful for functions that take &mut Self
instead of Self
.Source§fn mutated<F>(self, f: F) -> Self
fn mutated<F>(self, f: F) -> Self
Source§fn observe<F>(self, f: F) -> Self
fn observe<F>(self, f: F) -> Self
Source§fn as_ref_<T>(&self) -> &T
fn as_ref_<T>(&self) -> &T
AsRef
,
using the turbofish .as_ref_::<_>()
syntax. Read more