From a1146c40f9bda185401769a158da28219bd37b5c Mon Sep 17 00:00:00 2001 From: ahind Date: Tue, 3 Oct 2017 10:52:51 +0100 Subject: [PATCH] SEARCH-433 CMIS QL - Support inner and left outer joins from/to a single type and any number of aspects - fixes for review comments --- .../java/org/alfresco/repo/search/impl/querymodel/Source.java | 2 +- .../repo/search/impl/querymodel/impl/BaseSelector.java | 4 +--- .../org/alfresco/repo/search/impl/parsers/cmis_test.gunit | 4 ++++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/alfresco/repo/search/impl/querymodel/Source.java b/src/main/java/org/alfresco/repo/search/impl/querymodel/Source.java index 6ee6792153..28364584c7 100644 --- a/src/main/java/org/alfresco/repo/search/impl/querymodel/Source.java +++ b/src/main/java/org/alfresco/repo/search/impl/querymodel/Source.java @@ -43,5 +43,5 @@ public interface Source public JoinType getJoinType(); - public void setJoinType(JoinType joinType); + public void setJoinType(JoinType joinType); } diff --git a/src/main/java/org/alfresco/repo/search/impl/querymodel/impl/BaseSelector.java b/src/main/java/org/alfresco/repo/search/impl/querymodel/impl/BaseSelector.java index 19bbe1de9b..5ec0b0db24 100644 --- a/src/main/java/org/alfresco/repo/search/impl/querymodel/impl/BaseSelector.java +++ b/src/main/java/org/alfresco/repo/search/impl/querymodel/impl/BaseSelector.java @@ -60,10 +60,8 @@ public class BaseSelector implements Selector return alias; } - - @Override - public JoinType getJoinType() + public JoinType getJoinType() { return joinType; } diff --git a/src/test/resources/org/alfresco/repo/search/impl/parsers/cmis_test.gunit b/src/test/resources/org/alfresco/repo/search/impl/parsers/cmis_test.gunit index 61e5bbcaab..601c9fcf01 100644 --- a/src/test/resources/org/alfresco/repo/search/impl/parsers/cmis_test.gunit +++ b/src/test/resources/org/alfresco/repo/search/impl/parsers/cmis_test.gunit @@ -25,6 +25,10 @@ query: "(QUERY ALL_COLUMNS (SOURCE (TABLE_REF cmis:document d) (JOIN (SOURCE (TABLE_REF cm:titled t)) (ON (COLUMN_REF cmis:objectId d) = (COLUMN_REF cmis:objectId t))) (JOIN (SOURCE (TABLE_REF cm:ownable o)) LEFT (ON (COLUMN_REF cmis:objectId d) = (COLUMN_REF cmis:objectId o)))))" "SELECT d.*, t.*, o.* from cmis:document d JOIN cm:titled t ON d.cmis:objectId = t.cmis:objectId LEFT OUTER JOIN cm:ownable o ON d.cmis:objectId = o.cmis:objectId" -> "(QUERY (COLUMNS (ALL_COLUMNS d) (ALL_COLUMNS t) (ALL_COLUMNS o)) (SOURCE (TABLE_REF cmis:document d) (JOIN (SOURCE (TABLE_REF cm:titled t)) (ON (COLUMN_REF cmis:objectId d) = (COLUMN_REF cmis:objectId t))) (JOIN (SOURCE (TABLE_REF cm:ownable o)) LEFT (ON (COLUMN_REF cmis:objectId d) = (COLUMN_REF cmis:objectId o)))))" +"SELECT * from cmis:document d LEFT OUTER JOIN cm:titled t ON d.cmis:objectId = t.cmis:objectId" OK +"SELECT * from cmis:document d LEFT JOIN cm:titled t ON d.cmis:objectId = t.cmis:objectId" OK +"SELECT * from cmis:document d RIGHT OUTER JOIN cm:titled t ON d.cmis:objectId = t.cmis:objectId" OK +"SELECT * from cmis:document d RIGHT JOIN cm:titled t ON d.cmis:objectId = t.cmis:objectId" OK "SELECT * from FOLDER JOIN RELATIONSHIP ON FOLDER.ID = RELATIONSHIP.ID" OK "SELECT * from FOLDER F JOIN RELATIONSHIP RL ON F.ID = RL.ID" OK