diff --git a/source/java/org/alfresco/cmis/search/CmisFunctionEvaluationContext.java b/source/java/org/alfresco/cmis/search/CmisFunctionEvaluationContext.java index 9d65174d53..ec61ad212c 100644 --- a/source/java/org/alfresco/cmis/search/CmisFunctionEvaluationContext.java +++ b/source/java/org/alfresco/cmis/search/CmisFunctionEvaluationContext.java @@ -93,6 +93,7 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext EXPOSED_FIELDS.add(AbstractLuceneQueryParser.FIELD_PRIMARYASSOCTYPEQNAME); EXPOSED_FIELDS.add(AbstractLuceneQueryParser.FIELD_DBID); EXPOSED_FIELDS.add(AbstractLuceneQueryParser.FIELD_TAG); + EXPOSED_FIELDS.add(AbstractLuceneQueryParser.FIELD_ANCESTOR); EXPOSED_FIELDS.add("d:"+DataTypeDefinition.ANY.getLocalName()); diff --git a/source/java/org/alfresco/cmis/search/QueryTest.java b/source/java/org/alfresco/cmis/search/QueryTest.java index 544f33191c..4c61bf74cb 100644 --- a/source/java/org/alfresco/cmis/search/QueryTest.java +++ b/source/java/org/alfresco/cmis/search/QueryTest.java @@ -3343,8 +3343,11 @@ public class QueryTest extends BaseCMISTest new String(), false, CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); testQuery("SELECT D.*, O.* FROM CMIS:DOCUMENT AS D JOIN CM:OWNABLE AS O ON D.cmis:objectId = O.cmis:objectId WHERE IN_TREE('" + id + "')", 1, false, "cmis:objectId", new String(), true, CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); + testQuery("SELECT D.*, O.* FROM CMIS:DOCUMENT AS D JOIN CM:OWNABLE AS O ON D.cmis:objectId = O.cmis:objectId WHERE IN_TREE('" + id + ";versionLabel" +"')", 0, false, "cmis:objectId", + new String(), true, CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); - testQuery("SELECT * FROM cmis:folder WHERE IN_TREE('woof://woof/woof')", 6, false, "cmis:objectId", new String(), true); + testQuery("SELECT * FROM cmis:folder WHERE IN_TREE('woof://woof/woof')", 0, false, "cmis:objectId", new String(), true); + testQuery("SELECT * FROM cmis:folder WHERE IN_TREE('woof://woof/woof;woof')", 0, false, "cmis:objectId", new String(), true); } public void test_IN_FOLDER() throws Exception @@ -3360,11 +3363,12 @@ public class QueryTest extends BaseCMISTest new String(), false, CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); testQuery("SELECT D.*, O.* FROM CMIS:DOCUMENT AS D JOIN CM:OWNABLE AS O ON D.cmis:objectId = O.cmis:objectId WHERE IN_FOLDER('" + id + "')", 1, false, "cmis:objectId", new String(), true, CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); + testQuery("SELECT D.*, O.* FROM CMIS:DOCUMENT AS D JOIN CM:OWNABLE AS O ON D.cmis:objectId = O.cmis:objectId WHERE IN_FOLDER('" + id + ";versionLabel"+"')", 0, false, "cmis:objectId", + new String(), true, CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); - // TODO: Id + label is indistinguishable from label and so is never hit in the coes at the moment - // testQuery("SELECT * FROM cmis:folder WHERE IN_FOLDER('woof://woof/woof;woof')", 2, false, "cmis:objectId", - // new String(), false); - testQuery("SELECT * FROM cmis:folder WHERE IN_FOLDER('woof://woof/woof')", 2, false, "cmis:objectId", new String(), true); + // Note folders are unversioned - using a versoin lablel should find nothing + testQuery("SELECT * FROM cmis:folder WHERE IN_FOLDER('woof://woof/woof')", 0, false, "cmis:objectId", new String(), false); + testQuery("SELECT * FROM cmis:folder WHERE IN_FOLDER('woof://woof/woof;woof')", 0, false, "cmis:objectId", new String(), false); } public void testFTS() throws Exception diff --git a/source/java/org/alfresco/opencmis/search/QueryTest.java b/source/java/org/alfresco/opencmis/search/QueryTest.java index e94e733c5d..65a8512a44 100644 --- a/source/java/org/alfresco/opencmis/search/QueryTest.java +++ b/source/java/org/alfresco/opencmis/search/QueryTest.java @@ -3345,8 +3345,11 @@ public class QueryTest extends BaseCMISTest new String(), false, CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); testQuery("SELECT D.*, O.* FROM cmis:document AS D JOIN cm:ownable AS O ON D.cmis:objectId = O.cmis:objectId WHERE IN_TREE('" + id + "')", 1, false, "cmis:objectId", new String(), true, CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); + testQuery("SELECT D.*, O.* FROM cmis:document AS D JOIN cm:ownable AS O ON D.cmis:objectId = O.cmis:objectId WHERE IN_TREE('" + id + ";versionLabel" + "')", 0, false, "cmis:objectId", + new String(), true, CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); - testQuery("SELECT * FROM cmis:folder WHERE IN_TREE('woof://woof/woof')", 6, false, "cmis:objectId", new String(), true); + testQuery("SELECT * FROM cmis:folder WHERE IN_TREE('woof://woof/woof')", 0, false, "cmis:objectId", new String(), true); + testQuery("SELECT * FROM cmis:folder WHERE IN_TREE('woof://woof/woof;woof')", 0, false, "cmis:objectId", new String(), true); } public void test_IN_FOLDER() throws Exception @@ -3361,11 +3364,14 @@ public class QueryTest extends BaseCMISTest new String(), false, CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); testQuery("SELECT D.*, O.* FROM cmis:document AS D JOIN cm:ownable AS O ON D.cmis:objectId = O.cmis:objectId WHERE IN_FOLDER('" + id + "')", 1, false, "cmis:objectId", new String(), true, CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); + testQuery("SELECT D.*, O.* FROM cmis:document AS D JOIN cm:ownable AS O ON D.cmis:objectId = O.cmis:objectId WHERE IN_FOLDER('" + id + ";versionLabel" + "')", 0, false, "cmis:objectId", + new String(), true, CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); // TODO: Id + label is indistinguishable from label and so is never hit in the coes at the moment // testQuery("SELECT * FROM cmis:folder WHERE IN_FOLDER('woof://woof/woof;woof')", 2, false, "cmis:objectId", // new String(), false); - testQuery("SELECT * FROM cmis:folder WHERE IN_FOLDER('woof://woof/woof')", 2, false, "cmis:objectId", new String(), true); + testQuery("SELECT * FROM cmis:folder WHERE IN_FOLDER('woof://woof/woof')", 0, false, "cmis:objectId", new String(), false); + testQuery("SELECT * FROM cmis:folder WHERE IN_FOLDER('woof://woof/woof;woof')", 0, false, "cmis:objectId", new String(), false); } public void testFTS() throws Exception