* Add optional parentheses to TTL element and alter command
* Add some basic tests
* Extend tests with more test cases
* Add one more test case
* Add server setting to control new formatting behavior
* Automatic style fix
* Fix segfault in `clickhouse-format` related to new server setting
* Remove format_ttl_expressions_with_parentheses
* Fix unit test compilation failures
* Introduce global flag to control the new formatting behavior
* Revert "Fix segfault in `clickhouse-format` related to new server setting"
This reverts commit d7131a3145.
* Revert accidental changes
* Revert accidental include reorder
* Revert accidental changes
* Enable new format in client and local server
---------
Co-authored-by: robot-clickhouse <robot-clickhouse@users.noreply.github.com>
* Configure keeper for perf tests
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
* Improve performance of SELECTs with active mutations
getAlterMutationCommandsForPart() can be a hot path for query execution
when there are pending mutations.
- LOG_TEST - it is not only check one bool, but actually a bunch of
atomics as well.
- Return std::vector over std::map (map is not required there) - no
changes in performance.
- Copy only RENAME_COLUMN (since only this mutation is required by
AlterConversions).
And here are results:
run|result
-|-
SELECT w/o ALTER|queries: 1565, QPS: 355.259, RPS: 355.259
SELECT w/ ALTER unpatched|queries: 2099, QPS: 220.623, RPS: 220.623
SELECT w/ ALTER and w/o LOG_TEST|queries: 2730, QPS: 235.859, RPS: 235.859
SELECT w/ ALTER and w/o LOG_TEST and w/ RENAME_COLUMN only|queries: 2995, QPS: 290.982, RPS: 290.982
But there are still room for improvements, at least MergeTree engines
could implement getStorageSnapshotForQuery().
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
* Add AlterConversions::supportsMutationCommandType(), flatten vector<vector<MutationCommand>>
* Work around what appears to be a clang static analysis bug
---------
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
Co-authored-by: Michael Kolupaev <michael.kolupaev@clickhouse.com>