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§
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
Sourcefn output_type(
&self,
input_type_a: ColumnType,
input_type_b: ColumnType,
) -> ColumnType
fn output_type( &self, input_type_a: ColumnType, input_type_b: ColumnType, ) -> ColumnType
The output ColumnType of this function
Provided Methods§
Sourcefn propagates_nulls(&self) -> bool
fn propagates_nulls(&self) -> bool
Whether this function will produce NULL on NULL input
Sourcefn introduces_nulls(&self) -> bool
fn introduces_nulls(&self) -> bool
Whether this function will produce NULL on non-NULL input
Sourcefn could_error(&self) -> bool
fn could_error(&self) -> bool
Whether this function could produce an error
Sourcefn negate(&self) -> Option<BinaryFunc>
fn negate(&self) -> Option<BinaryFunc>
Returns the negation of the given binary function, if it exists.