RYA-466 Updated regexes to not conflict on binding names. Closes #279
Project: http://git-wip-us.apache.org/repos/asf/incubator-rya/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-rya/commit/770bd7e4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-rya/tree/770bd7e4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-rya/diff/770bd7e4 Branch: refs/heads/master Commit: 770bd7e4ac971b6737651266247129fc5346b5cb Parents: 010c692 Author: Andrew Smith <smith...@gmail.com> Authored: Thu Mar 1 15:20:23 2018 -0500 Committer: Valiyil <puja.vali...@parsons.com> Committed: Fri Mar 9 13:01:31 2018 -0500 ---------------------------------------------------------------------- .../org/apache/rya/api/utils/QueryInvestigator.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/770bd7e4/common/rya.api/src/main/java/org/apache/rya/api/utils/QueryInvestigator.java ---------------------------------------------------------------------- diff --git a/common/rya.api/src/main/java/org/apache/rya/api/utils/QueryInvestigator.java b/common/rya.api/src/main/java/org/apache/rya/api/utils/QueryInvestigator.java index a6c93e9..54f0010 100644 --- a/common/rya.api/src/main/java/org/apache/rya/api/utils/QueryInvestigator.java +++ b/common/rya.api/src/main/java/org/apache/rya/api/utils/QueryInvestigator.java @@ -20,10 +20,9 @@ package org.apache.rya.api.utils; import static java.util.Objects.requireNonNull; +import java.util.regex.Pattern; + import org.openrdf.query.MalformedQueryException; -import org.openrdf.query.parser.ParsedGraphQuery; -import org.openrdf.query.parser.ParsedQuery; -import org.openrdf.query.parser.QueryParserUtil; import org.openrdf.query.parser.sparql.SPARQLParser; import edu.umd.cs.findbugs.annotations.DefaultAnnotation; @@ -51,10 +50,10 @@ public class QueryInvestigator { try { // Constructs are queries, so try to create a ParsedQuery. - final ParsedQuery parsedQuery = PARSER.parseQuery(sparql, null); + PARSER.parseQuery(sparql, null); // Check to see if the SPARQL looks like a CONSTRUCT query. - return parsedQuery instanceof ParsedGraphQuery; + return Pattern.matches("[\\s\\S]*?construct\\s*?\\{[\\s\\S]*?\\}[\\s\\S]*?where\\s*\\{[\\s\\S]*?\\}", sparql.toLowerCase()); } catch(final MalformedQueryException queryE) { try { @@ -84,8 +83,9 @@ public class QueryInvestigator { try { // Inserts are updated, so try to create a ParsedUpdate. PARSER.parseUpdate(sparql, null); - final String strippedOperation = QueryParserUtil.removeSPARQLQueryProlog(sparql.toLowerCase()); - return strippedOperation.startsWith("insert"); + + // Check to see if the SPARQL looks like an INSERT query. + return Pattern.matches("[\\s\\S]*?insert\\s*?\\{[\\s\\S]*?\\}[\\s\\S]*?where\\s*\\{[\\s\\S]*?\\}", sparql.toLowerCase()); } catch(final MalformedQueryException updateE) { try { // Maybe it's a query.