MCPcopy Create free account
hub / github.com/apache/datafusion / evaluate_array_scalar

Method evaluate_array_scalar

datafusion/physical-expr/src/expressions/binary.rs:648–669  ·  view source on GitHub ↗

Evaluate the expression of the left input is an array and right is literal - use scalar operations

(
        &self,
        array: &dyn Array,
        scalar: ScalarValue,
    )

Source from the content-addressed store, hash-verified

646 /// Evaluate the expression of the left input is an array and
647 /// right is literal - use scalar operations
648 fn evaluate_array_scalar(
649 &self,
650 array: &dyn Array,
651 scalar: ScalarValue,
652 ) -> Result<Option<Result<ArrayRef>>> {
653 use Operator::*;
654 let scalar_result = match &self.op {
655 RegexMatch => regex_match_dyn_scalar(array, &scalar, false, false),
656 RegexIMatch => regex_match_dyn_scalar(array, &scalar, false, true),
657 RegexNotMatch => regex_match_dyn_scalar(array, &scalar, true, false),
658 RegexNotIMatch => regex_match_dyn_scalar(array, &scalar, true, true),
659 BitwiseAnd => bitwise_and_dyn_scalar(array, scalar),
660 BitwiseOr => bitwise_or_dyn_scalar(array, scalar),
661 BitwiseXor => bitwise_xor_dyn_scalar(array, scalar),
662 BitwiseShiftRight => bitwise_shift_right_dyn_scalar(array, scalar),
663 BitwiseShiftLeft => bitwise_shift_left_dyn_scalar(array, scalar),
664 // if scalar operation is not supported - fallback to array implementation
665 _ => None,
666 };
667
668 Ok(scalar_result)
669 }
670
671 fn evaluate_with_resolved_args(
672 &self,

Callers 1

evaluateMethod · 0.80

Calls 1

regex_match_dyn_scalarFunction · 0.85

Tested by

no test coverage detected