From 0dd113c366ae39247996781d3ac62870930e2891 Mon Sep 17 00:00:00 2001 From: Dustin Whitney Date: Thu, 17 Oct 2019 11:30:41 -0400 Subject: [PATCH] merged with upstream service-improvements --- lib/src/sparql/eval.rs | 2 +- lib/tests/custom_functions.rs | 69 ----------------------------------- 2 files changed, 1 insertion(+), 70 deletions(-) delete mode 100644 lib/tests/custom_functions.rs diff --git a/lib/src/sparql/eval.rs b/lib/src/sparql/eval.rs index 927eaae0..3e411d72 100644 --- a/lib/src/sparql/eval.rs +++ b/lib/src/sparql/eval.rs @@ -1417,7 +1417,7 @@ impl<'a, S: StoreConnection + 'a> SimpleEvaluator { let parameters = parameters .iter() .map(|p| { - self.eval_expression(p, tuple, options) + self.eval_expression(p, tuple) .and_then(|encoded| self.dataset.decode_term(encoded).ok()) }) .collect::>(); diff --git a/lib/tests/custom_functions.rs b/lib/tests/custom_functions.rs deleted file mode 100644 index ac8552ad..00000000 --- a/lib/tests/custom_functions.rs +++ /dev/null @@ -1,69 +0,0 @@ -use rudf::model::*; -use rudf::{GraphSyntax, Repository, RepositoryConnection, MemoryRepository, Result}; -use rudf::sparql::{BindingsIterator, PreparedQuery, QueryOptions, QueryResult}; -use failure::format_err; -use std::io::BufRead; - - - -#[test] -fn simple_custom_function_test() { - - let query = r#" - PREFIX ex: - SELECT ?name ?reverse - WHERE - { - ?s ?name . - BIND(ex:REVERSE(?name) as ?reverse) - } - ORDER BY ?name - "#.to_string(); - - - let options = QueryOptions::default(); - let triples = br#" - "Bob" . - "Alice" . - . - . - "#.as_ref(); - let results = do_query(triples, query, options).unwrap(); - let collected = results.into_values_iter().map(move |b| b.unwrap()).collect::>(); - let solution = vec![ - vec![ Some(literal(String::from("Alice"))), Some(literal(String::from("ecilA"))) ], - vec![ Some(literal(String::from("Bob"))), Some(literal(String::from("boB"))) ], - ]; - assert_eq!(collected, solution); - -} - -fn literal(str: String) -> Term { - Term::Literal(Literal::new_simple_literal(str)) -} - -fn make_repository(reader: impl BufRead) -> Result { - let repository = MemoryRepository::default(); - let mut connection = repository.connection()?; - connection.load_graph(reader, GraphSyntax::NTriples, None, None).unwrap(); - Ok(repository) -} - -fn query_repository<'a>(repository: MemoryRepository, query: String, options: QueryOptions<'a>) -> Result> { - let connection = repository.connection()?; - let prepared_query = connection.prepare_query(&query, None)?; - let result = prepared_query.exec(&options)?; - match result { - QueryResult::Bindings(iterator) => { - let (varaibles, iter) = iterator.destruct(); - let collected = iter.collect::>(); - Ok(BindingsIterator::new(varaibles, Box::new(collected.into_iter()))) - }, - _ => Err(format_err!("Excpected bindings but got another QueryResult")) - } -} - -fn do_query<'a>(reader: impl BufRead, query: String, options: QueryOptions<'a>) -> Result> { - let repository = make_repository(reader)?; - query_repository(repository, query, options) -}