ClickHouse® is a real-time analytics DBMS
Go to file
Robert Schulze 84b9ff450f
Fix terribly broken, fragile and potentially cyclic linking
Sorry for the clickbaity title. This is about static method
ConnectionTimeouts::getHTTPTimeouts(). It was be declared in header
IO/ConnectionTimeouts.h, and defined in header
IO/ConnectionTimeoutsContext.h (!). This is weird and caused issues with
linking on s390x (##45520). There was an attempt to fix some
inconsistencies (#45848) but neither did @Algunenano nor me at first
really understand why the definition is in the header.

Turns out that ConnectionTimeoutsContext.h is only #include'd from
source files which are part of the normal server build BUT NOT part of
the keeper standalone build (which must be enabled via CMake
-DBUILD_STANDALONE_KEEPER=1). This dependency was not documented and as
a result, some misguided workarounds were introduced earlier, e.g.
0341c6c54b

The deeper cause was that getHTTPTimeouts() is passed a "Context". This
class is part of the "dbms" libary which is deliberately not linked by
the standalone build of clickhouse-keeper. The context is only used to
read the settings and the "Settings" class is part of the
clickhouse_common library which is linked by clickhouse-keeper already.

To resolve this mess, this PR

- creates source file IO/ConnectionTimeouts.cpp and moves all
  ConnectionTimeouts definitions into it, including getHTTPTimeouts().

- breaks the wrong dependency by passing "Settings" instead of "Context"
  into getHTTPTimeouts().

- resolves the previous hacks
2023-02-05 20:49:34 +00:00
.github Merge pull request #45568 from ClickHouse/keeper-systemd 2023-02-03 23:08:02 +01:00
base fix TSA support 2023-01-10 01:19:42 +00:00
benchmark Remove old file 2022-07-12 20:28:02 +02:00
cmake Update version to 23.2.1.1 2023-01-25 23:57:29 +01:00
contrib Define S3 client with bucket and endpoint resolution (#45783) 2023-02-03 14:30:52 +01:00
docker Merge pull request #38983 from CurtizJ/randomize-mt-settings 2023-02-04 02:59:52 +01:00
docs fix heading level 2023-02-03 13:57:47 -05:00
packages Do not use debconf/confmodule in tgz packages 2023-02-03 12:16:19 +01:00
programs Fix terribly broken, fragile and potentially cyclic linking 2023-02-05 20:49:34 +00:00
rust Avoid leaving symbols leftovers on the screen during query fuzzy search 2023-02-02 19:31:45 +01:00
src Fix terribly broken, fragile and potentially cyclic linking 2023-02-05 20:49:34 +00:00
tests Merge pull request #45985 from ClickHouse/fix-crash-in-regression 2023-02-04 03:01:46 +01:00
utils Update version_date.tsv and changelogs after v23.1.3.5-stable 2023-02-03 13:00:13 +00:00
.clang-format add BeforeLambdaBody to .clang-format 2022-02-11 16:51:45 +01:00
.clang-tidy Temporarily disable misc-* due to being too slow 2022-12-07 11:43:47 +00:00
.editorconfig
.exrc Fix vim settings (wrong group for autocmd) 2022-12-03 21:23:24 +01:00
.git-blame-ignore-revs Add files with revision to ignore for git blame 2022-09-13 23:05:56 +02:00
.gitattributes Ignore core.autocrlf for tests references 2022-10-05 09:13:27 +02:00
.gitignore Update .gitignore 2023-01-18 01:49:52 +01:00
.gitmodules Merge branch 'master' into iaadeflate_upgrade_qpl_v1.0.0 2023-02-02 10:20:49 +08:00
.pylintrc Cover deprecated bad-* pylint options with black 2022-06-08 14:18:28 +02:00
.snyk Add exclusions from the Snyk scan 2022-10-31 17:47:02 +01:00
.yamllint
AUTHORS Update AUTHORS 2021-09-22 11:38:03 +03:00
CHANGELOG.md Update CHANGELOG.md 2023-01-31 13:41:01 +01:00
CMakeLists.txt What happens if I remove 156 lines of code? 2023-01-03 18:51:16 +00:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md Mention ClickHouse CLA in CONTRIBUTING.md (#32697) 2021-12-14 03:47:19 +03:00
format_sources
LICENSE Update LICENSE 2023-01-02 00:35:32 +01:00
PreLoad.cmake Update PreLoad.cmake 2022-08-26 18:30:05 +08:00
README.md Fix slack link in README 2023-01-31 19:47:22 -05:00
SECURITY.md Update version_date.tsv and changelogs after v23.1.1.3077-stable 2023-01-25 23:05:49 +00:00

ClickHouse — open source distributed column-oriented DBMS

ClickHouse® is an open-source column-oriented database management system that allows generating analytical data reports in real-time.

  • Official website has a quick high-level overview of ClickHouse on the main page.
  • ClickHouse Cloud ClickHouse as a service, built by the creators and maintainers.
  • Tutorial shows how to set up and query a small ClickHouse cluster.
  • Documentation provides more in-depth information.
  • YouTube channel has a lot of content about ClickHouse in video format.
  • Slack and Telegram allow chatting with ClickHouse users in real-time.
  • Blog contains various ClickHouse-related articles, as well as announcements and reports about events.
  • Code Browser (Woboq) with syntax highlight and navigation.
  • Code Browser (github.dev) with syntax highlight, powered by github.dev.
  • Contacts can help to get your questions answered if there are any.

Upcoming events

  • Recording available: v23.1 Release Webinar 23.1 is the ClickHouse New Year release. Original creator, co-founder, and CTO of ClickHouse Alexey Milovidov will walk us through the highlights of the release. Inverted indices, query cache, and so -- very -- much more.
  • Recording available: ClickHouse Meetup at the CHEQ office in Tel Aviv - We are very excited to be holding our next in-person ClickHouse meetup at the CHEQ office in Tel Aviv! Hear from CHEQ, ServiceNow and Contentsquare, as well as a deep dive presentation from ClickHouse CTO Alexey Milovidov. Join us for a fun evening of talks, food and discussion!