Skip to content

Describe supported Tarantool versions with limitations #210

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 6 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,58 @@ The `CRUD` module allows to perform CRUD operations on the cluster.
It also provides the `crud-storage` role for
[Tarantool Cartridge](https://github.com/tarantool/cartridge).

# Supported Tarantool versions

CRUD features depends on Tarantool features like key_def, merger, UUID modules
and JSON paths support, JSON path updates and absent nullable fields. We do our
best to provide uniform support for all supported Tarantool version with help
of compatibility layer, runtime feature detection etc. but anyway some
Tarantool versions has limited support in CRUD.

Please consult with a list below to choose a Tarantool version compatible with
CRUD module before use:

- 1.10: since 1.10.7-91 with limited merger <sup>1</sup> and
keydef<sup>2</sup> modules support, without UUID keys comparison, JSON path
indexes, JSON path updates and limited support of absent nullable fields.
- 2.2: since 2.2.0-268 with limited merger module support, without UUID keys
comparison, JSON path indexes, JSON path updates and limited support of absent
nullable fields.
- 2.3: since 2.3.2-99 without UUID keys comparison, JSON path indexes and
limited support of absent nullable fields.
- 2.5: since 2.5.0-275 with key_def and merger modules and without JSON path
indexes and limited support of absent nullable fields.
- 2.6: since 2.6.2-99 with limited support of absent nullable fields.
- 2.7: since 2.7.1-102 with limited support of absent nullable fields.
- 2.8: since 2.8.0-307

1. Differences from the built-in merger module - https://github.com/tarantool/tuple-merger#backward-and-forward-compatibility-guarantees
2. Differences from the built-in key_def module - https://github.com/tarantool/tuple-keydef#differences-from-the-built-in-module

<details>
<summary>Support of features used by CRUD in Tarantool versions</summary>

For more information see the table below that describes Tarantool's versions
and features for what CRUD module depends on.

| Branch | merger | tuple-merger | key_def | tuple-keydef | UUID | JSON paths | JSON path updates | abs. nullable fields |
|--------|-------------------------|--------------|--------------|--------------|--------------|-------------|-------------------|-----------------------|
| 1.10 | Unsupported | 1.10.7-91 | Unsupported | 1.10.7-85 | Unsupported | Unsupported | Unsupported | Partially<sup>2</sup>
| 2.2 | Unsupported<sup>1</sup> | Unsupported | All versions | Unsupported | Unsupported | Unsupported | Unsupported | Partially<sup>2</sup>
| 2.3 | 2.3.2-99<sup>1</sup> | Unsupported | All versions | Unsupported | Unsupported | Unsupported | 2.3.0-316 | Partially<sup>2</sup>
| 2.5 | 2.5.0-275<sup>1</sup> | 2.5.1-150 | All versions | 2.5.1-145 | All versions | Unsupported | All versions | Partially<sup>2</sup>
| 2.6 | All versions | 2.6.0-193 | All versions | 2.6.0-188 | All versions | 2.6.2-99 | All versions | Partially<sup>2</sup>
| 2.7 | All versions | All versions | All versions | All versions | All versions | 2.7.1-102 | All versions | Partially<sup>2</sup>
| 2.8 | All versions | All versions | All versions | All versions | All versions | 2.8.0-113 | All versions | 2.8.0-307

1. Module merger has been added in 2.2.0-268-gc7915eccd, however support was
limited due to [#4954](https://github.com/tarantool/tarantool/issues/4954).
2. Absent nullable fields partially supported for 1.10+,
see [6c30483](https://github.com/tarantool/tarantool/commit/e17a53843fa19603213d5a0f4d08750335223436)
and [Add intermediate nullable fields on update if not present in tuple](https://github.com/tarantool/crud/issues/113).

</details>

## API

The CRUD operations should be called from router.
Expand Down