You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by je...@apache.org on 2017/02/15 15:04:13 UTC
svn commit: r1783111 - in
/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query:
QueryObject.java QueryUtilBase.java QueryUtilStrict.java
Author: jens
Date: Wed Feb 15 15:04:13 2017
New Revision: 1783111
URL: http://svn.apache.org/viewvc?rev=1783111&view=rev
Log:
QueryParser: add a flag to make relaxed parsing optional (https://issues.apache.org/jira/browse/CMIS-1012)
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryObject.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilBase.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryObject.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryObject.java?rev=1783111&r1=1783110&r2=1783111&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryObject.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryObject.java Wed Feb 15 15:04:13 2017
@@ -80,6 +80,10 @@ public class QueryObject {
};
private String errorMessage;
+
+ public enum ParserMode {MODE_STRICT, MODE_ALLOW_RELAXED_SELECT};
+
+ private ParserMode selectMode = ParserMode.MODE_STRICT;
public static class JoinSpec {
@@ -137,6 +141,10 @@ public class QueryObject {
typeMgr = tm;
}
+ public void setSelectMode(ParserMode mode) {
+ selectMode = mode;
+ }
+
public Map<Integer, CmisSelector> getColumnReferences() {
return Collections.unmodifiableMap(columnReferences);
}
@@ -559,7 +567,9 @@ public class QueryObject {
}
}
- if (noFound > 1 && !isStar) {
+ if (noFound == 0 && selectMode == ParserMode.MODE_STRICT) {
+ throw new CmisQueryException(propName + " is not a property query name in any of the types in from ...");
+ } else if (noFound > 1 && !isStar) {
throw new CmisQueryException(propName + " is not a unique property query name within the types in from ...");
} else if (null != tdFound) {
validateColumnReferenceAndResolveType(tdFound, colRef);
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilBase.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilBase.java?rev=1783111&r1=1783110&r2=1783111&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilBase.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilBase.java Wed Feb 15 15:04:13 2017
@@ -73,9 +73,12 @@ public abstract class QueryUtilBase<T ex
walkStatement();
}
- protected QueryUtilBase(String statement, TypeManager tm, PredicateWalkerBase pw) {
+ protected QueryUtilBase(String statement, TypeManager tm, PredicateWalkerBase pw, QueryObject.ParserMode mode) {
walker = null;
queryObj = new QueryObject(tm);
+ if (mode != null) {
+ queryObj.setSelectMode(mode);
+ }
predicateWalker = pw;
this.statement = statement;
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java?rev=1783111&r1=1783110&r2=1783111&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java Wed Feb 15 15:04:13 2017
@@ -38,11 +38,16 @@ public class QueryUtilStrict extends Que
private boolean parseFulltext = true;
public QueryUtilStrict(String statement, TypeManager tm, PredicateWalkerBase pw) {
- super(statement, tm, pw);
+ super(statement, tm, pw, null);
}
public QueryUtilStrict(String statement, TypeManager tm, PredicateWalkerBase pw, boolean parseFulltext) {
- super(statement, tm, pw);
+ super(statement, tm, pw, null);
+ this.parseFulltext = parseFulltext;
+ }
+
+ public QueryUtilStrict(String statement, TypeManager tm, PredicateWalkerBase pw, boolean parseFulltext, QueryObject.ParserMode mode) {
+ super(statement, tm, pw, mode);
this.parseFulltext = parseFulltext;
}