Enum mz_expr::scalar::func::BinaryFunc
source · pub enum BinaryFunc {
Show 190 variants
AddInt16,
AddInt32,
AddInt64,
AddUInt16,
AddUInt32,
AddUInt64,
AddFloat32,
AddFloat64,
AddInterval,
AddTimestampInterval,
AddTimestampTzInterval,
AddDateInterval,
AddDateTime,
AddTimeInterval,
AddNumeric,
AgeTimestamp,
AgeTimestampTz,
BitAndInt16,
BitAndInt32,
BitAndInt64,
BitAndUInt16,
BitAndUInt32,
BitAndUInt64,
BitOrInt16,
BitOrInt32,
BitOrInt64,
BitOrUInt16,
BitOrUInt32,
BitOrUInt64,
BitXorInt16,
BitXorInt32,
BitXorInt64,
BitXorUInt16,
BitXorUInt32,
BitXorUInt64,
BitShiftLeftInt16,
BitShiftLeftInt32,
BitShiftLeftInt64,
BitShiftLeftUInt16,
BitShiftLeftUInt32,
BitShiftLeftUInt64,
BitShiftRightInt16,
BitShiftRightInt32,
BitShiftRightInt64,
BitShiftRightUInt16,
BitShiftRightUInt32,
BitShiftRightUInt64,
SubInt16,
SubInt32,
SubInt64,
SubUInt16,
SubUInt32,
SubUInt64,
SubFloat32,
SubFloat64,
SubInterval,
SubTimestamp,
SubTimestampTz,
SubTimestampInterval,
SubTimestampTzInterval,
SubDate,
SubDateInterval,
SubTime,
SubTimeInterval,
SubNumeric,
MulInt16,
MulInt32,
MulInt64,
MulUInt16,
MulUInt32,
MulUInt64,
MulFloat32,
MulFloat64,
MulNumeric,
MulInterval,
DivInt16,
DivInt32,
DivInt64,
DivUInt16,
DivUInt32,
DivUInt64,
DivFloat32,
DivFloat64,
DivNumeric,
DivInterval,
ModInt16,
ModInt32,
ModInt64,
ModUInt16,
ModUInt32,
ModUInt64,
ModFloat32,
ModFloat64,
ModNumeric,
RoundNumeric,
Eq,
NotEq,
Lt,
Lte,
Gt,
Gte,
LikeEscape,
IsLikeMatch {
case_insensitive: bool,
},
IsRegexpMatch {
case_insensitive: bool,
},
ToCharTimestamp,
ToCharTimestampTz,
DateBinTimestamp,
DateBinTimestampTz,
ExtractInterval,
ExtractTime,
ExtractTimestamp,
ExtractTimestampTz,
ExtractDate,
DatePartInterval,
DatePartTime,
DatePartTimestamp,
DatePartTimestampTz,
DateTruncTimestamp,
DateTruncTimestampTz,
DateTruncInterval,
TimezoneTimestamp,
TimezoneTimestampTz,
TimezoneIntervalTimestamp,
TimezoneIntervalTimestampTz,
TimezoneIntervalTime,
TimezoneOffset,
TextConcat,
JsonbGetInt64 {
stringify: bool,
},
JsonbGetString {
stringify: bool,
},
JsonbGetPath {
stringify: bool,
},
JsonbContainsString,
JsonbConcat,
JsonbContainsJsonb,
JsonbDeleteInt64,
JsonbDeleteString,
MapContainsKey,
MapGetValue,
MapContainsAllKeys,
MapContainsAnyKeys,
MapContainsMap,
ConvertFrom,
Left,
Position,
Right,
RepeatString,
Trim,
TrimLeading,
TrimTrailing,
EncodedBytesCharLength,
ListLengthMax {
max_layer: usize,
},
ArrayContains,
ArrayContainsArray {
rev: bool,
},
ArrayLength,
ArrayLower,
ArrayRemove,
ArrayUpper,
ArrayArrayConcat,
ListListConcat,
ListElementConcat,
ElementListConcat,
ListRemove,
ListContainsList {
rev: bool,
},
DigestString,
DigestBytes,
MzRenderTypmod,
Encode,
Decode,
LogNumeric,
Power,
PowerNumeric,
GetByte,
ConstantTimeEqBytes,
ConstantTimeEqString,
RangeContainsElem {
elem_type: ScalarType,
rev: bool,
},
RangeContainsRange {
rev: bool,
},
RangeOverlaps,
RangeAfter,
RangeBefore,
RangeOverleft,
RangeOverright,
RangeAdjacent,
RangeUnion,
RangeIntersection,
RangeDifference,
UuidGenerateV5,
MzAclItemContainsPrivilege,
ParseIdent,
PrettySql,
RegexpReplace {
regex: Result<(Regex, usize), EvalError>,
},
StartsWith,
}
Variants§
AddInt16
AddInt32
AddInt64
AddUInt16
AddUInt32
AddUInt64
AddFloat32
AddFloat64
AddInterval
AddTimestampInterval
AddTimestampTzInterval
AddDateInterval
AddDateTime
AddTimeInterval
AddNumeric
AgeTimestamp
AgeTimestampTz
BitAndInt16
BitAndInt32
BitAndInt64
BitAndUInt16
BitAndUInt32
BitAndUInt64
BitOrInt16
BitOrInt32
BitOrInt64
BitOrUInt16
BitOrUInt32
BitOrUInt64
BitXorInt16
BitXorInt32
BitXorInt64
BitXorUInt16
BitXorUInt32
BitXorUInt64
BitShiftLeftInt16
BitShiftLeftInt32
BitShiftLeftInt64
BitShiftLeftUInt16
BitShiftLeftUInt32
BitShiftLeftUInt64
BitShiftRightInt16
BitShiftRightInt32
BitShiftRightInt64
BitShiftRightUInt16
BitShiftRightUInt32
BitShiftRightUInt64
SubInt16
SubInt32
SubInt64
SubUInt16
SubUInt32
SubUInt64
SubFloat32
SubFloat64
SubInterval
SubTimestamp
SubTimestampTz
SubTimestampInterval
SubTimestampTzInterval
SubDate
SubDateInterval
SubTime
SubTimeInterval
SubNumeric
MulInt16
MulInt32
MulInt64
MulUInt16
MulUInt32
MulUInt64
MulFloat32
MulFloat64
MulNumeric
MulInterval
DivInt16
DivInt32
DivInt64
DivUInt16
DivUInt32
DivUInt64
DivFloat32
DivFloat64
DivNumeric
DivInterval
ModInt16
ModInt32
ModInt64
ModUInt16
ModUInt32
ModUInt64
ModFloat32
ModFloat64
ModNumeric
RoundNumeric
Eq
NotEq
Lt
Lte
Gt
Gte
LikeEscape
IsLikeMatch
IsRegexpMatch
ToCharTimestamp
ToCharTimestampTz
DateBinTimestamp
DateBinTimestampTz
ExtractInterval
ExtractTime
ExtractTimestamp
ExtractTimestampTz
ExtractDate
DatePartInterval
DatePartTime
DatePartTimestamp
DatePartTimestampTz
DateTruncTimestamp
DateTruncTimestampTz
DateTruncInterval
TimezoneTimestamp
TimezoneTimestampTz
TimezoneIntervalTimestamp
TimezoneIntervalTimestampTz
TimezoneIntervalTime
TimezoneOffset
TextConcat
JsonbGetInt64
JsonbGetString
JsonbGetPath
JsonbContainsString
JsonbConcat
JsonbContainsJsonb
JsonbDeleteInt64
JsonbDeleteString
MapContainsKey
MapGetValue
MapContainsAllKeys
MapContainsAnyKeys
MapContainsMap
ConvertFrom
Left
Position
Right
RepeatString
Trim
TrimLeading
TrimTrailing
EncodedBytesCharLength
ListLengthMax
ArrayContains
ArrayContainsArray
ArrayLength
ArrayLower
ArrayRemove
ArrayUpper
ArrayArrayConcat
ListListConcat
ListElementConcat
ElementListConcat
ListRemove
ListContainsList
DigestString
DigestBytes
MzRenderTypmod
Encode
Decode
LogNumeric
Power
PowerNumeric
GetByte
ConstantTimeEqBytes
ConstantTimeEqString
RangeContainsElem
RangeContainsRange
RangeOverlaps
RangeAfter
RangeBefore
RangeOverleft
RangeOverright
RangeAdjacent
RangeUnion
RangeIntersection
RangeDifference
UuidGenerateV5
MzAclItemContainsPrivilege
ParseIdent
PrettySql
RegexpReplace
StartsWith
Implementations§
source§impl BinaryFunc
impl BinaryFunc
pub fn eval<'a>( &'a self, datums: &[Datum<'a>], temp_storage: &'a RowArena, a_expr: &'a MirScalarExpr, b_expr: &'a MirScalarExpr, ) -> Result<Datum<'a>, EvalError>
pub fn output_type( &self, input1_type: ColumnType, input2_type: ColumnType, ) -> ColumnType
sourcepub fn propagates_nulls(&self) -> bool
pub fn propagates_nulls(&self) -> bool
Whether the function output is NULL if any of its inputs are NULL.
sourcepub fn introduces_nulls(&self) -> bool
pub fn introduces_nulls(&self) -> bool
Whether the function might return NULL even if none of its inputs are NULL.
This is presently conservative, and may indicate that a function introduces nulls even when it does not.
pub fn is_infix_op(&self) -> bool
sourcepub fn negate(&self) -> Option<Self>
pub fn negate(&self) -> Option<Self>
Returns the negation of the given binary function, if it exists.
sourcepub fn could_error(&self) -> bool
pub fn could_error(&self) -> bool
Returns true if the function could introduce an error on non-error inputs.
sourcepub fn is_monotone(&self) -> (bool, bool)
pub fn is_monotone(&self) -> (bool, bool)
Returns true if the function is monotone. (Non-strict; either increasing or decreasing.) Monotone functions map ranges to ranges: ie. given a range of possible inputs, we can determine the range of possible outputs just by mapping the endpoints.
This describes the pointwise behaviour of the function:
ie. the behaviour of any specific argument as the others are held constant. (For example, a - b
is
monotone in the first argument because for any particular value of b
, increasing a
will
always cause the result to increase… and in the second argument because for any specific a
,
increasing b
will always cause the result to decrease.)
This property describes the behaviour of the function over ranges where the function is defined: ie. the arguments and the result are non-error datums.
Trait Implementations§
source§impl Arbitrary for BinaryFunc
impl Arbitrary for BinaryFunc
An explicit Arbitrary
implementation needed here because of a known
proptest
issue.
Revert to the derive-macro impementation once the issue1 is fixed.
§type Parameters = ()
type Parameters = ()
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.§type Strategy = Union<BoxedStrategy<BinaryFunc>>
type Strategy = Union<BoxedStrategy<BinaryFunc>>
Strategy
used to generate values of type Self
.source§fn arbitrary_with(_: Self::Parameters) -> Self::Strategy
fn arbitrary_with(_: Self::Parameters) -> Self::Strategy
source§impl Clone for BinaryFunc
impl Clone for BinaryFunc
source§fn clone(&self) -> BinaryFunc
fn clone(&self) -> BinaryFunc
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for BinaryFunc
impl Debug for BinaryFunc
source§impl<'de> Deserialize<'de> for BinaryFunc
impl<'de> Deserialize<'de> for BinaryFunc
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl Display for BinaryFunc
impl Display for BinaryFunc
source§impl Hash for BinaryFunc
impl Hash for BinaryFunc
source§impl MzReflect for BinaryFunc
impl MzReflect for BinaryFunc
source§fn add_to_reflected_type_info(rti: &mut ReflectedTypeInfo)
fn add_to_reflected_type_info(rti: &mut ReflectedTypeInfo)
rti
. Read moresource§impl Ord for BinaryFunc
impl Ord for BinaryFunc
source§fn cmp(&self, other: &BinaryFunc) -> Ordering
fn cmp(&self, other: &BinaryFunc) -> 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 BinaryFunc
impl PartialEq for BinaryFunc
source§impl PartialOrd for BinaryFunc
impl PartialOrd for BinaryFunc
source§impl RustType<ProtoBinaryFunc> for BinaryFunc
impl RustType<ProtoBinaryFunc> for BinaryFunc
source§fn into_proto(&self) -> ProtoBinaryFunc
fn into_proto(&self) -> ProtoBinaryFunc
Self
into a Proto
value.source§fn from_proto(proto: ProtoBinaryFunc) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoBinaryFunc) -> Result<Self, TryFromProtoError>
source§fn into_proto_owned(self) -> Proto
fn into_proto_owned(self) -> Proto
Self::into_proto
that types can
optionally implement, otherwise, the default implementation
delegates to Self::into_proto
.source§impl Serialize for BinaryFunc
impl Serialize for BinaryFunc
impl Eq for BinaryFunc
impl StructuralPartialEq for BinaryFunc
Auto Trait Implementations§
impl Freeze for BinaryFunc
impl RefUnwindSafe for BinaryFunc
impl Send for BinaryFunc
impl Sync for BinaryFunc
impl Unpin for BinaryFunc
impl UnwindSafe for BinaryFunc
Blanket Implementations§
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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§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<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> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
source§impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> PreferredContainer for T
impl<T> PreferredContainer for T
source§impl<T> ProgressEventTimestamp for T
impl<T> ProgressEventTimestamp for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
std::ops::AddAssign
, for types that do not implement AddAssign
.