From 45cb74a43a951488214c72234e2069423b301e09 Mon Sep 17 00:00:00 2001 From: Tpt Date: Mon, 8 Oct 2018 15:42:39 +0200 Subject: [PATCH] Adds basic support of SPARQL comparison operators --- lib/src/sparql/eval.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/src/sparql/eval.rs b/lib/src/sparql/eval.rs index effe7324..7b7bded8 100644 --- a/lib/src/sparql/eval.rs +++ b/lib/src/sparql/eval.rs @@ -191,6 +191,24 @@ impl SimpleEvaluator { _ => None, }, }, + PlanExpression::Equal(a, b) => { + Some((self.eval_expression(a, tuple)? == self.eval_expression(b, tuple)?).into()) + } + PlanExpression::NotEqual(a, b) => { + Some((self.eval_expression(a, tuple)? != self.eval_expression(b, tuple)?).into()) + } + PlanExpression::Greater(a, b) => { + Some((self.eval_expression(a, tuple)? > self.eval_expression(b, tuple)?).into()) + } + PlanExpression::GreaterOrEq(a, b) => { + Some((self.eval_expression(a, tuple)? >= self.eval_expression(b, tuple)?).into()) + } + PlanExpression::Lower(a, b) => { + Some((self.eval_expression(a, tuple)? < self.eval_expression(b, tuple)?).into()) + } + PlanExpression::LowerOrEq(a, b) => { + Some((self.eval_expression(a, tuple)? <= self.eval_expression(b, tuple)?).into()) + } PlanExpression::UnaryNot(e) => self .to_bool(self.eval_expression(e, tuple)?) .map(|v| (!v).into()),