P.S. Looks like settings can be converted between SettingUInt64 and
SettingBool without breaking binary protocol.
FWIW maybe it is a good idea to change the semantics of the settings as
follow (but I guess that changing semantic is not a good idea, better to
add new settings and deprecate old ones):
- optimize_skip_unused_shards -- accept nesting level on which the
optimization will work
- force_skip_optimize_shards_nesting -- accept nesting level on which
the optimization will work
Example of such functions is rand()
And this patch disables only optimize_skip_unused_shards, i.e. INSERT
code path does not changed, so it will work as before.
* workig commit №1
* working commit №2
* first version of ArithmeticOperationsInAgrFuncOptimize (min, max, sum)
* fix conflicts
* fix №2
* attempt №3
* Description + little mistake
* fix style + expanded optimization + add performance test
* style + merge with new version
* one more branch
* bug fix + merge
* just merge
* some code style and logic fixes
* little changes
* tests
* test(2)
* style
* seems to have fixed everything that was required
* bug fix
* style
* build fix
* fix typo
* fix clang-10 warning
* fix clang-10 warning
* nolint
* add new files to ya.make
* extract all functions from Any
* add last new lines.
* extract all functions from Any
* add last new lines.
* build + requested changes
* code style
* build + little perf test + anyLast
* minor changes
* bug fix
* minor changes
* another minor changes
* fix + experement
* experement 2.0
* experement 3.0
* experement 3.1
* experement 4.0
* last experement(think so)
* just another attempt to fix UB
* minor changes
* I think I won
* ya.make
* fix requested changes
Co-authored-by: Artem Zuikov <chertus@gmail.com>