Trait EagerBinaryFunc

Source
pub(crate) trait EagerBinaryFunc<'a> {
    type Input1: DatumType<'a, EvalError>;
    type Input2: DatumType<'a, EvalError>;
    type Output: DatumType<'a, EvalError>;

    // Required methods
    fn call(
        &self,
        a: Self::Input1,
        b: Self::Input2,
        temp_storage: &'a RowArena,
    ) -> Self::Output;
    fn output_type(
        &self,
        input_type_a: ColumnType,
        input_type_b: ColumnType,
    ) -> ColumnType;

    // Provided methods
    fn propagates_nulls(&self) -> bool { ... }
    fn introduces_nulls(&self) -> bool { ... }
    fn could_error(&self) -> bool { ... }
    fn negate(&self) -> Option<BinaryFunc> { ... }
    fn is_monotone(&self) -> (bool, bool) { ... }
    fn is_infix_op(&self) -> bool { ... }
}

Required Associated Types§

Required Methods§

Source

fn call( &self, a: Self::Input1, b: Self::Input2, temp_storage: &'a RowArena, ) -> Self::Output

Source

fn output_type( &self, input_type_a: ColumnType, input_type_b: ColumnType, ) -> ColumnType

The output ColumnType of this function

Provided Methods§

Source

fn propagates_nulls(&self) -> bool

Whether this function will produce NULL on NULL input

Source

fn introduces_nulls(&self) -> bool

Whether this function will produce NULL on non-NULL input

Source

fn could_error(&self) -> bool

Whether this function could produce an error

Source

fn negate(&self) -> Option<BinaryFunc>

Returns the negation of the given binary function, if it exists.

Source

fn is_monotone(&self) -> (bool, bool)

Source

fn is_infix_op(&self) -> bool

Implementors§

Source§

impl<'a> EagerBinaryFunc<'a> for AddDateInterval

Source§

impl<'a> EagerBinaryFunc<'a> for AddDateTime

Source§

impl<'a> EagerBinaryFunc<'a> for AddFloat32

Source§

impl<'a> EagerBinaryFunc<'a> for AddFloat64

Source§

impl<'a> EagerBinaryFunc<'a> for AddInt16

Source§

impl<'a> EagerBinaryFunc<'a> for AddInt32

Source§

impl<'a> EagerBinaryFunc<'a> for AddInt64

Source§

impl<'a> EagerBinaryFunc<'a> for AddInterval

Source§

impl<'a> EagerBinaryFunc<'a> for AddNumeric

Source§

impl<'a> EagerBinaryFunc<'a> for AddTimeInterval

Source§

impl<'a> EagerBinaryFunc<'a> for AddUint16

Source§

impl<'a> EagerBinaryFunc<'a> for AddUint32

Source§

impl<'a> EagerBinaryFunc<'a> for AddUint64

Source§

impl<'a> EagerBinaryFunc<'a> for AgeTimestamp

Source§

impl<'a> EagerBinaryFunc<'a> for AgeTimestamptz

Source§

impl<'a> EagerBinaryFunc<'a> for ArrayLength

Source§

impl<'a> EagerBinaryFunc<'a> for BitAndInt16

Source§

impl<'a> EagerBinaryFunc<'a> for BitAndInt32

Source§

impl<'a> EagerBinaryFunc<'a> for BitAndInt64

Source§

impl<'a> EagerBinaryFunc<'a> for BitAndUint16

Source§

impl<'a> EagerBinaryFunc<'a> for BitAndUint32

Source§

impl<'a> EagerBinaryFunc<'a> for BitAndUint64

Source§

impl<'a> EagerBinaryFunc<'a> for BitOrInt16

Source§

impl<'a> EagerBinaryFunc<'a> for BitOrInt32

Source§

impl<'a> EagerBinaryFunc<'a> for BitOrInt64

Source§

impl<'a> EagerBinaryFunc<'a> for BitOrUint16

Source§

impl<'a> EagerBinaryFunc<'a> for BitOrUint32

Source§

impl<'a> EagerBinaryFunc<'a> for BitOrUint64

Source§

impl<'a> EagerBinaryFunc<'a> for BitShiftLeftInt16

Source§

impl<'a> EagerBinaryFunc<'a> for BitShiftLeftInt32

Source§

impl<'a> EagerBinaryFunc<'a> for BitShiftLeftInt64

Source§

impl<'a> EagerBinaryFunc<'a> for BitShiftLeftUint16

Source§

impl<'a> EagerBinaryFunc<'a> for BitShiftLeftUint32

Source§

impl<'a> EagerBinaryFunc<'a> for BitShiftLeftUint64

Source§

impl<'a> EagerBinaryFunc<'a> for BitShiftRightInt16

Source§

impl<'a> EagerBinaryFunc<'a> for BitShiftRightInt32

Source§

impl<'a> EagerBinaryFunc<'a> for BitShiftRightInt64

Source§

impl<'a> EagerBinaryFunc<'a> for BitShiftRightUint16

Source§

impl<'a> EagerBinaryFunc<'a> for BitShiftRightUint32

Source§

impl<'a> EagerBinaryFunc<'a> for BitShiftRightUint64

Source§

impl<'a> EagerBinaryFunc<'a> for BitXorInt16

Source§

impl<'a> EagerBinaryFunc<'a> for BitXorInt32

Source§

impl<'a> EagerBinaryFunc<'a> for BitXorInt64

Source§

impl<'a> EagerBinaryFunc<'a> for BitXorUint16

Source§

impl<'a> EagerBinaryFunc<'a> for BitXorUint32

Source§

impl<'a> EagerBinaryFunc<'a> for BitXorUint64

Source§

impl<'a> EagerBinaryFunc<'a> for ConstantTimeEqBytes

Source§

impl<'a> EagerBinaryFunc<'a> for ConstantTimeEqString

Source§

impl<'a> EagerBinaryFunc<'a> for ConvertFrom

Source§

impl<'a> EagerBinaryFunc<'a> for DateTruncInterval

Source§

impl<'a> EagerBinaryFunc<'a> for DivFloat32

Source§

impl<'a> EagerBinaryFunc<'a> for DivFloat64

Source§

impl<'a> EagerBinaryFunc<'a> for DivInt16

Source§

impl<'a> EagerBinaryFunc<'a> for DivInt32

Source§

impl<'a> EagerBinaryFunc<'a> for DivInt64

Source§

impl<'a> EagerBinaryFunc<'a> for DivInterval

Source§

impl<'a> EagerBinaryFunc<'a> for DivNumeric

Source§

impl<'a> EagerBinaryFunc<'a> for DivUint16

Source§

impl<'a> EagerBinaryFunc<'a> for DivUint32

Source§

impl<'a> EagerBinaryFunc<'a> for DivUint64

Source§

impl<'a> EagerBinaryFunc<'a> for Encode

Source§

impl<'a> EagerBinaryFunc<'a> for EncodedBytesCharLength

Source§

impl<'a> EagerBinaryFunc<'a> for Eq

Source§

impl<'a> EagerBinaryFunc<'a> for ExtractDateUnits

Source§

impl<'a> EagerBinaryFunc<'a> for GetBit

Source§

impl<'a> EagerBinaryFunc<'a> for GetByte

Source§

impl<'a> EagerBinaryFunc<'a> for Gt

Source§

impl<'a> EagerBinaryFunc<'a> for Gte

Source§

impl<'a> EagerBinaryFunc<'a> for JsonbContainsJsonb

Source§

impl<'a> EagerBinaryFunc<'a> for JsonbContainsString

Source§

impl<'a> EagerBinaryFunc<'a> for LogBaseNumeric

Source§

impl<'a> EagerBinaryFunc<'a> for Lt

Source§

impl<'a> EagerBinaryFunc<'a> for Lte

Source§

impl<'a> EagerBinaryFunc<'a> for MapContainsAllKeys

Source§

impl<'a> EagerBinaryFunc<'a> for MapContainsAnyKeys

Source§

impl<'a> EagerBinaryFunc<'a> for MapContainsKey

Source§

impl<'a> EagerBinaryFunc<'a> for MapContainsMap

Source§

impl<'a> EagerBinaryFunc<'a> for ModFloat32

Source§

impl<'a> EagerBinaryFunc<'a> for ModFloat64

Source§

impl<'a> EagerBinaryFunc<'a> for ModInt16

Source§

impl<'a> EagerBinaryFunc<'a> for ModInt32

Source§

impl<'a> EagerBinaryFunc<'a> for ModInt64

Source§

impl<'a> EagerBinaryFunc<'a> for ModNumeric

Source§

impl<'a> EagerBinaryFunc<'a> for ModUint16

Source§

impl<'a> EagerBinaryFunc<'a> for ModUint32

Source§

impl<'a> EagerBinaryFunc<'a> for ModUint64

Source§

impl<'a> EagerBinaryFunc<'a> for MulFloat32

Source§

impl<'a> EagerBinaryFunc<'a> for MulFloat64

Source§

impl<'a> EagerBinaryFunc<'a> for MulInt16

Source§

impl<'a> EagerBinaryFunc<'a> for MulInt32

Source§

impl<'a> EagerBinaryFunc<'a> for MulInt64

Source§

impl<'a> EagerBinaryFunc<'a> for MulInterval

Source§

impl<'a> EagerBinaryFunc<'a> for MulNumeric

Source§

impl<'a> EagerBinaryFunc<'a> for MulUint16

Source§

impl<'a> EagerBinaryFunc<'a> for MulUint32

Source§

impl<'a> EagerBinaryFunc<'a> for MulUint64

Source§

impl<'a> EagerBinaryFunc<'a> for NotEq

Source§

impl<'a> EagerBinaryFunc<'a> for Power

Source§

impl<'a> EagerBinaryFunc<'a> for PowerNumeric

Source§

impl<'a> EagerBinaryFunc<'a> for RangeAdjacent

Source§

impl<'a> EagerBinaryFunc<'a> for RangeAfter

Source§

impl<'a> EagerBinaryFunc<'a> for RangeBefore

Source§

impl<'a> EagerBinaryFunc<'a> for RangeContainsRange

Source§

impl<'a> EagerBinaryFunc<'a> for RangeContainsRangeRev

Source§

impl<'a> EagerBinaryFunc<'a> for RangeOverlaps

Source§

impl<'a> EagerBinaryFunc<'a> for RangeOverleft

Source§

impl<'a> EagerBinaryFunc<'a> for RangeOverright

Source§

impl<'a> EagerBinaryFunc<'a> for RoundNumericBinary

Source§

impl<'a> EagerBinaryFunc<'a> for SubDate

Source§

impl<'a> EagerBinaryFunc<'a> for SubDateInterval

Source§

impl<'a> EagerBinaryFunc<'a> for SubFloat32

Source§

impl<'a> EagerBinaryFunc<'a> for SubFloat64

Source§

impl<'a> EagerBinaryFunc<'a> for SubInt16

Source§

impl<'a> EagerBinaryFunc<'a> for SubInt32

Source§

impl<'a> EagerBinaryFunc<'a> for SubInt64

Source§

impl<'a> EagerBinaryFunc<'a> for SubInterval

Source§

impl<'a> EagerBinaryFunc<'a> for SubNumeric

Source§

impl<'a> EagerBinaryFunc<'a> for SubTime

Source§

impl<'a> EagerBinaryFunc<'a> for SubTimeInterval

Source§

impl<'a> EagerBinaryFunc<'a> for SubTimestamp

Source§

impl<'a> EagerBinaryFunc<'a> for SubTimestamptz

Source§

impl<'a> EagerBinaryFunc<'a> for SubUint16

Source§

impl<'a> EagerBinaryFunc<'a> for SubUint32

Source§

impl<'a> EagerBinaryFunc<'a> for SubUint64

Source§

impl<'a> EagerBinaryFunc<'a> for UuidGenerateV5