memory (sqla): Improve handling of RSM in get_items:
- update queries to handle correctly the `before=""` case and RSM order (older to newer) while having correct order when `max_items` without RSM is used (then order it newer to older). - put RSM code path in a separated method for better readability. - check values of `max_items` and `from_index` and raise exception is they are not positive - when using `before` or `after`, check that the item ID used as reference exists, and raise an exception otherwise. - updated docstring to reflect the new behaviour. - update pubsub cache use of `get_items` with RSM, to adapt to new behaviour. rel 476
This commit is contained in:
parent
9cf71f2119
commit
57d3d8e07e
1 changed files with 176 additions and 124 deletions
|
|
@ -505,20 +505,15 @@ class PubsubCache:
|
|||
node, max_items=max_items, order_by=extra.get(C.KEY_ORDER_BY)
|
||||
)
|
||||
else:
|
||||
desc = False
|
||||
if rsm_request.before == "":
|
||||
before = None
|
||||
desc = True
|
||||
else:
|
||||
before = rsm_request.before
|
||||
# RSM request
|
||||
pubsub_items, metadata = await self.host.memory.storage.get_items(
|
||||
node,
|
||||
max_items=rsm_request.max,
|
||||
before=before,
|
||||
before=rsm_request.before,
|
||||
after=rsm_request.after,
|
||||
from_index=rsm_request.index,
|
||||
order_by=extra.get(C.KEY_ORDER_BY),
|
||||
desc=desc,
|
||||
desc=False,
|
||||
force_rsm=True,
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue