Commits
- Commit:
d6dbaa34ff10a9f8ce98003932e09bb1a9c38d46
- From:
- Sergey Bronnikov <sergeyb@tarantool.org>
- Date:
cmake: fixup
NO_CHANGELOG=internal
NO_DOC=internal
NO_TEST=internal
- Commit:
e00992c0a3477ded9b976b903ef620dbc80d85cf
- From:
- Sergey Bronnikov <sergeyb@tarantool.org>
- Date:
cmake: fix building on Mac M1
"Resource temporarily unavailable"
NO_CHANGELOG=internal
NO_DOC=internal
NO_TEST=internal
- Commit:
9da70207aa5c8a2e8dca78ce34a425b18e4711bc
- From:
- Nikita Pettik <korablev@tarantool.org>
- Via:
- Aleksandr Lyapunov <alyapunov@users.noreply.github.com>
- Date:
tuple: refactor flags
Before this patch struct tuple had two boolean bit fields: is_dirty and
has_uploaded_refs. It is worth mentioning that sizeof(boolean) is
implementation depended. However, in code it is assumed to be 1 byte
(there's static assertion restricting the whole struct tuple size by 10
bytes). So strictly speaking it may lead to the compilation error on
some non-conventional system. Secondly, bit fields anyway consume at
least one size of type (i.e. there's no space benefits in using two
uint8_t bit fields - they anyway occupy 1 byte in total). There are
several known pitfalls concerning bit fields:
- Bit field's memory layout is implementation dependent;
- sizeof() can't be applied to such members;
- Complier may raise unexpected side effects
(https://lwn.net/Articles/478657/).
Finally, in our code base as a rule we use explicit masks:
txn flags, vy stmt flags, sql flags, fiber flags.
So, let's replace bit fields in struct tuple with single member called
`flags` and several enum values corresponding to masks (to be more
precise - bit positions in tuple flags).
NO_DOC=<Refactoring>
NO_CHANGELOG=<Refactoring>
NO_TEST=<Refactoring>
- Commit:
ba140128df35d91f4de66435f4e72fa777fbb885
- From:
- Timur Safin <tsafin@tarantool.org>
- Via:
- Kirill Yukhin <kyukhin@tarantool.org>
- Date:
datetime: fix set with hour=nil
We did not retain correctly `hour` attribute if modified
via `:set` method attributes `min`, `sec` or `nsec`.
```
tarantool> a = dt.parse '2022-05-05T00:00:00'
tarantool> a:set{min = 0, sec = 0, nsec = 0}
--
- 2022-05-05T12:00:00Z
...
```
Closes #7298
NO_DOC=bugfix
- Commit:
e797a7483c0608c9c793f7388a2e446d2528768d
- From:
- Vladimir Davydov <vdavydov@tarantool.org>
- Via:
- Vladimir Davydov <vdavydov.dev@gmail.com>
- Date:
vinyl: rotate active memory index in vy_squash_process if necessary
If vy_point_lookup called by vy_sauash_process yields (doing disk read),
a dump may be triggered bumping the L0 generation counter, in which case
we would insert a statement to a sealed vy_mem, as explained in #5080.
Let's check the generation counter and rotate the active vy_mem if
necessary after vy_point_lookup to avoid that.
Closes #5080
NO_DOC=bug fix
NO_TEST=complicated, need stress/perf test to catch bugs like this