From db0bb6a5e6c0dc0da0c3ca4d9647e225fb032a28 Mon Sep 17 00:00:00 2001 From: grahamtriggs Date: Thu, 15 Oct 2015 22:58:48 +0100 Subject: [PATCH] [VIVO-1031] Always execute SDB queries against the dataset and not the default model --- .../rdfservice/impl/jena/sdb/RDFServiceSDB.java | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/jena/sdb/RDFServiceSDB.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/jena/sdb/RDFServiceSDB.java index 91b57d403..717142695 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/jena/sdb/RDFServiceSDB.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/jena/sdb/RDFServiceSDB.java @@ -146,18 +146,10 @@ public class RDFServiceSDB extends RDFServiceJena implements RDFService { @Override protected QueryExecution createQueryExecution(String queryString, Query q, Dataset d) { - // query performance with OPTIONAL can be dramatically improved on SDB by - // using the default model (union model) instead of the dataset, so long as - // we're not querying particular named graphs - - Matcher optional = OPTIONAL_PATTERN.matcher(queryString); - Matcher graph = GRAPH_PATTERN.matcher(queryString); - - if (optional.find() && !graph.find()) { - return QueryExecutionFactory.create(q, d.getDefaultModel()); - } else { - return QueryExecutionFactory.create(q, d); - } + return QueryExecutionFactory.create(q, d); + + // This used to execute against the default model if the query included an OPTIONAL + // However, in recent Jena this turns out to be much slower than executing against the dataset directly } @Override