Commit Graph

1493 Commits

Author SHA1 Message Date
Mike Kot
4c391f8e99
SYSTEM RESTORE REPLICA replica [ON CLUSTER cluster] (#13652)
* initial commit: add setting and stub

* typo

* added test stub

* fix

* wip merging new integration test and code proto

* adding steps interpreters

* adding firstly proposed solution (moving parts etc)

* added checking zookeeper path existence

* fixing the include

* fixing and sorting includes

* fixing outdated struct

* fix the name

* added ast ptr as level of indirection

* fix ref

* updating the changes

* working on test stub

* fix iterator -> reference

* revert rocksdb submodule update

* fixed show privileges test

* updated the test stub

* replaced rand() with thread_local_rng(), updated the tests

updated the test

fixed test config path

test fix

removed error messages

fixed the test

updated the test

fixed string literal

fixed literal

typo: =

* fixed the empty replica error message

* updated the test and the code with logs

* updated the possible test cases, updated

* added the code/test milestone comments

* updated the test (added more testcases)

* replaced native assert with CH one

* individual replicas recursive delete fix

* updated the AS db.name AST

* two small logging fixes

* manually generated AST fixes

* Updated the test, added the possible algo change

* Some thoughts about optimizing the solution:

ALTER MOVE PARTITION .. TO TABLE -> move to detached/ + ALTER ... ATTACH

* fix

* Removed the replica sync in test as it's invalid

* Some test tweaks

* tmp

* Rewrote the algo by using the executeQuery instead of

hand-crafting the ASTPtr.

Two questions still active.

* tr: logging active parts

* Extracted the parts moving algo into a separate helper function

* Fixed the test data and the queries slightly

* Replaced query to system.parts to direct invocation,

started building the test that breaks on various parts.

* Added the case for tables when at least one replica is alive

* Updated the test to test replicas restoration by detaching/attaching

* Altered the test to check restoration without replica restart

* Added the tables swap in the start if the server failed last time

* Hotfix when only /replicas/replica... path was deleted

* Restore ZK paths while creating a replicated MergeTree table

* Updated the docs, fixed the algo for individual replicas restoration case

* Initial parts table storage fix, tests sync fix

* Reverted individual replica restoration to general algo

* Slightly optimised getDataParts

* Trying another solution with parts detaching

* Rewrote algo without any steps, added ON CLUSTER support

* Attaching parts from other replica on restoration

* Getting part checksums from ZK

* Removed ON CLUSTER, finished working solution

* Multiple small changes after review

* Fixing parallel test

* Supporting rewritten form on cluster

* Test fix

* Moar logging

* Using source replica as checksum provider

* improve test, remove some code from parser

* Trying solution with move to detached + forget

* Moving all parts (not only Committed) to detached

* Edited docs for RESTORE REPLICA

* Re-merging

* minor fixes

Co-authored-by: Alexander Tokmakov <avtokmakov@yandex-team.ru>
2021-06-20 11:24:43 +03:00
Azat Khuzhin
2bc9664b52 Catch "Maximum parse depth" error in fuzzer
This exception should not fail the fuzzer check like here [1].

  [1]: https://clickhouse-test-reports.s3.yandex.net/25494/c6339b4c08ad8f50bf34831367de9a1ea90b1e09/fuzzer_msan/report.html#fail1
2021-06-19 21:34:37 +03:00
alexey-milovidov
d1348f2275
Merge pull request #25419 from nikitamikhaylov/copier-sharding-key
Fix segfault when sharding_key is absent in config
2021-06-19 01:23:44 +03:00
kssenii
bdc8fe1ca0 Merge branch 'master' of github.com:ClickHouse/ClickHouse into progress-bar 2021-06-18 09:33:29 +03:00
alesapin
dbe4ba8c2c Merge branch 'update_buffer_size_in_nuraft' into zookeeper_snapshots 2021-06-17 19:51:11 +03:00
alesapin
1a6abb4db4 Better 2021-06-17 19:32:50 +03:00
Nikita Mikhaylov
0d0ea91a0f fix 2021-06-17 15:58:05 +00:00
alexey-milovidov
04be5437d9
Merge pull request #25296 from abyss7/http-issues
Add settings for HTTP header limitations
2021-06-17 01:50:48 +03:00
alexey-milovidov
43cee9018e
Merge pull request #25281 from ClickHouse/client-update-prompt-on-reconnect
Update prompt in client when reconnecting
2021-06-17 01:40:08 +03:00
Maksim Kita
67e9b85951 Merge ext into common 2021-06-16 23:28:41 +03:00
Kseniia Sumarokova
b4840bc4a9
Merge pull request #25280 from kssenii/bridges-constraints
Privilege drop and resource constraints for bridge processes
2021-06-16 22:13:16 +03:00
Ivan Lezhankin
ba08a580f8 Add test 2021-06-16 17:33:14 +03:00
mergify[bot]
b179184b3b
Merge branch 'master' into fix-install-toctou 2021-06-16 05:57:49 +00:00
Ivan Lezhankin
b182d87d9c Add settings for HTTP header limitations 2021-06-15 17:33:46 +03:00
Nikita Mikhaylov
a52bba91b7
Merge pull request #16401 from abyss7/ast-table-identifier-2
ASTTableIdentifier part #2: Introduce ASTTableIdentifier
2021-06-15 13:51:30 +03:00
Alexey Milovidov
e3653e70da Update prompt in client when reconnecting 2021-06-15 04:43:35 +03:00
kssenii
b152d7589f Bridge contsraints 2021-06-15 01:01:10 +00:00
Alexey Milovidov
22bd65996c Fix TOCTOU in Install 2021-06-15 00:58:29 +03:00
alexey-milovidov
a2c6b98b94
Merge pull request #25146 from oxidecomputer/master
Adds a better way to include binary resources
2021-06-13 16:13:34 +03:00
mergify[bot]
9cfedd9c64
Merge branch 'master' into progress-bar 2021-06-12 01:15:23 +00:00
alexey-milovidov
3792d20061
Merge pull request #24863 from azat/echo-hint
clickhouse-client: echo hint improvements
2021-06-12 03:23:54 +03:00
alexey-milovidov
b64950b193
Merge pull request #25045 from kssenii/odbc-fixes
odbc fix
2021-06-12 03:13:39 +03:00
Ivan
a7fa4e641c
Merge branch 'master' into ast-table-identifier-2 2021-06-10 16:43:22 +03:00
Alexander Kuzmenkov
c0e6aa97a6
Merge pull request #24734 from ClickHouse/aku/frame-expressions
support expressions in window frame
2021-06-10 00:25:32 +03:00
Benjamin Naecker
c3506bf16d Adds a better way to include binary resources
- Uses a small assembly file to include binary resources, rather than
  objcopy
- Updates `base/common/getResource.cpp` for this new method of inclusion
- Removes linux-only guards in CMake files, as this solution is
  cross-platform.

The resulting binary resources are available in the ClickHouse server
binary on Linux, macOS, and illumos platforms. FreeBSD has not been
tested, but will likely work as well.
2021-06-09 14:03:30 -07:00
Nikita Mikhaylov
82b8d45cd7
Merge pull request #23518 from nikitamikhaylov/copier-stuck
Bugfixes and improvements of `clickhouse-copier`
2021-06-09 11:36:42 +03:00
mergify[bot]
3a47feedb0
Merge branch 'master' into progress-bar 2021-06-09 08:04:48 +00:00
Azat Khuzhin
18e8f0eb5e Add ability to push down LIMIT for distributed queries
This way the remote nodes will not need to send all the rows, so this
will decrease network io and also this will make queries w/
optimize_aggregation_in_order=1/LIMIT X and w/o ORDER BY faster since it
initiator will not need to read all the rows, only first X (but note
that for this you need to your data to be sharded correctly or you may
get inaccurate results).

Note, that having lots of processing stages will increase the complexity
of interpreter (it is already not that clean and simple right now).

Although using separate QueryProcessingStage looks pretty natural.

Another option is to make WithMergeableStateAfterAggregation always, but
in this case you will not be able to disable only this optimization,
i.e. if there will be some issue with it.

v2: fix OFFSET
v3: convert 01814_distributed_push_down_limit test to .sh and add retries
v4: add test with OFFSET
v5: add new query stage into the bash completion
v6/tests: use LIMIT O,L syntax over LIMIT L OFFSET O since it is broken in ANTLR parser
          https://clickhouse-test-reports.s3.yandex.net/23027/a18a06399b7aeacba7c50b5d1e981ada5df19745/functional_stateless_tests_(antlr_debug).html#fail1
v7/tests: set use_hedged_requests to 0, to avoid excessive log entries on retries
          https://clickhouse-test-reports.s3.yandex.net/23027/a18a06399b7aeacba7c50b5d1e981ada5df19745/functional_stateless_tests_flaky_check_(address).html#fail1
2021-06-09 02:29:50 +03:00
kssenii
bd39c9fdd1 Better way 2021-06-07 18:56:46 +00:00
Ivan
579250168f
Merge branch 'master' into ast-table-identifier-2 2021-06-07 20:30:39 +03:00
kssenii
ba56465a99 Fix 2021-06-07 12:15:24 +00:00
Azat Khuzhin
8ec874dc33 Add writeRetry helper 2021-06-07 09:38:15 +03:00
alexey-milovidov
be66ecacef
Merge pull request #24918 from cn-ds/patch-1
Improve documentation about <remote_url_allow_hosts>
2021-06-07 03:01:17 +03:00
mergify[bot]
d8ed474062
Merge branch 'master' into copier-stuck 2021-06-05 01:40:23 +00:00
Nikita Mikhaylov
f6932026d5 delete partition from original table in case of errors while moving 2021-06-04 14:21:47 +00:00
Nikita Mikhaylov
68c92cd93e style 2021-06-03 23:58:47 +00:00
Nikita Mikhaylov
b978405f4a fix 2021-06-03 15:50:44 +00:00
Nikita Mikhaylov
6c583b0e36 Merge branch 'master' of github.com:ClickHouse/ClickHouse into copier-stuck 2021-06-03 15:05:23 +00:00
Amos Bird
9dfa4c06bd
Try reusing built sets during multi-pass analysis 2021-06-03 22:06:05 +08:00
cn-ds
aa98d6be3a
Improve documentation about <remote_url_allow_hosts>
Adding an example in the comments about the xml tag to use to specify allowed host

https://github.com/ClickHouse/ClickHouse/issues/24836
2021-06-03 14:21:42 +02:00
alesapin
4a1bf51ad1
Merge branch 'master' into limited_fetches 2021-06-02 23:01:47 +03:00
Nikita Mikhaylov
2248c77643 done 2021-06-02 17:18:54 +03:00
Ivan Lezhankin
ae38b4a3f1 Merge remote-tracking branch 'upstream/master' into ast-table-identifier-2 2021-06-02 16:07:59 +03:00
Nikita Mikhaylov
4382aac25d support for ReplicatedTable creation without arguments 2021-06-02 15:46:37 +03:00
Alexander Kuzmenkov
1d304d86a4 a lucky charm to ward off clang-tidy 2021-06-02 15:18:03 +03:00
Alexander Kuzmenkov
ae79bbea7d Merge remote-tracking branch 'origin/master' into HEAD 2021-06-02 15:06:22 +03:00
Alexander Kuzmenkov
78fe7891b4 better messages in fuzzer status 2021-06-02 15:06:12 +03:00
Azat Khuzhin
9882d160d8 clichouse-client: fix readability-identifier-naming 2021-06-02 07:38:56 +03:00
alesapin
feed2636f4 Add exponential smoothing to Throttler 2021-06-02 01:07:29 +03:00
Nikita Mikhaylov
312bb96eeb Merge branch 'master' of github.com:ClickHouse/ClickHouse into copier-stuck 2021-06-02 01:04:47 +03:00
Azat Khuzhin
ffacb7dcdf Add description for test hints 2021-06-02 01:04:06 +03:00
Azat Khuzhin
69cf881947 clickhouse-client: add echoOn/echoOff hints 2021-06-02 01:04:06 +03:00
Azat Khuzhin
1c595c127f clickhouse-client: echo queries only after "{ echo }" hint
Before this patch clickhouse-client interprets the whole queries and if
"{ echo }" found, it starts echoing queries, but this will make it
impossible to skip some of lines.
2021-06-02 01:04:06 +03:00
Nikita Mikhaylov
f57863b974 fix tests 2021-06-02 01:03:08 +03:00
kssenii
de277f8ac4 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into progress-bar 2021-06-01 07:58:19 +00:00
tavplubix
e9ff0b6d70
Merge pull request #23657 from kssenii/poco-file-to-std-fs
Poco::File to std::filesystem
2021-05-31 23:17:02 +03:00
mergify[bot]
08eca33d81
Merge branch 'master' into progress-bar 2021-05-31 19:54:20 +00:00
Nikolai Kochetov
afc1fe7f3d Make ContextPtr const by default. 2021-05-31 17:49:02 +03:00
Nikita Mikhaylov
33dcebbb24 style 2021-05-31 17:41:35 +03:00
Nikita Mikhaylov
01511d0cbe better 2021-05-31 17:40:07 +03:00
Nikita Mikhaylov
1c548058e6 add status json 2021-05-31 17:38:55 +03:00
Nikita Mikhaylov
ac072243d6 style + enable trivial test 2021-05-31 17:38:55 +03:00
Nikita Mikhaylov
6d19dea761 better 2021-05-31 17:38:20 +03:00
Nikita Mikhaylov
e9f66a0045 delete alter table optimize 2021-05-31 17:38:20 +03:00
Nikita Mikhaylov
fa22b41d5a added allow_to_drop_target_partitions with test 2021-05-31 17:38:20 +03:00
Nikita Mikhaylov
9022646633 support copying of tables with data skipping indices 2021-05-31 17:38:20 +03:00
Nikita Mikhaylov
24af47063e allow to copy materialized and alias 2021-05-31 17:37:10 +03:00
Nikita Mikhaylov
c41cc36046 support TTL on columns 2021-05-31 17:37:10 +03:00
Nikita Mikhaylov
90ab394769 better 2021-05-31 17:37:10 +03:00
Nikita Mikhaylov
2017d2f918 save 2021-05-31 17:37:10 +03:00
Alexander Kuzmenkov
f60d971637 cleanup 2021-05-31 16:45:47 +03:00
kssenii
69816e6eff Fix checks 2021-05-30 15:44:58 +03:00
Alexander Kuzmenkov
73c2ca7da5 fixes 2021-05-29 16:12:18 +03:00
kssenii
0a3589524e File movement 2021-05-29 00:57:53 +03:00
kssenii
2a631aaf08 Final fixes 2021-05-29 00:34:44 +03:00
kssenii
0d393c0006 Fix tests 2021-05-27 17:21:19 +03:00
Ivan Lezhankin
06a0ab12bc Merge remote-tracking branch 'upstream/master' into ast-table-identifier-2 2021-05-27 15:57:59 +03:00
kssenii
f66c67a979 Fixes 2021-05-27 15:42:46 +03:00
kssenii
73f16ee9ee Merge branch 'master' of github.com:ClickHouse/ClickHouse into poco-file-to-std-fs 2021-05-26 23:08:08 +03:00
alexey-milovidov
ea97eee326
Merge pull request #24449 from vdimir/CLICKHOUSE-5062
Fix cli argument in clickhouse-server.init
2021-05-25 03:20:26 +03:00
kssenii
31107816bb fs::absolute to fs::canonical 2021-05-24 20:37:54 +03:00
vdimir
fce6156e04
Use bool_switch instead of value<bool> for 'force' option in Install.cpp 2021-05-24 16:53:30 +03:00
BoloniniD
276c6b5be8 Add intro to config.yaml.example 2021-05-24 13:55:54 +03:00
BoloniniD
1edebd647e Added users.yaml example to programs/server 2021-05-24 13:46:32 +03:00
Alexey Milovidov
9edfc1641a Fix YAML lint 2021-05-24 06:57:56 +03:00
Alexey Milovidov
f80e6535b0 Maybe fix YAML linter 2021-05-24 05:55:03 +03:00
alexey-milovidov
2c1b892359
Merge pull request #24409 from BoloniniD/yaml-cfg-docs
Add docs for YAML configuration files
2021-05-24 03:51:47 +03:00
alexey-milovidov
5c815e4c7f
Update config-example.yaml 2021-05-24 03:51:37 +03:00
BoloniniD
b949b4384b Fixes after review 2021-05-23 13:36:49 +03:00
Azat Khuzhin
c343f85b64 Do not built clickhouse-keeper w/o NuRaft
Otherwise it will fail because of unused argument and unreachable code.
2021-05-23 08:37:56 +03:00
BoloniniD
c220260a1d Added default config in YAML to programs/server 2021-05-22 21:27:46 +03:00
kssenii
1c43b333ea Merge branch 'master' of github.com:ClickHouse/ClickHouse into poco-file-to-std-fs 2021-05-22 21:26:48 +03:00
Vitaly Baranov
b89da7b420
Merge pull request #21858 from BoloniniD/yaml-cfg
YAML Configuration for ClickHouse
2021-05-22 10:29:51 +03:00
BoloniniD
33755f1f3d Implemented YAMLParser class 2021-05-21 21:56:22 +03:00
mergify[bot]
970243850f
Merge branch 'master' into ast-table-identifier-2 2021-05-21 12:56:49 +00:00
kssenii
3dee003f9b Merge branch 'master' of github.com:ClickHouse/ClickHouse into poco-file-to-std-fs 2021-05-20 19:20:09 +03:00
mergify[bot]
19f48e2a9b
Merge branch 'master' into aku/fuzzer-connection-loss 2021-05-20 13:05:34 +00:00
alesapin
cf94bc9b8c
Merge pull request #24059 from ClickHouse/standalone_keeper
Standalone keeper server
2021-05-20 10:10:51 +03:00
Alexander Kuzmenkov
54ee3a4e48 space 2021-05-19 18:01:11 +03:00
Alexander Kuzmenkov
d6e357d78c consolidate connection loss handling in fuzzer 2021-05-19 17:36:01 +03:00
Vitaliy Zakaznikov
03ebd18d01 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into ldap-user-dn-detection 2021-05-18 14:08:28 -04:00
alesapin
31181095e7 Review fixes 2021-05-18 17:08:56 +03:00
kssenii
5f083b779d A little better, fix checks 2021-05-18 14:25:19 +03:00
kssenii
9b8df78fdd Merge branch 'master' of github.com:ClickHouse/ClickHouse into poco-file-to-std-fs 2021-05-17 17:42:05 +03:00
alesapin
c9bef9d332 Better comments 2021-05-17 12:38:44 +03:00
alesapin
76e94a0583 Better 2021-05-17 12:00:31 +03:00
alesapin
e5cc36f031 Add comment 2021-05-17 11:58:42 +03:00
alesapin
62004cf0d9 Merge branch 'master' into standalone_keeper 2021-05-17 10:14:58 +03:00
kssenii
2124113aa2 Update programs/* 2021-05-17 01:06:09 +03:00
kssenii
e9c3bc1836 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into progress-bar 2021-05-16 20:48:35 +00:00
Azat Khuzhin
5b668fc351 Remove trailing whitespace for Processed client message 2021-05-15 16:07:54 +03:00
Ivan Lezhankin
bd16dd22b9 Merge remote-tracking branch 'upstream/master' into ast-table-identifier-2 2021-05-14 15:40:33 +03:00
alesapin
f8ddf511c5 Merge branch 'master' into standalone_keeper 2021-05-14 13:05:55 +03:00
kssenii
4574c09048 Fix style check 2021-05-14 08:35:51 +00:00
kssenii
c25be65ebf Refactor progress bar, adjust progress indication for reading from file 2021-05-14 06:16:31 +00:00
Azat Khuzhin
aeb2c5d88a Preserve dictionaries until storage shutdown
v2: Context::loadEmbeddedDictionaries()
v3: Context::loadDictionaries()
2021-05-13 22:03:00 +03:00
alesapin
ee46850112 Better cmake for keeper 2021-05-13 15:26:10 +03:00
kssenii
e82d717233 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into progress-bar 2021-05-13 10:20:02 +00:00
Kseniia Sumarokova
135bed27f5
Merge pull request #23196 from Amesaru/progress_bar_for_LocalServer
Progress bar for local server
2021-05-13 13:13:53 +03:00
alesapin
df22534dbc Fix cmake 2021-05-13 11:42:10 +03:00
alesapin
bfa23d7e02 Merge branch 'master' into standalone_keeper 2021-05-13 11:03:07 +03:00
Maksim Kita
ed1a87352b
Merge pull request #24065 from azat/bash-completion-format
bash-completion: complete available formats
2021-05-12 23:41:02 +03:00
Azat Khuzhin
d18f6aa851 bash-completion: complete available formats for --format/--input-format/--output-format 2021-05-12 21:11:36 +03:00
alesapin
da73ba04da Add missed file 2021-05-12 17:57:01 +03:00
alesapin
4e3f103748 Missed config file 2021-05-12 17:09:05 +03:00
alesapin
43ee9f0a3a Check for directory owner 2021-05-12 17:05:44 +03:00
alesapin
41eadf9127 Something working 2021-05-12 16:04:34 +03:00
alesapin
ffb4e1af8f Some copy-paste 2021-05-12 13:39:07 +03:00
Amesaru
49b9f18828 LocalServer.cpp fix 2021-05-11 20:14:09 +03:00
Amesaru
d12243b76c Merge remote-tracking branch 'origin/progress_bar_for_LocalServer' into progress_bar_for_LocalServer 2021-05-11 19:33:26 +03:00
Amesaru
84079d6c67 Client.cpp fix 2021-05-11 19:15:07 +03:00
Egor Savin
e51e13db61
Merge branch 'master' into progress_bar_for_LocalServer 2021-05-11 18:36:06 +03:00
Amesaru
8684c37705 LocalServer.cpp fix 2021-05-11 17:28:27 +03:00
Amesaru
fa8e904987 WriteProgress fix 2021-05-11 17:24:04 +03:00
Amesaru
6dd475cc76 Convert ProgressBar into a struct 2021-05-11 17:14:57 +03:00
Amesaru
c767b18945 LocalServer.cpp fix 2021-05-11 17:05:49 +03:00
Amos Bird
264cff6415
Projections
TODO (suggested by Nikolai)

1. Build query plan fro current query (inside storage::read) up to WithMergableState
2. Check, that plan is simple enough: Aggregating - Expression - Filter - ReadFromStorage (or simplier)
3. Check, that filter is the same as filter in projection, and also expression calculates the same aggregation keys as in projection
4. Return WithMergableState if projection applies

3 will be easier to do with ActionsDAG, cause it sees all functions, and dependencies are direct (but it is possible with ExpressionActions also)

Also need to figure out how prewhere works for projections, and
row_filter_policies.

wip
2021-05-11 18:12:23 +08:00
alexey-milovidov
066d02dd2f
Merge pull request #23631 from ClickHouse/normalize-bigint
Make big integers production ready.
2021-05-11 11:07:52 +03:00
Alexander Kuzmenkov
6b6caba9cf
Merge pull request #23726 from ClickHouse/aku/fuzzer-typo
fix a typo in query formatting check in fuzzer
2021-05-11 05:44:49 +03:00
Alexey Milovidov
b2ca5cd98b Merge branch 'master' into normalize-bigint 2021-05-11 02:05:40 +03:00
alexey-milovidov
066acc71b6
Merge pull request #8482 from ClickHouse/enable-compile-expressions
Enable "compile_expressions" by default
2021-05-10 21:09:18 +03:00
mergify[bot]
f5e77d7200
Merge branch 'master' into aku/fuzzer-typo 2021-05-10 17:54:19 +00:00
Maksim Kita
50f8800822
Merge pull request #23988 from azat/log-os
Add OS name/version/architecture into log
2021-05-10 10:57:54 +03:00
Azat Khuzhin
57f97a6a29 Add OS name/version/architecture into log
Mostly to print linux kernel version in the logs for various issues.
2021-05-10 08:50:14 +03:00
Alexey Milovidov
feb4d156e4 Fix UUID in Obfuscator 2021-05-08 23:21:27 +03:00
Alexey Milovidov
e905883c75 More fixes for PVS-Studio 2021-05-08 19:12:31 +03:00
Alexey Milovidov
2fbecf36ca More fixes for PVS-Studio 2021-05-08 18:20:40 +03:00
Maksim Kita
4cd097b983 Fixed config.xml 2021-05-08 17:39:35 +03:00
Maksim Kita
6dc0dcdfa4 Fixed code review issues 2021-05-08 17:39:35 +03:00
Maksim Kita
c79d7eae21 Refactored interfaces 2021-05-08 17:39:35 +03:00