OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

cmis message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] Commented: (CMIS-758) Discussion of more powerful batch operations for next version


    [ http://tools.oasis-open.org/issues/browse/CMIS-758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=35374#action_35374 ] 

Jay Brown commented on CMIS-758:
--------------------------------

(Also discussed today - documenting and filling in details) 
Extending Query instead of having a separate batchRetrieve method.  

What would this look like:
We could extend Query syntax to support retrieval of objects from any table all in the same query. This would look something like this:
    SELECT * from cmis:object WHERE IN ('id1', id2', ... ' idn')
Where the ids can be a mixture of any of the 5 types that are supported by CMIS 1.1. 

Benefits:
The benefits are one less method call to define for all of the bindings. 
Also this query syntax is generally useful outside of the batch discussion. 

Limitations: 
Without some additional rules, selection of columns would be limited to only the properties common to all objects.  This can be highly inefficient leaving a client with one of two decisions : 

1. Select just the common columns that you need.  
(cmis:name, cmis:objectId, cmis:baseTypeId, etc. ) 
 This means that you can not see any of the custom properties nor any of the base type specific properties ( e.g. cmis:contentStreamLength) in your query.  

2.  Do a 'SELECT * ' instead of listing the common columns:
This certainly will give the client everything but at the cost of asking for many potentially expensive to compute properties that are not needed. 

Unless we design further extensions to overcome these limitations the only way to have it both ways is to implement the separate retrieval batch method detailed earlier in this record. 

Workaround for this limitation with property filter. 
Define these additional rules for the use of a property filter for this type of query something like this: 
If 'SELECT *' is used (with no property filter) then all properties (custom and base) for all matching objects will be returned.  
If 'SELECT *' is used in combination with a property filter then only the common properties + any matching properties for a given object will be returned. 

For example:
SELECT * from cmis:object where in ('id1', 'id2') 
is issues where id1 is a cmis:document and id2 is a folder. 
And a property filter containing (cmis:canDeleteTree and cmis:isLatestMajorVersion) is included. 

The the document (id1) would come back with all of the common object properties plus cmis:isLatestMajorVersion and the folder (id2) would come back with all of the common props plus cmis:canDeleteTree. 

After the discussion of this and the previous item (setContentStream)  is complete I will recap with a new snapshot of what the update proposal looks like.

> Discussion of more powerful batch operations for next version
> -------------------------------------------------------------
>
>                 Key: CMIS-758
>                 URL: http://tools.oasis-open.org/issues/browse/CMIS-758
>             Project: OASIS Content Management Interoperability Services (CMIS) TC
>          Issue Type: New Feature
>          Components: Domain Model
>    Affects Versions: Proposals for 2.0
>            Reporter: Jay Brown
>
> Creating this record as a placeholder for discussions on this subject. 
> What additional batch features should we support in v.next? (e.g.  batch Create, Delete, ...) 
> What should they look like? etc. 
> Please comment.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tools.oasis-open.org/issues/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]