Commit Graph

1557 Commits

Author SHA1 Message Date
Alexey Milovidov
8392b35d50 Speed up countDigits 2023-02-09 04:39:12 +01:00
Alexander Tokmakov
8101b044fa
Merge pull request #46091 from azat/sanity-assertions
Sanity assertions for closing file descriptors
2023-02-09 01:02:03 +03:00
Robert Schulze
28ddee7b58
More warning exclusions in poco odbc 2023-02-08 18:34:56 +00:00
sanjam
e8965543c3 Issue #2053 - conversion of 256 bit to 128 bit 2023-02-08 18:29:13 +00:00
Robert Schulze
74b892c0b9
Fix FreeBSD build 2023-02-08 15:40:49 +00:00
Robert Schulze
53f8ee85e5
Fix warnings in poco odbc 2023-02-08 15:30:05 +00:00
Dmitrii Kovalkov
fbea504ea1 Remove excessive license notices from preciseExp10.cpp 2023-02-08 16:12:21 +03:00
Robert Schulze
537a697f65
Fix whitespaces 2023-02-08 11:36:52 +00:00
Robert Schulze
65cbfdf5c6
Fix warnings in poco json 2023-02-08 11:26:36 +00:00
Robert Schulze
64afe8be0b
Fix warnings in poco xml 2023-02-08 11:26:36 +00:00
Robert Schulze
1838c8912a
Fix warnings in poco netssl_openssl 2023-02-08 11:26:36 +00:00
Robert Schulze
353ef8b451
Fix warnings in poco mongodb 2023-02-08 11:26:36 +00:00
Robert Schulze
4ee6ac8dec
Fix warnings in poco utils 2023-02-08 11:26:36 +00:00
Robert Schulze
c0ca2db7ab
Fix warnings in poco data 2023-02-08 11:26:36 +00:00
Robert Schulze
b0f2c98940
Fix warnings in poco net 2023-02-08 11:26:36 +00:00
Robert Schulze
3a339f8b02
Fix warnings in poco crypto 2023-02-08 11:23:51 +00:00
Robert Schulze
8dd0a465f5
Fix warnings in poco redis 2023-02-08 11:22:07 +00:00
Robert Schulze
ba15cf834d
Fix warnings in poco foundation 2023-02-08 11:22:05 +00:00
Robert Schulze
f002698e09
More fine-granular warning relaxation 2023-02-08 11:21:59 +00:00
Robert Schulze
b79ead9c84
Move poco to base/poco/ (#46075)
* Replicate poco into base/poco/

* De-register poco submodule

* Build poco from ClickHouse

* Exclude poco from stylecheck

* Exclude poco from whitespace check

* Exclude poco from typo check

* Remove x bit from sources/headers (the style check complained)

* Exclude poco from duplicate include check

* Fix fasttest

* Remove contrib/poco-cmake/*

* Simplify poco build descriptions

* Remove poco stuff not used by ClickHouse

* Glob poco sources

* Exclude poco from clang-tidy
2023-02-08 12:04:11 +01:00
Azat Khuzhin
a88903f276 Do not execute expressions inside chassert() in release builds (with sizeof() trick)
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-02-07 17:39:16 +01:00
Azat Khuzhin
ec171c1732 Improve abortOnFailedAssertion() usage from chassert()
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-02-07 13:03:47 +01:00
Azat Khuzhin
fc48f89b76 Improve chassert() macro to suppress warning in release builds
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-02-06 20:13:17 +01:00
Suzy Wang
716d2c4ffb Update as suggested 2023-02-02 20:41:06 +00:00
Suzy Wang
19d26828a0 s390x build support 2023-01-20 21:16:55 +00:00
serxa
b1407b1070 fix TSA support 2023-01-10 01:19:42 +00:00
serxa
d561f66419 more TSA support 2023-01-09 16:48:39 +00:00
Yakov Olkhovskiy
7a5a36cbed
Merge branch 'master' into refactoring-ip-types 2023-01-04 11:11:06 -05:00
Robert Schulze
27f5aad49e
What happens if I remove 156 lines of code? 2023-01-03 18:51:16 +00:00
Alexey Milovidov
e855d3519a
Merge branch 'master' into refactoring-ip-types 2023-01-02 21:58:53 +03:00
Nikita Mikhaylov
ffaff7167b
Fix flaky tests (#44690) 2022-12-29 14:32:10 +01:00
Azat Khuzhin
b7f92454bf Move LineReader/ReplxxLineReader out from base
This will simplify linking dependencies, and anyway this classes are not
base in any sense.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-12-27 14:23:51 +01:00
Azat Khuzhin
83cad3625b Remove unused setTerminalEcho()
It had been replaced with readpassphrase in #5092

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-12-27 14:23:51 +01:00
Azat Khuzhin
4d17510fca Use already written part of the query for fuzzy search (pass to skim)
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-12-26 14:52:38 +01:00
Yakov Olkhovskiy
a8cb29da4b
Merge branch 'master' into refactoring-ip-types 2022-12-21 23:56:24 -05:00
Azat Khuzhin
cf0e0436be skim: do not panic if terminal is not available
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-12-14 21:01:48 +01:00
Azat Khuzhin
082f57c40d clickhouse-client: rebind original non-fuzzy search to C-T
I decided to bind fuzzy to a regular C-R, so that everyone will notice
it, and keep an old behaviour for expect tests, or if someone do not
need fuzzy search (or want blasignly fast search, since skim is slightly
slower).

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-12-14 21:01:48 +01:00
Azat Khuzhin
82aaad61aa Integrate skim into the client/local
Note, that it can the fail the client if the skim itself will fail,
however I haven't seen it panicd, so let's try.

P.S. about adding USE_SKIM into configure header instead of just compile
option for target, it is better, because it allows not to recompile lots
of C++ headers, since we have to add skim library as PUBLIC. But anyway
this will be resolved in a different way, but separatelly.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-12-14 20:57:41 +01:00
Azat Khuzhin
67fa185611
Revert "Builtin skim" 2022-12-14 17:17:19 +03:00
Alexey Milovidov
df17d1b71b
Merge branch 'master' into builtin-skim 2022-12-13 03:33:42 +03:00
Azat Khuzhin
9ed6aa0be1 Fix -Wshorten-64-to-32 on FreeBSD
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-12-12 08:05:28 +01:00
Azat Khuzhin
de58e9c02d Integrate skim into the client/local
Note, that it can the fail the client if the skim itself will fail,
however I haven't seen it panicd, so let's try.

P.S. about adding USE_SKIM into configure header instead of just compile
option for target, it is better, because it allows not to recompile lots
of C++ headers, since we have to add skim library as PUBLIC.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-12-11 15:52:00 +01:00
Boris Kuschel
592c73e2c3
Merge branch 'master' into openssl_support 2022-12-09 20:21:22 -05:00
Yakov Olkhovskiy
0641066183
Merge branch 'master' into refactoring-ip-types 2022-12-08 11:12:05 -05:00
Antonio Andelic
b068119d27
Merge pull request #43498 from azat/client/improve-fuzzy-search
Improve fuzzy search in clickhouse-client/clickhouse-local
2022-12-08 14:07:52 +01:00
Boris Kuschel
cc3314acbe
Merge branch 'master' into openssl_support 2022-12-08 07:40:43 -05:00
Boris Kuschel
623f23f55d OpenSSL cmake changes 2022-12-07 13:22:46 -05:00
Robert Schulze
3c1a721da4
Merge branch 'master' into hlee-s390x-wide-int-order 2022-12-04 18:47:00 +01:00
Yakov Olkhovskiy
77266ea754 cleanup 2022-11-29 17:34:16 +00:00
Yakov Olkhovskiy
b47cb522b5 revert StrongTypedef and fix test instead 2022-11-28 23:33:47 +00:00
Yakov Olkhovskiy
770b520ded
Merge branch 'master' into refactoring-ip-types 2022-11-28 08:50:19 -05:00
Robert Schulze
a00a020cfb
Merge pull request #42847 from ClibMouse/s390x_bit_cast
s390x datetime64 conversion fix
2022-11-28 11:45:43 +01:00
Yakov Olkhovskiy
c47f13afd5 explicit conversion for StrongTypedef 2022-11-26 03:36:01 +00:00
Azat Khuzhin
7a9adbc285 Escape shell arguments for fzf/skim
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-11-22 20:15:04 +01:00
Azat Khuzhin
59e647077d Improve fuzzy search in clickhouse-client/clickhouse-local
I found few difference in sk/fzf and after this patch I think that it
should behave better.

So the following commands will be used by default:
- fzf --read0 --tac --tiebreak=index --height=30%
- sk --read0 --tac --tiebreak=-score --height=30%

Those two more or less allows true fuzzy reserve search.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-11-22 19:44:07 +01:00
Azat Khuzhin
14d4980e26 Fix repainting of the client prompt after fuzzy search
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-11-22 19:42:39 +01:00
Yakov Olkhovskiy
ac4b050644 style fix 2022-11-22 13:10:33 +00:00
Yakov Olkhovskiy
988b030bfd bug fix, refactoring IPv6 to struct with overridden comparison 2022-11-22 12:57:19 +00:00
Suzy Wang
60119a97f7 fix build error 2022-11-17 20:38:22 -08:00
HarryLeeIBM
0133444433 Fix byte order issue of wide integer for s390x 2022-11-14 10:47:32 -08:00
Yakov Olkhovskiy
9aeebf3bdf
Merge branch 'master' into refactoring-ip-types 2022-11-14 09:21:54 -05:00
Yakov Olkhovskiy
4d144be39c replace domain IP types (IPv4, IPv6) with native 2022-11-14 14:17:17 +00:00
Suzy Wang
f624143532 fix typo 2022-11-10 12:42:38 -08:00
Suzy Wang
84a8c02d78 Update typo and rm whitespaces 2022-11-10 12:32:40 -08:00
Raúl Marín
aaf8cc6ca8 Revert "Add global flags to base/ libraries"
This reverts commit 43e065c18e.
2022-11-10 11:32:27 +01:00
Suzy Wang
73e5cd91c8 rm unnecessary include 2022-11-09 13:59:34 -08:00
Raúl Marín
39f4120655 Fix broken build 2022-11-09 13:21:59 +01:00
Raúl Marín
43e065c18e Add global flags to base/ libraries 2022-11-09 11:24:20 +01:00
Suzy Wang
ba868801fa Update as suggested 2022-11-08 20:51:35 -08:00
Raúl Marín
050f3ca7cf Fix msan warning 2022-11-08 17:25:03 +01:00
Alexander Tokmakov
fc77d53db1
Merge pull request #43009 from azat/fix-tsan
Fix TSan errors (correctly ignore _exit interception)
2022-11-07 22:20:53 +03:00
Alexander Tokmakov
b4ecbbf224
Update safeExit.cpp 2022-11-07 21:07:09 +03:00
Azat Khuzhin
d6bfbeb95f Fix TSan errors (correctly ignore _exit interception)
Because safeExit() does not includes header with defines, it does not
know about THREAD_SANITIZER.

And it also fixes Azure blob storage, actually everything is fine with
the sdk itself, the problem is only in TSan that intercepts _exit() and
report leak, even thoug that tread will be joined later.

Refs: #23056 (#23616)
Fixes: #38474
Closes: #42640
Fixes: #42638
Fixes: #34988
Cc: @alexey-milovidov, @tavplubix

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-11-07 16:10:35 +01:00
Amos Bird
4c2b3de93d
Fix msan error 2022-11-04 22:08:14 +08:00
Amos Bird
a89e847514
Fix getauxval for sanitizer builds 2022-11-04 22:08:13 +08:00
Suzy Wang
9560306cdb Update fix 2022-11-03 09:29:15 -07:00
Suzy Wang
80c4d27a89 reverse columnVector change and update new fix 2022-11-02 07:15:00 -07:00
Azat Khuzhin
4eeb7337ed Merge remote-tracking branch 'upstream/master' into build/shorten-64-to-32
Conflicts:
- src/Common/intExp.h
- src/Functions/DateTimeTransforms.h
- src/Functions/FunctionsConversion.h
2022-10-21 22:51:56 +02:00
Azat Khuzhin
1e739791a4 Fix type error in itoa (wrong static_cast<>)
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-10-21 13:25:43 +02:00
Azat Khuzhin
0625a866f0 Add a note about incorrect wide_integer with Decimal
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-10-21 13:25:43 +02:00
Azat Khuzhin
7b28a80ad7 Fix -Wshorten-64-to-32 for amd64sse2 build
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-10-21 13:25:42 +02:00
Azat Khuzhin
4e76629aaf Fixes for -Wshorten-64-to-32
- lots of static_cast
- add safe_cast
- types adjustments
  - config
  - IStorage::read/watch
  - ...
- some TODO's (to convert types in future)

P.S. That was quite a journey...

v2: fixes after rebase
v3: fix conflicts after #42308 merged
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-10-21 13:25:19 +02:00
Alexey Milovidov
445487e073 Merge branch 'master' into add-test-658 2022-10-20 23:55:15 +02:00
Sema Checherinda
52f57cd1ee
Merge pull request #42080 from azat/client-fuzzy-history
Avoid adding extra new line after using fuzzy history search
2022-10-12 10:50:26 +02:00
Alexey Milovidov
8a066b5eef Fix test 2022-10-11 01:28:36 +02:00
Alexander Tokmakov
ff03181d31
Update safeExit.cpp 2022-10-10 15:01:03 +03:00
Alexey Milovidov
69a3ddb5cb
Merge pull request #42128 from Algunenano/tsa_build
Fix build without TSA
2022-10-09 03:11:47 +03:00
Alexander Tokmakov
8b44e11430 fix 2022-10-08 16:10:46 +02:00
Alexander Tokmakov
4175f8cde6 abort instead of __builtin_unreachable in debug builds 2022-10-07 21:49:08 +02:00
Alexander Tokmakov
1a1a20587e
Update defines.h 2022-10-07 21:26:09 +03:00
Raúl Marín
5d9c4a39c0 Update comment 2022-10-07 14:06:28 +02:00
Raúl Marín
62599e3901 Simpler macro 2022-10-07 11:14:35 +02:00
Raúl Marín
6b0ad85640 Fix build without TSA 2022-10-06 16:26:48 +02:00
Azat Khuzhin
e9d4d15c0d Add more comments for skim/fzf compatibility
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-10-05 09:59:48 +02:00
Azat Khuzhin
6e7114128b Avoid adding extra new line after using fuzzy history search
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-10-05 09:59:48 +02:00
BoloniniD
55c79230b3 Merge branch 'master' of github.com:ClickHouse/ClickHouse into BLAKE3 2022-09-29 23:53:25 +03:00
Azat Khuzhin
8cc53a48ae clickhouse-client: tune fzf/sk options to be a real reverse search
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-09-26 15:09:37 +03:00
Azat Khuzhin
d0f14e1255 clickhouse-client: proper support of vfork() w/o dlsym() in musl
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-09-26 15:09:37 +03:00
Azat Khuzhin
aaa36e2b25 clickhouse-client: add support of sk (fzf-like in rust)
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
Co-authored-by: Antonio Andelic <antonio2368@users.noreply.github.com>
2022-09-26 15:09:37 +03:00
Azat Khuzhin
58b61d8207 clickhouse-client: add interactive history search with fzf-like utility
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-09-26 15:09:37 +03:00
Azat Khuzhin
6acdeb84be clickhouse-client: refactor editor execution
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-09-26 15:09:37 +03:00
Nikita Mikhaylov
e897816572
Evict stale DNS entries from cache in case of network errors (#41707) 2022-09-25 14:06:13 +02:00
BoloniniD
55fcb98f29 Merge branch 'master' of github.com:ClickHouse/ClickHouse into BLAKE3 2022-09-19 21:53:14 +03:00
BoloniniD
5b4fb4bf66
Merge branch 'master' into BLAKE3 2022-09-18 23:14:37 +03:00
Alexey Milovidov
5c75a7d661 Fix error 2022-09-18 09:20:48 +02:00
Alexey Milovidov
35cce03125 Remove dlopen 2022-09-17 03:02:34 +02:00
BoloniniD
452ef4435b Merge branch 'master' of github.com:ClickHouse/ClickHouse into BLAKE3 2022-09-16 20:05:56 +03:00
BoloniniD
0df426d329 Corrosion fixes + review fixes 2022-09-16 00:05:21 +03:00
Azat Khuzhin
569b4bb631 Add ability to automatically comment SQL queries in clickhouse-client/local
This is like Alt-# in readline, it is useful when you need to look
something else, and need to save current query/command somewhere, and
commented lin the history is a good option.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-09-12 21:57:21 +02:00
Alexey Milovidov
2aedd41023
Remove strange code (#40195)
* Remove strange code

* Even more code removal

* Fix style

* Remove even more code

* Simplify code by making it slower

* Attempt to do something

* Attempt to do something

* Well do something with this horrible trash

* Add a test
2022-09-12 16:29:23 +02:00
Alexey Milovidov
33635e015d Fix style 2022-09-11 06:11:02 +02:00
Alexey Milovidov
fa62c7e982 Fix half of trash 2022-09-10 04:08:16 +02:00
BoloniniD
e8bcbcd016
Merge branch 'master' into BLAKE3 2022-09-09 11:48:31 +03:00
BoloniniD
c08b41b611 Clean files and compatibility code 2022-09-08 09:34:59 +03:00
BoloniniD
069fbdd7c5 Fix broken builds 2022-09-05 20:56:03 +03:00
BoloniniD
69588bcebf Added statx to glibc_compatibility 2022-09-04 20:21:13 +03:00
Ilya Golshtein
74561b40ae stylecheck renewed 2022-09-02 17:42:18 +03:00
Antonio Andelic
e64436fef3 Fix typos with new codespell 2022-09-02 08:54:48 +00:00
BoloniniD
cba94e106f Remove posix_spawn for now, add execvpe impl 2022-09-01 20:36:47 +03:00
Robert Schulze
bfa67ffc8c
Update base/base/itoa.h
Co-authored-by: Antonio Andelic <antonio2368@users.noreply.github.com>
2022-09-01 10:31:34 +02:00
Robert Schulze
d43f4e6317
fix: typo 2022-08-31 10:57:27 +00:00
Robert Schulze
cedf75ed5e
Enable clang-tidy for headers
clang-tidy now also checks code in header files. Because the analyzer
finds tons of issues, activate the check only for directory "base/" (see
file ".clang-tidy"). All other directories, in particular "src/" are
left to future work.

While many findings were fixed, some were not (and suppressed instead).
Reasons for this include: a) the file is 1:1 copypaste of a 3rd-party
lib (e.g. pcg_extras.h) and fixing stuff would make upgrades/fixes more
difficult b) a fix would have broken lots of using code
2022-08-31 10:48:15 +00:00
BoloniniD
8e6dcf18df Add posix_spawn for posix_file_actions_ 2022-08-30 20:18:08 +03:00
BoloniniD
cb32fa4512 Add all posix_spawn_file_actions_ functions 2022-08-30 21:03:45 +03:00
Alexander Tokmakov
44c6c85f75
Merge pull request #40756 from ClickHouse/libuv_update
Merging #39398
2022-08-30 14:38:50 +03:00
Suzy Wang
cad4eeb891 Correct __dup3() to dup3() 2022-08-28 18:03:07 -07:00
BoloniniD
14216d1dc0 Move statx to glibc-compatibility 2022-08-28 16:40:10 +03:00
BoloniniD
d1e2267f58
Move statx to glibc-compatibility 2022-08-26 15:18:24 +03:00
BoloniniD
de45f7cf5d
Delete fstatat.c 2022-08-26 15:17:18 +03:00
BoloniniD
4ee1b52116 Move copy_file_range to glibc_compat 2022-08-25 20:59:52 +03:00
BoloniniD
78d00c3371 Add glibc symbols to glibc_compatibility 2022-08-24 21:30:48 +03:00
Alexey Milovidov
0252695c6e
Merge pull request #40224 from ClickHouse/alexey-milovidov-patch-4
Check what will be if I enable `concurrency-mt-unsafe` in `clang-tidy`
2022-08-22 23:12:01 +03:00
Robert Schulze
e8b3f56733
Limit suppression to a specific warning 2022-08-21 18:24:17 +00:00
Alexey Milovidov
74e1f4dc61 Fix clang-tidy 2022-08-20 17:09:20 +02:00
Suzy Wang
7a190f84c8 Remove weak_alias 2022-08-19 11:59:47 -07:00
Robert Schulze
77e64935e1
Reduce some usage of StringRef 2022-08-19 09:56:59 +00:00
Suzy Wang
1171ba9095 Add dup3() and inotify_init() from musl 1.2.3 2022-08-18 13:25:50 -07:00
Alexey Milovidov
dd96aee8d2
Update unaligned.h 2022-08-04 08:18:45 +03:00
Alexey Milovidov
6cc08afb72
Update unaligned.h 2022-08-04 01:58:08 +03:00
Alexey Milovidov
57e31cadfa
Update unaligned.h 2022-08-03 09:08:51 +03:00
HarryLeeIBM
cc73b53116 Fix Endian issue in SipHash for s390x 2022-07-29 13:21:50 -07:00
Robert Schulze
24c74da473
Merge pull request #39430 from azat/getauxval-fix
Fix LSan by fixing getauxval() (resubmit v4)
2022-07-25 10:43:09 +02:00
Azat Khuzhin
a4f9e1da5b Fix getauxval() by using procfs with fallback to environ
getauxval() from glibc-compatibility did not work always correctly:

- It does not work after setenv(), and this breaks vsyscalls,
  like sched_getcpu() [1] (and BaseDaemon.cpp always set TZ if timezone
  is defined, which is true for CI [2]).

  Also note, that fixing setenv() will not fix LSan,
  since the culprit is getauxval()

  [1]: https://bugzilla.redhat.com/show_bug.cgi?id=1163404
  [2]: ClickHouse#32928 (comment)

- Another think that is definitely broken is LSan (Leak Sanitizer), it
  relies on worked getauxval() but it does not work if __environ is not
  initialized yet (there is even a commit about this).

  And because of, at least, one leak had been introduced [3]:

    [3]: ClickHouse#33840

Fix this by using /proc/self/auxv with fallback to environ solution to
make it compatible with environment that does not allow reading from
auxv (or no procfs).

v2: add fallback to environ solution
v3: fix return value for __auxv_init_procfs()
(cherry picked from commit f187c3499a)
v4: more verbose message on errors, CI founds [1]:
    AUXV already has value (529267711)
    [1]: https://s3.amazonaws.com/clickhouse-test-reports/39103/2325f7e8442d1672ce5fb43b11039b6a8937e298/stress_test__memory__actions_.html
v5: break at AT_NULL
v6: ignore AT_IGNORE
v7: suppress TSan and remove superior check to avoid abort() in case of race
v8: proper suppressions (not inner function but itself)
Refs: #33957
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-07-25 01:22:04 +03:00
Robert Schulze
4333750985
Less usage of StringRef
... replaced by std::string_view, see #39262
2022-07-24 18:33:52 +00:00
Alexey Milovidov
72dda35108
Revert "[RFC] Fix LSan by fixing getauxval()" 2022-07-21 04:34:04 +03:00
Robert Schulze
7146685f9d
Merge pull request #39299 from azat/fix-lsan-v3
[RFC] Fix LSan by fixing getauxval()
2022-07-19 14:27:41 +02:00
Azat Khuzhin
f187c3499a Fix getauxval() by using procfs with fallback to environ
getauxval() from glibc-compatibility did not work always correctly:

- It does not work after setenv(), and this breaks vsyscalls,
  like sched_getcpu() [1] (and BaseDaemon.cpp always set TZ if timezone
  is defined, which is true for CI [2]).

  Also note, that fixing setenv() will not fix LSan,
  since the culprit is getauxval()

  [1]: https://bugzilla.redhat.com/show_bug.cgi?id=1163404
  [2]: ClickHouse#32928 (comment)

- Another think that is definitely broken is LSan (Leak Sanitizer), it
  relies on worked getauxval() but it does not work if __environ is not
  initialized yet (there is even a commit about this).

  And because of, at least, one leak had been introduced [3]:

    [3]: ClickHouse#33840

Fix this by using /proc/self/auxv with fallback to environ solution to
make it compatible with environment that does not allow reading from
auxv (or no procfs).

v2: add fallback to environ solution
v3: fix return value for __auxv_init_procfs()
Refs: #33957
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-07-18 16:49:49 +03:00
alesapin
00e5bdb84a Fix build clang-13 2022-07-18 12:44:58 +02:00
Robert Schulze
87197f8f60
Enable -Wdeprecated-dynamic-exception-spec 2022-07-13 13:49:40 +00:00
Robert Schulze
1a7727a254
Prefix overridden add_executable() command with "clickhouse_"
A simple HelloWorld program with zero includes except iostream triggers
a build of ca. 2000 source files. The reason is that ClickHouse's
top-level CMakeLists.txt overrides "add_executable()" to link all
binaries against "clickhouse_new_delete". This links against
"clickhouse_common_io", which in turn has lots of 3rd party library
dependencies ... Without linking "clickhouse_new_delete", the number of
compiled files for "HelloWorld" goes down to ca. 70.

As an example, the self-extracting-executable needs none of its current
dependencies but other programs may also benefit.

In order to restore access to the original "add_executable()", the
overriding version is now prefixed. There is precedence for a
"clickhouse_" prefix (as opposed to "ch_"), for example
"clickhouse_split_debug_symbols". In general prefixing makes sense also
because overriding CMake commands relies on undocumented behavior and is
considered not-so-great practice (*).

(*) https://crascit.com/2018/09/14/do-not-redefine-cmake-commands/
2022-07-11 19:36:18 +02:00
Alexander Tokmakov
c45482d6c6 disable instrumentation of sanitizer death callback 2022-07-07 22:10:12 +02:00
Alexander Tokmakov
c3573532c0
Merge pull request #38487 from ClickHouse/add_some_tsa_annotations
Add some TSA annotations
2022-06-29 13:57:10 +03:00
Robert Schulze
bb441faa42
Merge pull request #38491 from ClickHouse/clang-tidy-in-branches
Fix some clang-tidy warnings in headers
2022-06-29 10:22:04 +02:00
Robert Schulze
f692ead6ad
Don't use std::unique_lock unless we have to
Replace where possible by std::lock_guard which is more light-weight.
2022-06-28 19:19:06 +00:00
Robert Schulze
30f136867f
Fix build 2022-06-28 16:52:17 +00:00
Alexander Tokmakov
4f54abf67f better names for macros 2022-06-28 16:27:18 +02:00
Robert Schulze
c22038d48b
More clang-tidy fixes 2022-06-28 11:50:05 +00:00
Robert Schulze
5e28580f11
Fix some clang-tidy warnings in headers 2022-06-27 23:49:07 +02:00
Alexander Tokmakov
f4883f1f7e add some TSA aanotations 2022-06-27 22:48:27 +02:00
Robert Schulze
55b39e709d
Merge remote-tracking branch 'origin/master' into clang-tsa 2022-06-20 16:39:32 +02:00
Robert Schulze
5a4f21c50f
Support for Clang Thread Safety Analysis (TSA)
- TSA is a static analyzer build by Google which finds race conditions
  and deadlocks at compile time.

- It works by associating a shared member variable with a
  synchronization primitive that protects it. The compiler can then
  check at each access if proper locking happened before. A good
  introduction are [0] and [1].

- TSA requires some help by the programmer via annotations. Luckily,
  LLVM's libcxx already has annotations for std::mutex, std::lock_guard,
  std::shared_mutex and std::scoped_lock. This commit enables them
  (--> contrib/libcxx-cmake/CMakeLists.txt).

- Further, this commit adds convenience macros for the low-level
  annotations for use in ClickHouse (--> base/defines.h). For
  demonstration, they are leveraged in a few places.

- As we compile with "-Wall -Wextra -Weverything", the required compiler
  flag "-Wthread-safety-analysis" was already enabled. Negative checks
  are an experimental feature of TSA and disabled
  (--> cmake/warnings.cmake). Compile times did not increase noticeably.

- TSA is used in a few places with simple locking. I tried TSA also
  where locking is more complex. The problem was usually that it is
  unclear which data is protected by which lock :-(. But there was
  definitely some weird code where locking looked broken. So there is
  some potential to find bugs.

*** Limitations of TSA besides the ones listed in [1]:

- The programmer needs to know which lock protects which piece of shared
  data. This is not always easy for large classes.

- Two synchronization primitives used in ClickHouse are not annotated in
  libcxx:
  (1) std::unique_lock: A releaseable lock handle often together with
      std::condition_variable, e.g. in solve producer-consumer problems.
  (2) std::recursive_mutex: A re-entrant mutex variant. Its usage can be
      considered a design flaw + typically it is slower than a standard
      mutex. In this commit, one std::recursive_mutex was converted to
      std::mutex and annotated with TSA.

- For free-standing functions (e.g. helper functions) which are passed
  shared data members, it can be tricky to specify the associated lock.
  This is because the annotations use the normal C++ rules for symbol
  resolution.

[0] https://clang.llvm.org/docs/ThreadSafetyAnalysis.html
[1] https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/42958.pdf
2022-06-20 16:13:25 +02:00
alesapin
0ae0cc54aa
Merge pull request #38106 from ClickHouse/tsan_less_flaky_tests
Some fixes for tests with tsan
2022-06-18 14:22:43 +02:00
Alexander Tokmakov
9cac78b498 make tests with tsan less flaky 2022-06-15 19:54:46 +02:00
Igor Nikonov
de273b043d Decimal: noexcept move constructor/assignment operator 2022-06-13 13:42:54 +00:00
Robert Schulze
1a0b5f33b3
More consistent use of platform macros
cmake/target.cmake defines macros for the supported platforms, this
commit changes predefined system macros to our own macros.

__linux__ --> OS_LINUX
__APPLE__ --> OS_DARWIN
__FreeBSD__ --> OS_FREEBSD
2022-06-10 10:22:31 +02:00
Alexey Milovidov
b5f48a7d3f Merge branch 'master' of github.com:ClickHouse/ClickHouse into llvm-14 2022-06-01 22:09:58 +02:00
Robert Schulze
249fe561f4
Fix build with -DENABLE_LIBRARIES=0 / -DENABLE_REPLXX=0
Replxx: When disabled via -DENABLE_LIBRARIES=0 or -DENABLE_REPLXX (the
latter was undocumented) the build broke because replxx symbols were
used since [0] in header LineReader.h. This header should in theory
stay clean of replxx but doesn't for efficiency reasons.

This change makes compilation of replxx mandatory. As replxx is quite
small, I guess this is okay. (The alternative is to litter the code
with ifdefs for non-replxx and a replxx paths.)

[0] https://github.com/ClickHouse/ClickHouse/pull/33201
2022-06-01 10:02:28 +02:00
Alexey Milovidov
bcbd6b802f Fix clang-tidy-14 2022-05-31 04:19:08 +02:00
Alexey Milovidov
11788c8129 Fix clang-tidy-14 2022-05-29 02:28:46 +02:00
Alexander Tokmakov
6bc68c0cbc Merge branch 'master' into fixes_for_transactions 2022-05-23 18:49:21 +02:00
Alexander Tokmakov
12bbb7de87 fix race on TID allocation 2022-05-20 12:41:44 +02:00
Robert Schulze
b475fbc9a7
Merge pull request #37300 from ClickHouse/cmake-cleanup-pt3
Various cmake cleanups
2022-05-20 10:02:36 +02:00
Robert Schulze
0c55ac76d2
A few clangtidy updates
Enable:

- bugprone-lambda-function-name: "Checks for attempts to get the name of
  a function from within a lambda expression. The name of a lambda is
  always something like operator(), which is almost never what was
  intended."

- bugprone-unhandled-self-assignment: "Finds user-defined copy
  assignment operators which do not protect the code against
  self-assignment either by checking self-assignment explicitly or using
  the copy-and-swap or the copy-and-move method.""

- hicpp-invalid-access-moved: "Warns if an object is used after it has
  been moved."

- hicpp-use-noexcept: "This check replaces deprecated dynamic exception
  specifications with the appropriate noexcept specification (introduced
  in C++11)"

- hicpp-use-override: "Adds override (introduced in C++11) to overridden
  virtual functions and removes virtual from those functions as it is
  not required."

- performance-type-promotion-in-math-fn: "Finds calls to C math library
  functions (from math.h or, in C++, cmath) with implicit float to
  double promotions."

Split up:

- cppcoreguidelines-*. Some of them may be useful (haven't checked in
  detail), therefore allow to toggle them individually.

Disable:

- linuxkernel-*. Obvious.
2022-05-17 20:56:57 +02:00
Robert Schulze
43945cea1b
Fixing some warnings 2022-05-16 20:59:27 +02:00
Robert Schulze
e3cfec5b09
Merge remote-tracking branch 'origin/master' into clangtidies 2022-05-16 10:12:50 +02:00
Robert Schulze
8117a1ce52
Don't leak suppression for -Wreserved-identifier out of header 2022-05-15 09:48:54 +02:00
Robert Schulze
1b81bb49b4
Enable clang-tidy modernize-deprecated-headers & hicpp-deprecated-headers
Official docs:

  Some headers from C library were deprecated in C++ and are no longer
  welcome in C++ codebases. Some have no effect in C++. For more details
  refer to the C++ 14 Standard [depr.c.headers] section. This check
  replaces C standard library headers with their C++ alternatives and
  removes redundant ones.
2022-05-09 08:23:33 +02:00
Robert Schulze
f866f8143d
Enable clang-tidy modernize-use-noexcept
Official docs:

  This check replaces deprecated dynamic exception specifications with
  the appropriate noexcept specification (introduced in C++11). By
  default this check will replace throw() with noexcept, and
  throw(<exception>[,...]) or throw(...) with noexcept(false).
2022-05-08 19:31:38 +02:00
Robert Schulze
3d3977bad3
Enable clang-tidy cert-err60-cpp
Official docs:

  This check flags all throw expressions where the exception object is
  not nothrow copy constructible.
2022-05-06 00:36:26 +02:00
mergify[bot]
64084b5e32
Merge branch 'master' into shared_ptr_helper3 2022-05-03 20:46:16 +00:00
Robert Schulze
ad0b3be79d
Replace uses of SFINAE by C++20 concepts
- enable_if is usually regarded as fragile and unreadable

- C++20 concepts are much easier to read and produce more expressive
  error messages
2022-05-02 09:23:53 +02:00
Robert Schulze
330212e0f4
Remove inherited create() method + disallow copying
The original motivation for this commit was that shared_ptr_helper used
std::shared_ptr<>() which does two heap allocations instead of
make_shared<>() which does a single allocation. Turned out that
1. the affected code (--> Storages/) is not on a hot path (rendering the
performance argument moot ...)
2. yet copying Storage objects is potentially dangerous and was
   previously allowed.

Hence, this change

- removes shared_ptr_helper and as a result all inherited create() methods,

- instead, Storage objects are now created using make_shared<>() by the
  caller (for that to work, many constructors had to be made public), and

- all Storage classes were marked as noncopyable using boost::noncopyable.

In sum, we are (likely) not making things faster but the code becomes
cleaner and harder to misuse.
2022-05-02 08:46:52 +02:00
Alexey Milovidov
1ddb04b992
Merge pull request #36715 from amosbird/refactorbase
Reorganize source files so that base won't depend on Common
2022-04-30 09:40:58 +03:00
Amos Bird
4a5e4274f0
base should not depend on Common 2022-04-29 10:26:35 +08:00
mergify[bot]
20e2fa9b3f
Merge branch 'master' into dynamic-columns-9 2022-04-28 17:53:03 +00:00
Alexey Milovidov
e51bee58ec Remove useless "install" from CMake (step 1) 2022-04-24 22:32:45 +02:00
mergify[bot]
01357b2e1a
Merge branch 'master' into speed-up-build 2022-04-22 04:34:27 +00:00
Maksim Kita
57444fc7d3
Merge pull request #36444 from rschu1ze/clang-tidy-fixes
Clang tidy fixes
2022-04-21 16:11:27 +02:00
mergify[bot]
9c75f83a0b
Merge branch 'master' into speed-up-build 2022-04-20 23:20:21 +00:00
Robert Schulze
b24ca8de52
Fix various clang-tidy warnings
When I tried to add cool new clang-tidy 14 warnings, I noticed that the
current clang-tidy settings already produce a ton of warnings. This
commit addresses many of these. Almost all of them were non-critical,
i.e. C vs. C++ style casts.
2022-04-20 10:29:05 +02:00
alesapin
dd2e085ae5
Merge pull request #36365 from ClickHouse/fix-memory-warning-at-server-startup
Fix error in sanity checks
2022-04-18 11:51:21 +02:00
Alexey Milovidov
9bab9077b2 Fix error in sanity checks 2022-04-18 03:39:56 +02:00
Alexey Milovidov
f046dd6642 Speed up build a little 2022-04-16 03:58:50 +02:00
Alexey Milovidov
ccdd0a60f7 Remove Arcadia 2022-04-16 00:28:56 +02:00
Anton Popov
6364b6f78f Merge remote-tracking branch 'upstream/master' into dynamic-columns-9 2022-04-08 15:05:51 +00:00
Anton Popov
3fce23357c fix insertion of complex json with nested arrays 2022-04-08 14:58:02 +00:00
Alexander Tokmakov
7f54e7b422 Merge branch 'master' into mvcc_prototype 2022-04-07 15:14:06 +02:00
Anton Popov
13cb564d1e
Merge pull request #35716 from kssenii/fix-local-logs-level
Fix send_logs_level for clickhouse local
2022-04-06 18:52:47 +02:00
kssenii
83488b2d13 Better 2022-04-05 14:48:26 +02:00
mergify[bot]
3183b61c74
Merge branch 'master' into mvcc_prototype 2022-03-31 12:27:09 +00:00
Alexander Tokmakov
287d858fda Merge branch 'master' into mvcc_prototype 2022-03-29 16:24:12 +02:00
alesapin
842c0b8ff0 Merge remote-tracking branch 'origin/startup-sanity-checks' into startup-sanity-checks 2022-03-29 14:29:33 +02:00
alesapin
ed2c461fe1 Merge branch 'master' into startup-sanity-checks 2022-03-29 14:09:20 +02:00
alesapin
b838a7dcb0 Remove outdated links from CI 2022-03-28 15:53:22 +02:00
Sergei Trifonov
85f2ed12e1 fix darwin build 2022-03-25 12:52:50 +01:00
alesapin
93d1b1d198 Merge branch 'master' into startup-sanity-checks 2022-03-24 11:17:06 +01:00
Sergei Trifonov
c7cf14e743 fix style and darwin build 2022-03-23 19:15:01 +01:00
Alexander Tokmakov
9702b5177d Merge branch 'master' into mvcc_prototype 2022-03-14 21:45:38 +01:00
Maksim Kita
e14cfd5dcd Fix clang-tidy warnings in Access folder 2022-03-14 18:17:35 +00:00
alesapin
96c0e9fddf Better cmake 2022-03-11 15:47:07 +01:00
Alexander Tokmakov
8acfb8d27f Merge branch 'master' into mvcc_prototype 2022-03-07 17:40:15 +01:00
alesapin
c5a456802f Fix build 2022-03-04 19:39:11 +01:00
alesapin
5416b567d5 Merge branch 'master' into standalone_keeper_build 2022-03-04 13:35:07 +01:00
alesapin
0eb7d28192 Building small keeper binary 2022-03-03 21:27:46 +01:00
Vladimir C
38cf9ca7c2
Merge pull request #35005 from vdimir/fixarm64/00092_obfuscator 2022-03-03 12:17:30 +01:00
Maksim Kita
7d90afb3b0
Merge pull request #34988 from azat/safe-exit
Fix signal-unsafe TSan report in client
2022-03-03 09:21:26 +01:00
vdimir
c89de91fd4
clickhouse obfuscator aarch64 fix 2022-03-02 21:31:40 +00:00
Azat Khuzhin
798da0c314 Introduce safeExit() helper (_exit() compatible with TSan)
v2: add missing defines.h header
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-03-02 22:17:17 +03:00
Maksim Kita
b1a956c5f1 clang-tidy check performance-move-const-arg fix 2022-03-02 18:15:27 +00:00
Alexander Tokmakov
aa6b9a2abc Merge branch 'master' into mvcc_prototype 2022-02-23 23:22:03 +03:00
Amos Bird
56197cf31e
Allow only to specify --log-file 2022-02-18 18:14:58 +08:00
Alexander Tokmakov
dae044f86b Merge branch 'master' into mvcc_prototype 2022-02-17 13:49:37 +03:00
Vladimir C
ddad064285
Merge pull request #34463 from vdimir/wide_integer_from_builtin_double_multiplier
Use `cpp_bin_float_double` in `set_multiplier` for `wide_integer_from_builtin` for aarch64
2022-02-15 15:24:20 +01:00
Sergei Trifonov
0f66743104 support determine available memory for FreeBSD 2022-02-15 13:59:00 +03:00
Alexander Tokmakov
1e4e569151 Merge branch 'master' into mvcc_prototype 2022-02-15 02:26:47 +03:00
Maksim Kita
70ffcb8e33
Merge pull request #34393 from kitaisreal/sort-added-equal-items-randomization
Sort added equal items ranges randomization
2022-02-14 16:41:19 +01:00
Vladimir C
ebd93d07e5
fix 2022-02-14 12:36:30 +01:00
Maksim Kita
e13a0bfb39 Enable randomization of sort only in debug 2022-02-13 15:10:44 +00:00
Maksim Kita
7cbf18ef59 Fixed tests 2022-02-13 15:10:44 +00:00
Maksim Kita
4a18e627ec Updated implementation 2022-02-13 15:10:44 +00:00
Maksim Kita
42792dec48 Simplified implementation 2022-02-13 15:10:44 +00:00
Maksim Kita
b536b27e15 Fixed tests 2022-02-13 15:10:44 +00:00
Maksim Kita
10293acafb Sort added equal items ranges randomization 2022-02-13 15:10:44 +00:00
kssenii
fecf7f3d08 May be fix test 01065_window_view_event_hop_watch_bounded.py 2022-02-12 18:24:09 +01:00
Vladimir C
d40275af4f
fix 2022-02-11 21:22:02 +01:00
vdimir
b17d27413e
Use cpp_bin_float_double_extended in wide_integer_from_builtin 2022-02-11 18:01:19 +01:00
Alexander Tokmakov
07e66e690d Merge branch 'master' into mvcc_prototype 2022-02-11 15:53:32 +03:00
vdimir
4b1325ba63
Try to use double in set_multiplier for wide_integer_from_builtin 2022-02-09 14:27:21 +01:00
alexey-milovidov
38d92d0507
Merge pull request #33996 from save-my-heart/fix/signal_pipe_buf_size
reduce signal_pipe_buf_size
2022-02-06 04:50:47 +03:00
Alexander Tokmakov
ca5f951558 Merge branch 'master' into mvcc_prototype 2022-02-03 18:56:44 +03:00
Sergei Trifonov
68bc456830
Merge pull request #34223 from azat/bump-fmt
Bump fmtlib from 7.0.0 to 8.1.1
2022-02-02 00:03:25 +03:00
alexey-milovidov
cafb19d7fb
Merge pull request #34114 from amosbird/replxxwithlexer
Combining our lexer with replxx for better multiple line editing
2022-02-01 16:32:25 +03:00
Azat Khuzhin
220ed206c1 logger_useful: implicitly convert fmt::basic_runtime for std::string ctor
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-01 14:30:03 +03:00
Azat Khuzhin
bedf208cbd Use fmt::runtime() for LOG_* for non constexpr
Here is oneliner:

    $ gg 'LOG_\(DEBUG\|TRACE\|INFO\|TEST\|WARNING\|ERROR\|FATAL\)([^,]*, [a-zA-Z]' -- :*.cpp :*.h | cut -d: -f1 | sort -u | xargs -r sed -E -i 's#(LOG_[A-Z]*)\(([^,]*), ([A-Za-z][^,)]*)#\1(\2, fmt::runtime(\3)#'

Note, that I tried to do this with coccinelle (tool for semantic
patchin), but it cannot parse C++:

    $ cat fmt.cocci
    @@
    expression log;
    expression var;
    @@

    -LOG_DEBUG(log, var)
    +LOG_DEBUG(log, fmt::runtime(var))

I've also tried to use some macros/templates magic to do this implicitly
in logger_useful.h, but I failed to do so, and apparently it is not
possible for now.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>

v2: manual fixes
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-01 14:30:03 +03:00
Alexander Tokmakov
2e4ae37d98 Merge branch 'master' into mvcc_prototype 2022-02-01 13:20:03 +03:00
Maksim Kita
8513f20cfd
Merge pull request #34145 from kitaisreal/bitset-sort-performance-check
pdqsort performance check
2022-01-31 12:35:13 +01:00
Maksim Kita
5ef83deaa6 Update sort to pdqsort 2022-01-30 19:49:48 +00:00
Amos Bird
ae16b362d3
Better case-insensitive completion 2022-01-30 19:50:24 +08:00
Amos Bird
bb34435928
Better code 2022-01-30 19:48:35 +08:00
Amos Bird
62e89a6445
Ignore case for history search and completion 2022-01-30 19:48:34 +08:00
Amos Bird
556cce9f3c
We need highlight to use Lexer 2022-01-30 19:48:34 +08:00
Amos Bird
54517753d7
Combining our lexer with replxx 2022-01-30 19:48:33 +08:00
save-my-heart
4894e93e05
Merge branch 'ClickHouse:master' into fix/signal_pipe_buf_size 2022-01-30 06:29:00 +08:00
Alexey Milovidov
7135ff448f Revert #33957 2022-01-30 01:09:15 +03:00
Alexander Tokmakov
fb9b2d5326 Merge branch 'master' into mvcc_prototype 2022-01-28 21:18:36 +03:00
tavplubix
b92958815a
Update LineReader.cpp 2022-01-28 13:38:36 +03:00
Vitaly Baranov
484743edff
Merge pull request #33201 from azat/client-interactive-suggest
Client interactive suggest (extract info from CREATE queries)
2022-01-28 16:30:16 +07:00
save-my-heart
cc3cbc6503 remove whitespace to pass style check 2022-01-26 23:05:07 +08:00
save-my-heart
62ba4833df fix dereference null pointer 2022-01-26 22:55:19 +08:00
save-my-heart
2c37b572d4 fix 2022-01-26 22:21:18 +08:00
save-my-heart
99c8736f00 fix build error on freebsd & aarch 2022-01-26 22:18:17 +08:00
Azat Khuzhin
0fe1f070fa Fix getauxval() in glibc-compatibility
getauxval() from glibc-compatibility did not work always correctly:

- it does not work after setenv(), and this breaks vsyscalls,
  like sched_getcpu() [1] (and BaseDaemon.cpp always set TZ if timezone
  is defined, which is true for CI [2]).

  [1]: https://bugzilla.redhat.com/show_bug.cgi?id=1163404
  [2]: https://github.com/ClickHouse/ClickHouse/pull/32928#issuecomment-1015762717

- another think that is definitely broken is LSan (Leak Sanitizer), it
  relies on worked getauxval() but it does not work if __environ is not
  initialized yet (there is even a commit about this).

  And because of, at least, one leak had been introduced [3]:

    [3]: https://github.com/ClickHouse/ClickHouse/pull/33840

Fix this by using /proc/self/auxv.

And let's see how many issues will LSan find...

I've verified this patch manually by printing AT_BASE and compared it
with output of LD_SHOW_AUXV.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-01-26 12:56:27 +03:00
save-my-heart
c1036f0b8e ensure signal_pipe_buf_size is <= PIPE_BUF 2022-01-25 22:43:44 +08:00
Maksim Kita
c1db61b4ed
Merge pull request #33946 from azat/build-cleanup
Remove MAKE_STATIC_LIBRARIES (in favor of USE_STATIC_LIBRARIES)
2022-01-24 23:42:04 +01:00
Azat Khuzhin
1acd644040 Add inplace merge for new completion words
This will allow:
- use addWords() everywhere
- remove that optimization for empty words case (initial load)
- and now we remove duplicates according to comparator

v2: replace parameter pack in addWords() with explicit Compare for both
cases (just pass default)
2022-01-24 22:59:18 +03:00
Azat Khuzhin
b9948155cd Remove extra copying for completion words
Return Replxx::completions_t over Words array, that way we avoids one
copying of std::string (although it breaks incapsulation).
2022-01-24 23:04:48 +03:00
Azat Khuzhin
4a0facd341 Remove MAKE_STATIC_LIBRARIES (in favor of USE_STATIC_LIBRARIES)
There is no more MAKE_*, so remove this alias.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-01-24 17:28:33 +03:00
Azat Khuzhin
37dbff7587 Revert glibc compatibility (via .symver) in favor of hermetic build (bundled libc)
This patch reverts glibc compatibility (via .symver) #29594,
in favor of hermetic build (that provides bundled libc version) #30011

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-01-24 16:03:56 +03:00
Alexander Tokmakov
0ea0a8ccc7 Merge branch 'master' into mvcc_prototype 2022-01-20 17:05:55 +03:00
Azat Khuzhin
e0e81b340d Fix w/o ODBC build 2022-01-20 10:02:02 +03:00
Azat Khuzhin
e3b140a387 Add alias library for fmt 2022-01-20 10:02:02 +03:00
Azat Khuzhin
ad67aa527c Add alias library for magic_enum 2022-01-20 10:02:02 +03:00
Azat Khuzhin
ea68b07c9e Remove unbundled replxx support 2022-01-20 10:02:01 +03:00
Azat Khuzhin
8b692b607c Remove unbundled cctz support 2022-01-20 10:02:01 +03:00
Azat Khuzhin
3147bbab51 Cleanup sentry support 2022-01-20 10:02:00 +03:00
Azat Khuzhin
f1cc63d900 Remove unbundled cityhash support 2022-01-20 10:01:12 +03:00
Alexander Tokmakov
e9a5a64a71 Merge branch 'master' into mvcc_prototype 2022-01-19 21:41:23 +03:00
Amos Bird
4e18368186
CI somehow finds another duplicated header 2022-01-19 14:37:59 +08:00
alexey-milovidov
d222cb9771
Merge pull request #33695 from amosbird/buildimprove
Some build improvement
2022-01-19 03:19:22 +03:00
Azat Khuzhin
f12e4b6ef7 Rewrite suggestions to make it more cleaner
- use plain mutex over atomic
- use addWords() for initial suggestion filling
- return vector<> from getCompletions() over iterator, to avoid possible
  questions (even though it was safe, since addWords() could not be
  called in parallel with getCompletions() before)
2022-01-18 21:03:51 +03:00
Kruglov Pavel
2295a07066
Merge pull request #33534 from azat/fwd-decl
RFC: Split headers, move SystemLog into module, more forward declarations
2022-01-18 17:22:49 +03:00
Amos Bird
6d62060e16
Build improvement 2022-01-17 22:36:27 +08:00
Alexey Milovidov
7848ea7d60 Allow insertFrom for ColumnFunction 2022-01-16 06:18:35 +03:00
Alexander Tokmakov
4dd216ce8f Merge branch 'master' into mvcc_prototype 2022-01-14 17:11:32 +03:00
Azat Khuzhin
cb70544dfe Move LockMemoryExceptionInThread and MemoryTrackerBlockerInThread 2022-01-10 22:39:10 +03:00
Azat Khuzhin
aee034a597 Use explicit template instantiation for SystemLog
- Move some code into module part to avoid dependency from IStorage in SystemLog
- Remove extra headers from SystemLog.h
- Rewrite some code that was relying on headers that was included by SystemLog.h

v2: rebase
v3: squash move into module part with explicit template instantiation
    (to make each commit self compilable after rebase)
2022-01-10 22:01:41 +03:00
Alexander Tokmakov
bf2b6c2c37 Merge branch 'master' into mvcc_prototype 2022-01-10 19:53:50 +03:00
msaf1980
780a1b2abe graphite: split tagged/plain rollup rules (for merges perfomance) 2022-01-10 16:34:16 +05:00
Alexey Milovidov
0696c1971f Fix clang-tidy 2022-01-04 23:52:10 +03:00
alexey-milovidov
6e9684149b
Update wide_integer_impl.h 2022-01-03 16:43:58 +03:00
Alexey Milovidov
93bd1771cc Fix error 2022-01-02 23:52:55 +03:00
Alexander Tokmakov
8aec3ae94f Merge branch 'master' into mvcc_prototype 2021-12-28 14:24:36 +03:00
Azat Khuzhin
36c4fc054c Client interactive suggest (extract info from CREATE queries)
This will parse CREATE queries and add the following things to
completion list for clickhouse-client/clickhouse-local:
- table
- database
- columns
2021-12-26 19:10:25 +03:00
Alexey Milovidov
8b91bdf9f2 Enable query profiler 2021-12-24 12:25:27 +03:00
Alexey Milovidov
29d28c531f Move code around to avoid dlsym on Musl 2021-12-24 12:25:27 +03:00
alexey-milovidov
95818893d3
Merge pull request #33058 from ClickHouse/update-harmful
Update harmful library
2021-12-23 08:01:21 +03:00
Alexey Milovidov
9fa2b7a581 Corrections 2021-12-23 01:38:28 +03:00
Alexey Milovidov
53c83e4813 Merge branch 'Issue77' of github.com:DevTeamBK/ClickHouse into merge-33025 2021-12-23 01:36:46 +03:00
Rajkumar
a75d3d1c83 Review comments 2021-12-22 13:39:45 -08:00
alexey-milovidov
70fb9833ef
Update harmful.c 2021-12-22 22:55:55 +03:00
alexey-milovidov
fc9cc7dfb0
Update harmful.c 2021-12-22 22:06:06 +03:00
Alexey Milovidov
d11c5b3893 Update harmful library 2021-12-22 21:54:29 +03:00
Alexander Tokmakov
b7184732d5 Merge branch 'master' into mvcc_prototype 2021-12-22 19:46:09 +03:00
tavplubix
d8fb293d57
Merge pull request #32900 from zzsmdfj/issue/#15182_MaterializeMySQL_support_bit_type
Add support for BIT data type in MaterializedMySQL
2021-12-22 15:58:29 +03:00
Alexander Tokmakov
32e62ed5c2 Merge branch 'master' into mvcc_prototype 2021-12-17 10:43:46 +03:00
zzsmdfj
7498dd9c33 to #15182_MaterializeMySQL_support_bit_type- fix code format 2021-12-17 15:10:43 +08:00
zzsmdfj
e9eed1f927 to #15182_MaterializeMySQL_support_bit_type 2021-12-17 15:03:24 +08:00
Alexander Tokmakov
d7ad72838c Merge branch 'master' into mvcc_prototype 2021-12-14 23:07:52 +03:00
kssenii
f0d0714e47 Pass timeouts for mysql 2021-12-13 22:12:33 +00:00
Azat Khuzhin
d8bf26f705 Remove even minimal support for readline 2021-12-11 11:33:57 +03:00
Azat Khuzhin
4e4837758a Remove readline support
- it was not nested for a long time
- replxx is an upstream way for completion
2021-12-11 11:29:59 +03:00
Mikhail f. Shiryaev
03927f5fc6
Revert "graphite: split tagged/plain rollup rules (for merges perfomance)"
This reverts commit 303552f515.
2021-12-08 15:49:21 +01:00
Alexander Tokmakov
7fcb79ae72 Merge branch 'master' into mvcc_prototype 2021-12-07 14:39:29 +03:00
Mikhail f. Shiryaev
5fc20b3e6a
Merge pull request #25122 from msaf1980/rollup_rules_type
GraphiteMergeTree Rollup rules type
2021-12-07 10:18:08 +01:00
msaf1980
303552f515
graphite: split tagged/plain rollup rules (for merges perfomance) 2021-12-06 16:49:08 +01:00
alexey-milovidov
50c23a9fd6
Merge pull request #31123 from amosbird/repl-improvement
Better clickhouse-client multiline input
2021-12-06 12:22:13 +03:00
Azat Khuzhin
96bd83c31e Do not reopen logs on USR1, HUP is enough
USR1 is also used for query_profiler_real_time_period_ns, let's not
overlap.
2021-12-03 01:32:57 +03:00
Azat Khuzhin
bdc6163b88 Fix magic_enum for debug helpers 2021-11-28 06:28:19 +03:00
alexey-milovidov
d9292395e8
Merge pull request #31832 from ClickHouse/strange-code-typelist
Fix the issue that LowCardinality of Int256 cannot be created.
2021-11-27 00:36:56 +03:00
Vasily Nemkov
e9466e505b Minor improvements to DUMP macro
- output enum values names with help of magic_enum
- output string literals as is, without type info
2021-11-26 12:20:08 +02:00
Alexey Milovidov
85cec911be Fix strange code in TypeList 2021-11-25 23:55:02 +03:00
Kruglov Pavel
b63b47f0f0
Merge pull request #31265 from Avogar/fix-write-buffers
Fix and refactor WriteBiffer-s a little
2021-11-23 16:46:09 +03:00
Alexey Milovidov
c50b31a7a5 Remove trash 2021-11-21 17:35:33 +03:00
Alexey Milovidov
a778b625b9 Get rid of 10-years old trash 2021-11-21 15:48:11 +03:00
Kruglov Pavel
d9c1a0c8ec
Merge branch 'master' into fix-write-buffers 2021-11-20 17:48:24 +03:00
Alexander Tokmakov
06bed68f6e Merge branch 'master' into mvcc_prototype 2021-11-17 23:03:19 +03:00
Nikolay Degterinsky
fc9ef14a73
Merge pull request #29219 from evillique/log_lz4_streaming
Add LZ4 stream compression of logs
2021-11-17 21:22:57 +03:00
Amos Bird
93294734d3
Better clickhouse-client multiline input 2021-11-17 22:11:30 +08:00
Nikolay Degterinsky
ddef6d86ca Minor fixes 2021-11-16 23:02:47 +00:00
Nikolay Degterinsky
2ae79233e4 Better 2021-11-16 23:02:47 +00:00
Nikolay Degterinsky
eafd3ddfac Add lz4 stream compression 2021-11-16 22:30:29 +00:00
alexey-milovidov
9a30709e99
Update ReplxxLineReader.cpp 2021-11-17 00:44:52 +03:00
Azat Khuzhin
b7030720b6 Add comments for ReplxxLineReader::executeEditor() 2021-11-16 23:26:41 +03:00
Azat Khuzhin
7576f4d9cd Fix waiting of the editor during interactive query edition
On resize (SIGWINCH) waitpid() will fail with EINTR error, and after
this clickhouse-client/clickhouse-local will works concurrently.
2021-11-16 23:26:41 +03:00
Azat Khuzhin
6fdbffb533 Avoid using extra shell for editor invocation (for query editing) 2021-11-16 23:26:41 +03:00
Alexander Tokmakov
ce2f692bb4 Merge branch 'master' into mvcc_prototype 2021-11-15 14:56:50 +03:00
Azat Khuzhin
ed4b5c7640 Check stderr is writable before reopining it (to avoid losing errors) 2021-11-13 22:26:05 +03:00
Alexander Tokmakov
672157b817 Merge branch 'master' into mvcc_prototype 2021-11-11 22:01:34 +03:00
alexey-milovidov
5100ec7b48
Update defines.h 2021-11-11 21:51:24 +03:00
Vladimir Smirnov
48451182f8 Initial support for risc-v
Make ClickHouse compilable and runnable on risc-v 64

So far only basic functionality was tested (on real hw),
clickhouse server runs, exceptions works, client works,
simple tests works.

What doesn't work:
 1. traces - they are always empty
 2. system.stack_trace only have first frame
2021-11-11 19:23:34 +01:00
avogar
c521a9131a Small refactoring of WriteBiffer-s 2021-11-11 02:11:18 +03:00
Vitaly Baranov
1579bcfd20
Merge pull request #31178 from vitlibar/backup-engines-and-improvements
Backup engines and improvements
2021-11-10 18:20:41 +03:00
Vitaly Baranov
bf8606a931 Add UUID and timestamp to backup metadata. 2021-11-09 23:16:45 +03:00
Pavel Medvedev
340aed30b6 revert cgroup memory limit to uint64_t
... to fix compiler warning about signed/unsigned comparison.

See issue #25662
2021-11-08 18:56:31 +01:00
Pavel Medvedev
54f543b61a apply cgroup memory limit to physical memory amount
... after obtaining the memory amount, in order to return not greater
than the physical memory from `getMemoryAmount()`

Additionally reading the memory limit as a singned int64_t, since
there is no guarantie the setting file contains non-negative value.

See issue #25662
2021-11-08 15:16:45 +01:00
Alexander Tokmakov
92eec74ad7 Merge branch 'master' into mvcc_prototype 2021-11-06 21:08:36 +03:00
alexey-milovidov
a487ee6f25
Merge pull request #30574 from pmed/issue_25662_cgroup_memory_limit
WIP: use cgroup memory limit in getMemoryAmountOrZero
2021-10-31 14:53:16 +03:00
Alexey Milovidov
8b4a6a2416 Remove cruft 2021-10-28 02:10:39 +03:00
alexey-milovidov
705c1b957d
Update getMemoryAmount.cpp 2021-10-23 05:27:15 +03:00
Pavel Medvedev
eaca39ba05 use cgroup memory limit in getMemoryAmountOrZero
Try to read the memory amount from /sys/fs/cgroup/memory/memory.limit_in_bytes

See issue #
2021-10-23 02:54:58 +02:00
Maksim Kita
0b3926950d
Merge pull request #30143 from amosbird/useupstreamreplxx
Use upstream replxx
2021-10-19 17:50:43 +03:00
alexey-milovidov
f4bfed9d3a
Merge pull request #29586 from evillique/log_levels_update
Add log levels updates
2021-10-17 20:54:46 +03:00
alexey-milovidov
e9af03ef52
Merge pull request #30248 from ClickHouse/musl-4
Preparation to build with Musl
2021-10-16 18:44:35 +03:00
Alexey Milovidov
55116ae399 Fix error 2021-10-16 01:57:22 +03:00
Alexey Milovidov
41acc52458 Preparation to build with Musl 2021-10-16 00:17:34 +03:00
Amos Bird
4800749d32
make Ctrl-J to commit 2021-10-14 23:56:28 +08:00
Nikolay Degterinsky
2da43012b6 Add log levels updates 2021-10-14 16:34:30 +03:00
Maksim Kita
04047f76c7 Fixed tests 2021-10-14 00:33:18 +03:00
Maksim Kita
d55561422f Fixed tests 2021-10-14 00:33:18 +03:00
alexey-milovidov
21f3316884
Merge pull request #29933 from ClickHouse/sentry-remove-trash
Remove trash from SentryWriter
2021-10-12 21:14:46 +03:00
Alexey Milovidov
8196f89481 Remove trash from CMake 2021-10-11 06:58:08 +03:00
Alexey Milovidov
af4066c255 Remove printf 2021-10-10 21:54:15 +03:00
Alexey Milovidov
4e6ed5c45c Remove trash from SentryWriter 2021-10-10 04:10:52 +03:00
Anton Popov
199ac31b48
Merge pull request #29683 from myrrc/improvement/tl-to-common
Non-recursive implementation for type list and its functions
2021-10-05 21:49:15 +03:00
Mike Kot
25a62b9f83 Renaming TL to Typelist 2021-10-05 17:22:02 +02:00
Maksim Kita
3834256abf
Merge pull request #29722 from kitaisreal/borrowed-object-pool-condition-variable-notify-fix
BorrowedObjectPool condition variable notify fix
2021-10-04 21:39:59 +03:00
Nikita Mikhaylov
613b814e24
Merge pull request #29595 from CurtizJ/generalize-update-permutation
Generalize code in `IColumn::updatePermutation`
2021-10-04 20:36:57 +03:00
Nikita Mikhaylov
b31d11478b
Merge pull request #29680 from azat/defines
Cleanup common defines
2021-10-04 20:13:29 +03:00
Maksim Kita
26611ba72c BorrowedObjectPool condition variable notify fix 2021-10-04 13:25:44 +03:00
alexey-milovidov
6abb3d4c6d
Merge pull request #29682 from traceon/xcode-13-fix-build
Fix Xcode 13 build
2021-10-04 02:34:43 +03:00
Sergei Semin
8e81732bb1 fix rename of path for iostream_debug_helpers.h 2021-10-04 00:29:00 +03:00
Mike Kot
8c8bada56e Non-recursive implementation for TL and its functions 2021-10-03 18:02:04 +02:00
Denis Glazachev
ca7b69b0f3 Manipulate with -Wreserved-identifier only if HAS_RESERVED_IDENTIFIER has been detected 2021-10-03 17:42:36 +04:00
Azat Khuzhin
d0fc26f91a Do not pretend that windows is supported (remove code undef #ifdef _MSC_VER) 2021-10-03 14:42:53 +03:00
Azat Khuzhin
70e1f4d402 Move ASAN_{UN,}POISON_MEMORY_REGION to base/defines 2021-10-03 14:34:03 +03:00
Azat Khuzhin
1f5d377aa6 Move comments about aliases (inline/noinline and similar) into proper place
Fixes: 571d0d541c ("Improve CCTZ contrib (#9687)")
2021-10-03 14:34:03 +03:00
Mike Kot
38232c286d fixing paths 2021-10-02 21:45:05 +02:00
Mike Kot
65e6e211b4 Merge remote-tracking branch 'upstream/master' into improvement/fn-traits 2021-10-02 21:37:50 +02:00
Anton Popov
1f10246a10 Merge remote-tracking branch 'upstream/master' into HEAD 2021-10-02 22:33:27 +03:00
Alexey Milovidov
2ad5dbdfe8 Rename "common" to "base" 2021-10-02 11:30:38 +03:00
Alexey Milovidov
fe6b7c77c7 Rename "common" to "base" 2021-10-02 10:13:14 +03:00
Azat Khuzhin
cab0551c5b Add ability to compile using newer version fo glibc w/o using new symbols
In glibc 2.32 new version of some symbols had been added [1]:

    $ nm -D clickhouse | fgrep -e @GLIBC_2.32
                     U pthread_getattr_np@GLIBC_2.32
                     U pthread_sigmask@GLIBC_2.32

  [1]: https://www.spinics.net/lists/fedora-devel/msg273044.html

Right now ubuntu 20.04 is used as official image for building
ClickHouse, however once it will be switched someone may not be happy
with that fact that he/she cannot use official binaries anymore because
they have glibc < 2.32.

To avoid this dependency, let's force previous version of those
symbols from glibc.

Note, that I've tested this by compiling with glibc 2.32 and verifying
that output ELF does not have @GLIBC_2.32 symbols and also running that
binary inside ubuntu:20.04 image (that has glibc 2.31).

v1: -Wl,--wrap
v2: -Wl,--defsym
v3: -include
v4: fix versioning for aarch64
2021-10-01 21:01:59 +03:00
Mike Kot
e8625e85a4 Fixing integration tests 2021-10-01 19:13:14 +02:00
Mike Kot
38b02b121a Merge remote-tracking branch 'upstream/master' into improvement/fn-traits 2021-10-01 16:55:28 +02:00
Mike Kot
5e560ff9d7 fix 2021-10-01 16:55:01 +02:00
Anton Popov
515cc74530 generalize code in IColumn::updatePermutation 2021-10-01 00:11:54 +03:00
Azat Khuzhin
a4f2663b82 Log queries to external databases (since they may be rewriten)
By rewritten means that some expression from WHERE can be removed, yes
there is external_table_strict_query, but sometimes it is too strict.
2021-09-29 21:56:28 +03:00
Mike Kot
7670ea50c1 Replacing std::function to Fn in some places
to avoid dynamic allocating while keeping desired function signature
clear.
Simplifying SimpleCache (CachedFn) using C++20
2021-09-29 13:09:39 +02:00
Alexey Milovidov
cd7f9d981c Remove ya.make 2021-09-25 04:22:54 +03:00
Alexander Tokmakov
72b1b2e360 Merge branch 'master' into mvcc_prototype 2021-09-23 22:53:27 +03:00
Alexey Milovidov
894f4908fa Add comments 2021-09-19 22:26:16 +03:00
Alexey Milovidov
86f38283ff Merge branch 'master' into better-memequal 2021-09-19 21:54:15 +03:00
alexey-milovidov
20d8523a2e
Merge pull request #28888 from azat/mysql-in-fix
Fix queries to external databases (i.e. MySQL) with multiple columns in IN ( i.e. `(k,v) IN ((1, 2))` )
2021-09-18 15:53:40 +03:00
alexey-milovidov
c4b3add859
Update Query.cpp 2021-09-18 15:46:48 +03:00
Maksim Kita
7c748b6140
Merge pull request #27963 from zhanglistar/overflow_bugfix
Overflow bugfix
2021-09-15 23:31:43 +03:00
Sergei Semin
12e24a23d3
Merge branch 'master' into fix-build-clang-13-2 2021-09-12 19:30:55 +03:00
alexey-milovidov
ea13a8b562
Merge pull request #28659 from myrrc/improvement/tostring_to_magic_enum
Improving CH type system with concepts
2021-09-12 15:26:29 +03:00
Sergei Semin
f74350c148 fix special build 2021-09-12 02:49:31 +03:00
Mike Kot
3401b32e37 Adapted usage of is_decimal concept 2021-09-11 19:35:12 +02:00
Azat Khuzhin
c77c4e22ae Add MySQL query into after transformation in case of BadQuery
Since it may differs from the user input
2021-09-11 14:06:19 +03:00