[ 
https://issues.apache.org/jira/browse/UNOMI-1003?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Serge Huber reassigned UNOMI-1003:
----------------------------------

    Assignee: Serge Huber

> Segment and scoring lists ignore the sort, and fail with no limit
> -----------------------------------------------------------------
>
>                 Key: UNOMI-1003
>                 URL: https://issues.apache.org/jira/browse/UNOMI-1003
>             Project: Apache Unomi
>          Issue Type: Bug
>    Affects Versions: unomi-4.0.0
>            Reporter: Serge Huber
>            Assignee: Serge Huber
>            Priority: Major
>             Fix For: unomi-4.0.0
>
>
> h3. Summary
> Two problems affect the lists of segments and scorings:
> * The requested sort order is ignored, so items come back in a random order.
> * With POST /cxs/segments/query or POST /cxs/scoring/query, if the limit is 
> missing or is -1 (which should mean "all"), the call fails with a server 
> error as soon as at least one item matches.
> Both problems are new in 4.0. They came with the change that merges system 
> items and tenant items into one list.
> The goal of this ticket is that these lists are sorted as requested, and that 
> "no limit" returns every match.
> h3. Ways to explore
> * Sort the merged list before taking the requested page.
> * Sort only on a known list of fields (such as id, name and dates), and 
> refuse others.
> * Treat a missing or negative limit as "all", up to the same maximum page 
> size used elsewhere, so one request cannot load an unlimited list.
> h3. How to test
> Manual check: create several segments and scorings, then query them with a 
> sort, with no limit, and with a limit of -1.
> Automated tests to add, for both segments and scorings, with items in both 
> the "system" tenant and a normal tenant. Each must fail on the 4.0.0 release 
> candidate and pass once the fix is in:
> * Unit tests for the sort: ascending and descending, by name and by date, 
> across the merged list.
> * Unit tests for the page: no limit, a limit of -1, a limit of 0, a limit 
> larger than the total, and an offset past the end. Going through all pages 
> returns every item once, with no gaps or duplicates.
> * A unit test that a sort on an unknown field is refused, and that "all" 
> never returns more than the maximum page size.
> * An integration test of POST /cxs/segments/query and POST /cxs/scoring/query 
> with no limit: the answer is 200 with the full list.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to