You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Overview
This is a bugfix release. Several cases of pagination using select
with after was fixed or improved. Warning has been added to
potentially long select and count calls. Storage select errors
were reworked to be consistent with other calls errors.
Breaking changes
There are no breaking changes in the release.
New features
* Optimize `crud.select()` without conditions and with
`after` (PR #295).
* A critical log entry containing the current stack traceback is
created upon potentially long `select` and `count` calls —
an user can explicitly request a full scan through by passing
`fullscan=true` to `select` or `count` options table argument
in which case a log entry will not be created (#276).
Bugfixes
* Make select error description more informative when merger
built-in module or tuple-merger external module is used
in case of disabled/uninit storage (#229).
* `crud.select()` if a condition is '<=' and it's
value < `after` (PR #295).
Previous releases:
tarantool> crud.select('developers',
> {{'<=', 'id', 3}}, {first = 10, after = rows[5]}).rows
---
- - [2, 401, 'Sergey', 'Allred', 21]
- [1, 477, 'Alexey', 'Adams', 20]
...
After this release:
tarantool> crud.select('developers',
> {{'<=', 'id', 3}}, {first = 10, after = rows[5]}).rows
---
- - [3, 2804, 'Pavel', 'Adams', 27]
- [2, 401, 'Sergey', 'Allred', 21]
- [1, 477, 'Alexey', 'Adams', 20]
...
* `crud.select()` filtration by a first condition if the condition
is '>' or '>=' and it's value > `after` (PR #295).
Previous releases:
tarantool> crud.select('developers',
> {{'>=', 'id', 5}}, {first = 10, after = rows[2]}).rows
---
- - [3, 2804, 'Pavel', 'Adams', 27]
- [4, 1161, 'Mikhail', 'Liston', 51]
- [5, 1172, 'Dmitry', 'Jacobi', 16]
- [6, 1064, 'Alexey', 'Sidorov', 31]
...
After this release:
tarantool> crud.select('developers',
> {{'>=', 'id', 5}}, {first = 10, after = rows[2]}).rows
---
- [5, 1172, 'Dmitry', 'Jacobi', 16]
- [6, 1064, 'Alexey', 'Sidorov', 31]
...
* `crud.select()` results order with negative `first` (PR #295).
* `crud.select()` if a condition is '=' or '==' with
negative `first` (PR #295).
Suppose we have a non-unique secondary index by the field `age`
field and a space:
tarantool> crud.select('developers', nil, {first = 10})
---
- metadata: [{'name': 'id', 'type': 'unsigned'},
{'name': 'bucket_id', 'type': 'unsigned'},
{'name': 'name', 'type': 'string'},
{'name': 'surname', 'type': 'string'},
{'name': 'age', 'type': 'number'}]
rows:
- [1, 477, 'Alexey', 'Adams', 20]
- [2, 401, 'Sergey', 'Allred', 27]
- [3, 2804, 'Pavel', 'Adams', 27]
- [4, 1161, 'Mikhail', 'Liston', 27]
- [5, 1172, 'Dmitry', 'Jacobi', 27]
- [6, 1064, 'Alexey', 'Sidorov', 31]
- null
...
Previous releases:
tarantool> crud.select('developers',
> {{'=', 'age', 27}}, {first = -10, after = rows[4]}).rows
---
- []
...
After this release:
tarantool> crud.select('developers',
> {{'=', 'age', 27}}, {first = -10, after = rows[4]}).rows
---
- - [2, 401, 'Sergey', 'Allred', 27]
- [3, 2804, 'Pavel', 'Adams', 27]
...
0 commit comments