push
github
config/schema: deep-merge tables under `any` type `<schema object>:merge()` now performs a deep merge inside an `any` scalar value if left-hand and right-hand values are both tables, where all the keys are strings. The cluster configuration options that are marked as `any` in the schema (fields of `app.cfg` and `roles_cfg`) are now merged deeply. Fixes #10450 @TarantoolBot document Title: `app.cfg` and `roles_cfg` are now merged deeply Since Tarantool 3.4.0, 3.3.1, 3.2.2 `<schema object>:merge()` performs a deep merge for table values marked with the `any` type in the schema if all the keys in these tables are strings. Please, update the method description in [1] accordingly. Fields of `app.cfg` and `roles_cfg` are defined as `any` in the cluster configuration schema, so now it is possible to set options on different levels and get a merged result from `config:get()`. The roles documentation in [2] needs an update, from the following words: > If a configuration for the same role is provided at different levels > <...> [1]: https://www.tarantool.io/en/doc/latest/reference/reference_lua/config/utils_schema/#config-schema-object-merge [2]: https://www.tarantool.io/en/doc/latest/platform/configuration/#configuration-application-roles (cherry picked from commit 4c302320c)
69632 of 123506 branches covered (56.38%)
102584 of 117443 relevant lines covered (87.35%)
3082076.57 hits per line