MCPcopy Create free account
hub / github.com/GraphLite-AI/GraphLite / evaluate_simple_case

Method evaluate_simple_case

graphlite/src/exec/executor.rs:4827–4852  ·  view source on GitHub ↗

Evaluate a simple CASE expression (CASE expr WHEN value1 THEN result1 ...)

(
        &self,
        simple_case: &SimpleCaseExpression,
        context: &ExecutionContext,
    )

Source from the content-addressed store, hash-verified

4825
4826 /// Evaluate a simple CASE expression (CASE expr WHEN value1 THEN result1 ...)
4827 fn evaluate_simple_case(
4828 &self,
4829 simple_case: &SimpleCaseExpression,
4830 context: &ExecutionContext,
4831 ) -> Result<Value, ExecutionError> {
4832 // Evaluate the test expression
4833 let test_value = self.evaluate_expression(&simple_case.test_expression, context)?;
4834
4835 // Check each WHEN branch
4836 for when_branch in &simple_case.when_branches {
4837 for when_value_expr in &when_branch.when_values {
4838 let when_value = self.evaluate_expression(when_value_expr, context)?;
4839
4840 // Check if test_value equals when_value
4841 if self.values_equal(&test_value, &when_value)? {
4842 return self.evaluate_expression(&when_branch.then_expression, context);
4843 }
4844 }
4845 }
4846
4847 // If no WHEN matched, evaluate ELSE or return NULL
4848 match &simple_case.else_expression {
4849 Some(else_expr) => self.evaluate_expression(else_expr, context),
4850 None => Ok(Value::Null),
4851 }
4852 }
4853
4854 /// Evaluate a searched CASE expression (CASE WHEN condition1 THEN result1 ...)
4855 fn evaluate_searched_case(

Callers 1

Calls 2

values_equalMethod · 0.80
evaluate_expressionMethod · 0.45

Tested by

no test coverage detected