Commit 8e00652
committed
Release 0.11.3
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]
...1 parent 00403cc commit 8e00652
1 file changed
+6
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
12 | 18 | | |
13 | 19 | | |
14 | 20 | | |
| |||
0 commit comments