You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Dan Klco (Jira)" <ji...@apache.org> on 2022/03/29 14:15:00 UTC

[jira] [Comment Edited] (SLING-11230) Support Limit and Offset via JcrResourceProvider / findResources

    [ https://issues.apache.org/jira/browse/SLING-11230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17514119#comment-17514119 ] 

Dan Klco edited comment on SLING-11230 at 3/29/22, 2:14 PM:
------------------------------------------------------------

Updated ticket as per discussion on PR#21.

I am concerned about the effort / impact of adding new methods to the ResourceResolver interface, though I would be interested to get other's perspective on that. 

My thought would be to add a new package to the API specifically for query support and in that provide a service interface and SPI for providers to implement which supports:

 - Queries with limits and offsets
 - Queries returning Streams as well as Iterators
 - Queries which automatically Adapt the result to the desired type
 - A SPI class for lazy adaptation of Stream and Iterators


was (Author: dklco):
Updated ticket as per discussion on PR#21.

I am concerned about adding new methods to the ResourceResolver interface, though I would be interested to get other's perspective on that. 

My thought would be to add a new package to the API specifically for query support and in that provide a service interface and SPI for providers to implement which supports:

 - Queries with limits and offsets
 - Queries returning Streams as well as Iterators
 - Queries which automatically Adapt the result to the desired type
 - A SPI class for lazy adaptation of Stream and Iterators

> Support Limit and Offset via JcrResourceProvider / findResources
> ----------------------------------------------------------------
>
>                 Key: SLING-11230
>                 URL: https://issues.apache.org/jira/browse/SLING-11230
>             Project: Sling
>          Issue Type: Improvement
>          Components: JCR
>            Reporter: Dan Klco
>            Assignee: Dan Klco
>            Priority: Minor
>
> *Problem Statement*
> In addition to not supporting global limits, there are good reasons that a developer may want to return only a sub-set of the query results when executing a query. For example returning the 10 latest uploaded files. 
> Currently this can be accomplished by executing a query and then only iterating to the 10th item, however a much larger query set may be fetched from the node store than required to service the intended use case. 
> In addition, to support paging, the current implementation would require retrieving and iterating over the Resources until the desired start point is found then reading the subsequent Resources.
> _However_ changing the API contract for the ResourceResolver to either add a new method with the start and limit values would have a non-insignificant ripple effect into the implementations, mocks and providers which would be required to support this new method.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)