Vasily Nemkov
c16c06eaba
Removed declaration of unused LOGICAL_ERROR
2022-11-02 20:28:40 +04:00
Vasily Nemkov
e95d2c30e9
Removed debug code
2022-11-02 18:52:38 +04:00
Vasily Nemkov
c994dabb75
Fixed build on CI/CD
...
Making type conversions for search_limit explicit
2022-11-02 17:40:40 +04:00
Vladimir Chebotaryov
d17b7387f9
Reworked changes to std::shared_ptr<const RowPolicyFilter>
.
2022-10-27 10:42:55 +03:00
Vladimir Chebotaryov
c28e439c33
Review fixes.
2022-10-27 10:42:22 +03:00
Vladimir Chebotaryov
4cabe1f57c
Added applied row-level policies to system.query_log
.
2022-10-27 10:41:47 +03:00
Vasily Nemkov
c569adfaf6
Minor fixes: typo and missing forward declaration
2022-10-25 13:42:54 +04:00
Vasily Nemkov
659a097631
Fixed SettingsProfilesInfo::getProfileNames() throwing std::exception
...
- Using profiles_with_implicit for profile IDs, since it seems to be better synchronized with names
- Trying harder: attempting to get name from AccessControl if it is missing from local cached names
- Throwing Exception if everything else fails
2022-10-25 09:35:10 +04:00
Alexey Milovidov
98f5f27947
Merge branch 'master' into ldap_fix_search_limit
2022-10-24 10:44:45 +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
Vasily Nemkov
05cde705b0
Addressed issues mentioned in PR
...
Stronger hashing for LDAP parameters
Fixed SipHash double finalize()
Simplified checks on search_limit
2022-10-20 16:38:41 +04:00
Alexey Milovidov
1fd6a56845
Update LDAPClient.h
2022-10-20 16:38:40 +04:00
Alexey Milovidov
08c1e8dc2d
Update ExternalAuthenticators.cpp
2022-10-20 16:38:39 +04:00
Vasily Nemkov
1ed7ad57d9
fix LDAP in case of many roles on user
...
- Raised default value of search_limit to 256
- Added option to change that to arbitrary value
- using SipHash for computing hash of LDAP server parameters
- other minor changes
2022-10-20 16:38:38 +04:00
Alexander Tokmakov
4175f8cde6
abort instead of __builtin_unreachable in debug builds
2022-10-07 21:49:08 +02:00
Robert Schulze
fd86829824
Consolidate config_core.h into config.h
...
Less duplication, less confusion ...
2022-09-28 13:31:57 +00:00
Nikolay Degterinsky
a7f3c7086c
Merge pull request #41341 from evillique/mandatory-identification
...
Add a setting requiring no_password to be explicitly specified when creating a user
2022-09-22 15:19:43 +02:00
Nikolay Degterinsky
7292d47923
Merge branch 'master' into mandatory-identification
2022-09-21 12:18:17 +02:00
kssenii
b8079e4577
Merge remote-tracking branch 'upstream/master' into rename-some-cache-commands
2022-09-20 13:02:18 +02:00
Sergei Trifonov
cf2db48c29
Merge pull request #40631 from ClickHouse/readonly-settings-allow
...
Allow to modify constrained settings in readonly mode
2022-09-20 02:18:14 +02:00
kssenii
e3cd3686af
Rename
2022-09-19 14:02:51 +02:00
serxa
a0bfa801e5
explicit ctor
2022-09-19 10:52:08 +00:00
Vitaly Baranov
e7e51ab2d9
Add comments.
2022-09-18 12:44:05 +02:00
Vitaly Baranov
69996c960c
Add retries for the initialization of ReplicatedAccessStorage.
2022-09-18 12:44:05 +02:00
Vitaly Baranov
5365b105cc
Add SYSTEM RELOAD USERS command.
2022-09-18 12:44:00 +02:00
Vitaly Baranov
1b40f94c6b
Move common code from MemoryAccessStorage and DiskAccessStorage to IAccessStorage.
2022-09-18 12:17:15 +02:00
Vitaly Baranov
391507b4b6
Update src/Access/DiskAccessStorage.cpp
...
Co-authored-by: Antonio Andelic <antonio2368@users.noreply.github.com>
2022-09-16 19:02:06 +02:00
Vitaly Baranov
2ec6ef497d
Make DiskAccessStorage::insertWithID() more consistent with MemoryAccessStorage::insertWithID().
2022-09-16 19:02:06 +02:00
Vitaly Baranov
7e716d14cd
Make ReplicatedAccessStorage::insertWithID() more consistent with MemoryAccessStorage::insertWithID().
2022-09-16 19:02:06 +02:00
Vitaly Baranov
646cd55690
Improve recovery of ReplicatedAccessStorage after errors.
2022-09-16 19:02:06 +02:00
Vitaly Baranov
8f9f5c69da
Use MemoryAccessStorage to simplify ReplicatedAccessStorage.
2022-09-16 19:02:06 +02:00
serxa
4971c1f04d
review fixes
2022-09-15 11:34:14 +00:00
Nikolay Degterinsky
72d8a04ee6
Add setting 'allow_implicit_no_password'
2022-09-15 08:07:42 +00:00
Sergei Trifonov
cad3a6b764
fix style
2022-09-12 22:01:45 +02:00
Sergei Trifonov
c31818260f
renames and refactoring
2022-09-12 21:03:06 +02:00
Sergei Trifonov
62541ab764
fix more tests and clang tidy build
2022-09-08 17:43:09 +02:00
Sergei Trifonov
77ee4c04aa
fix stateless tests
2022-09-06 20:28:50 +02:00
Sergei Trifonov
7a2d750f7f
fix typo
2022-09-02 18:59:16 +02:00
Sergei Trifonov
a6a95e38ca
fix style
2022-09-02 18:20:47 +02:00
Sergei Trifonov
005b2588d8
Merge branch 'master' into readonly-settings-allow
2022-09-02 16:37:43 +02:00
Sergei Trifonov
014d109175
fix build, fix docs, fix comments, logical fixes, test are still to be fixed and new test are to be added
2022-09-02 16:20:09 +02:00
Sergei Trifonov
7fec55eea4
work in progress
2022-09-02 04:12:05 +02:00
Robert Schulze
5ff0ecb867
Merge branch 'master' into remove-unnecessary-context-access-method
2022-08-31 10:14:27 +02:00
Alexander Tokmakov
022f440ad0
Merge pull request #40769 from arthurpassos/caresptrresolver-hosts-patch
...
Fix CaresPTRResolver not reading hosts file
2022-08-30 14:35:10 +03:00
Robert Schulze
c185353bf0
Minor: remove unnecessary ContextAccess::make() method
2022-08-30 08:06:42 +00:00
Arthur Passos
961365c7a4
Fix CaresPTRResolver not reading hosts file
2022-08-29 15:11:39 -03:00
Konstantin Morozov
d185b7a332
refactoring: public ctors
2022-08-29 20:19:20 +03:00
Sergei Trifonov
f8cfb2e53a
fix style, typos and tests
2022-08-29 14:33:48 +02:00
Konstantin Morozov
6636bdec2a
refactoring: fix format
2022-08-29 07:44:40 +03:00
Konstantin Morozov
38a85ade27
refactoring: small up
2022-08-28 22:33:12 +03:00
Konstantin Morozov
b4de735a90
refactoring: fix space
2022-08-28 20:55:08 +03:00
Konstantin Morozov
08e9e799d0
refactoring: fix
2022-08-28 20:53:00 +03:00
Konstantin Morozov
75bd61fad5
Merge remote-tracking branch 'origin/ref/remove-unnecessary-allocation' into ref/remove-unnecessary-allocation
...
# Conflicts:
# src/Access/ContextAccess.cpp
# src/Access/ContextAccess.h
2022-08-28 20:50:29 +03:00
Konstantin Morozov
7cd2821aed
refactoring: template make helper
2022-08-28 20:42:55 +03:00
Konstantin Morozov
4050ab819e
refactoring: remove unnecessary allocation
2022-08-28 17:23:17 +03:00
Konstantin Morozov
d4d80dd3c1
refactoring: remove unnecessary allocation
2022-08-28 17:09:13 +03:00
Sergei Trifonov
c5d1bbf680
reimplement with <allow> tag
2022-08-26 21:20:00 +02:00
Sergei Trifonov
856a2f5956
Allow to modify constrained settings in readonly mode
2022-08-25 17:24:24 +02:00
avogar
8dd54c043d
Merge branch 'master' of github.com:ClickHouse/ClickHouse into schema-inference-cache
2022-08-17 11:47:40 +00:00
alexX512
6bf29cb610
Change class LRUCache to class CachBase. Check running CacheBase with default pcahce policy SLRU
2022-08-07 19:59:30 +00:00
avogar
9b1a267203
Refactor, remove TTL, add size limit, add system table and system query
2022-08-05 16:20:15 +00:00
Azat Khuzhin
498c8b3c52
Fix clang-tidy in utils/examples
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-07-29 11:36:51 +03:00
Alexander Tokmakov
bed2206ae9
Merge pull request #39460 from ClickHouse/remove_some_dead_and_commented_code
...
Remove some dead and commented code
2022-07-22 13:24:34 +03:00
Alexander Tokmakov
9e9969cea7
Merge pull request #37827 from arthurpassos/host_regexp_multiple_domains
...
Test host_regexp against all PTR records instead of only one
2022-07-21 16:43:05 +03:00
Alexander Tokmakov
a8da5d96fc
remove some dead and commented code
2022-07-21 15:05:48 +02:00
Nikolai Kochetov
91043351aa
Fixing build.
2022-07-20 20:30:16 +00:00
Vitaly Baranov
6bf7bffbeb
Correct the list of always accessible system tables.
2022-07-15 15:44:29 +02:00
Vitaly Baranov
de34d173ba
Remove excessive log messages.
2022-07-15 15:44:29 +02:00
Vitaly Baranov
c85b2b5732
Add option enabling that SELECT from the system database requires grant.
2022-07-15 15:44:25 +02:00
avogar
9291d33080
Pass const std::string_view & by value, not by reference
2022-07-14 16:11:57 +00:00
Arthur Passos
395dada988
minor style adjustments
2022-07-13 09:40:56 -03:00
Arthur Passos
cb349c05c5
minor adjustments
2022-07-12 19:27:44 -03:00
Arthur Passos
d48690d455
Make CaresPTRResolver a singleton through DNSPTRResolverProvider, add comments and address minor comments
2022-07-12 14:21:10 -03: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
Vitaly Baranov
ed27987646
Merge pull request #38861 from vitlibar/backup-improvements-9
...
Backup Improvements 9
2022-07-07 02:24:47 +02:00
Vitaly Baranov
1ac46c5e48
Fix making backups containing multiple ACL tables.
2022-07-05 20:57:01 +02:00
Vitaly Baranov
43d35eec1b
Write unfinished mutations to backup.
2022-07-05 14:51:09 +02:00
Arthur Passos
d66154e697
Test host_regexp against all PTR records instead of only one
2022-07-04 10:05:28 -03:00
Vitaly Baranov
b4103c1a0e
Merge pull request #38674 from vitlibar/fix-crash-when-grant-all-on-cluster
...
Fix crash when granting ALL on cluster.
2022-07-04 10:13:56 +02:00
Vitaly Baranov
92e0ee0b6f
More detailed error messages.
2022-07-03 14:20:19 +02:00
Vitaly Baranov
1a71e44b28
Merge pull request #38024 from nvartolomei/nv/error-if-profile-does-not-exist
...
Throw exception when xml user profile does not exist
2022-07-03 11:26:08 +02:00
mergify[bot]
dfac2ca2fc
Merge branch 'master' into fix-crash-when-grant-all-on-cluster
2022-07-02 17:38:45 +00:00
Vitaly Baranov
8195aa768b
Move checking if parent profile is allowed to UsersConfigAccessStorage.
2022-07-01 14:46:35 +02:00
Vitaly Baranov
ae2f586170
Fix crash when granting ALL on cluster.
2022-07-01 12:19:56 +02:00
Vitaly Baranov
e367d96964
Fix style.
2022-06-30 15:10:33 +02:00
Vitaly Baranov
5456bde4a2
Improve gathering metadata for storing ACL in backups.
2022-06-30 09:46:37 +02:00
Vitaly Baranov
031ca28fdc
Add test for partition clause. More checks for data compatibility on restore.
2022-06-30 08:37:18 +02:00
Vitaly Baranov
11b51d2878
Implement storing UDF in backups.
2022-06-30 08:37:17 +02:00
Vitaly Baranov
44db346fea
Improve gathering metadata for backup - part 3.
2022-06-30 08:37:17 +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
Yakov Olkhovskiy
d5f65ece9b
Merge pull request #38105 from arenadata/ADQM-419
...
Add kerberosInit function as a replacement for kinit executable calls in Kafka and HDFS
2022-06-27 14:19:24 -04:00
mergify[bot]
f63c959679
Merge branch 'master' into cleanup_garbage_in_store_dir
2022-06-26 13:35:10 +00:00
Alexander Tokmakov
74f38710a8
Merge branch 'master' into cleanup_garbage_in_store_dir
2022-06-23 21:43:28 +02:00
kssenii
6fbd49f554
Merge master
2022-06-23 21:40:01 +02:00
kssenii
468c98ff42
Better
2022-06-23 17:46:27 +02:00
Roman Vasin
cb748cd8ec
Fix code style in KerberosInit
2022-06-23 16:11:48 +03:00
Roman Vasin
4bf1fc4718
Add error code and message displaying in exceptions of KerberosInit; Correct code style in KerberosInit
2022-06-23 10:28:31 +03:00
kssenii
dce1c76270
Fix
2022-06-22 18:00:25 +02:00
Roman Vasin
7bd65c8c24
Add comments to KerberosInit; Remove input cache and flags from KerberosInit
2022-06-22 16:31:48 +03:00
Roman Vasin
f281199588
Fix code style in KerberosInit; Add anonymous namespace; Add comment about using kerberos_init
2022-06-22 11:28:00 +03:00
Roman Vasin
1d6eea6cfa
Replace LOG_DEBUG by LOG_TRACE in KerberosInit; Correct exception message; Prohibit making a copy of KerberosInit
2022-06-21 18:55:17 +03:00
Alexander Tokmakov
ba0fcec993
add background cleanup of store/ subdirs
2022-06-21 12:35:47 +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
Vitaly Baranov
a6fc0dea4e
Fix clang-tidy more.
2022-06-20 11:04:37 +02:00
Vitaly Baranov
2c8788266c
Fix tests.
2022-06-20 03:44:49 +02:00
Vitaly Baranov
8a7c970ce0
Fix style.
2022-06-19 15:58:26 +02:00
Vitaly Baranov
115be82440
DiskAccessStorage is now allowed to backup by default.
2022-06-19 13:16:36 +02:00
Vitaly Baranov
9f197defda
Add support for setting 'allow_backup' to skip access entities from putting to backup.
2022-06-19 12:49:50 +02:00
Vitaly Baranov
01aaaf7395
More accurate access checking for RESTORE.
2022-06-19 11:26:41 +02:00
Vitaly Baranov
a0c558a17e
Implement backup/restore for ACL system tables (system.users, system.roles, etc.)
2022-06-17 18:14:31 +02:00
Roman Vasin
d93fd3bd2d
Add complilation support for case when krb5 is not used
2022-06-16 09:30:40 +00:00
Vitaly Baranov
c0f06c5e16
Require new privilige 'BACKUP' to make a backup.
2022-06-15 20:32:35 +02:00
Roman Vasin
344fbe8de4
Fix code style
2022-06-15 20:26:42 +03:00
Roman Vasin
89a659e738
Move krb header files from KerberosInit.h to KerberosInit.cpp
2022-06-15 20:08:16 +03:00
Roman Vasin
1c26424371
Change message in StorageKafka; Code style correction
2022-06-15 19:35:21 +03:00
Roman Vasin
dd5b0ee065
Add kerberosInit() function to call KeberosInit
2022-06-15 17:02:53 +03:00
Antonio Andelic
dded528d13
Merge pull request #36424 from PolyProgrammist/r1unfreeze
...
SYSTEM UNFREEZE query that deletes the whole backup
2022-06-14 08:44:45 +02:00
Nikita Mikhaylov
fc626b2897
Update SettingsProfilesCache.cpp
2022-06-14 00:16:28 +02:00
Vitaly Baranov
241b51c7d4
Add implicit grants with grant option too. ( #38017 )
2022-06-14 00:09:51 +02:00
Nicolae Vartolomei
9555153f95
Throw exception when xml user profile does not exist
...
Closes #26086
2022-06-13 13:29:08 +00:00
Roman Vasin
4c560584c7
Code cleanup in KerberosInit and kafka integration tests
2022-06-10 12:38:39 +03:00
Roman Vasin
d1d6d87432
Cleanup code in KerberosInit
2022-06-09 11:51:15 +03:00
Roman Vasin
3cfea6e76f
Cleanup code in KerberosInit, HDFSCommon and StorageKafka; update English and Russian documentation.
2022-06-08 17:57:45 +03:00
Vadim Volodin
637d293fbd
Add SYSTEM UNFREEZE query
2022-06-08 15:21:14 +03:00
Roman Vasin
2b76d0c6a9
Add new integration test for kerberized Kafka; remove old kinit code from HDFSCommon
2022-06-08 12:26:35 +03:00
Roman Vasin
a156a77890
Add KerberosInit into StorageKafka
2022-06-07 14:59:46 +03:00
Vitaly Baranov
d199478169
Merge pull request #37303 from ClickHouse/fix_trash
...
Try to fix some trash
2022-06-07 10:17:39 +02:00
Roman Vasin
323835f51d
Add renew/init logic in KerberosInit
2022-06-06 11:34:10 +03:00
Roman Vasin
8b5bf02927
Add support of cache commands in KerberosInit
2022-06-03 18:07:18 +03:00
Roman Vasin
82ce2d76c3
Add KerberosInit class; add kerberos_init console example; modify HDFSCommon.cpp
2022-06-03 12:06:31 +03:00
Alexander Tokmakov
cce9057eef
fix style check
2022-06-02 15:27:32 +02:00
Alexander Tokmakov
3d346c766a
better code
2022-06-01 16:49:26 +02:00
Maksim Kita
d1a4550b4f
Fix create or drop of sql user defined functions in readonly mode
2022-05-31 17:23:41 +02:00
Alexander Tokmakov
4e52f45695
Merge branch 'master' into fix_trash
2022-05-28 19:43:19 +02:00
Alexander Tokmakov
eb71dd4c78
Merge pull request #37547 from ClickHouse/followup_37398
...
Follow-up to #37398
2022-05-26 20:29:41 +03:00
Alexander Tokmakov
e8f33fb0d9
fix flaky tests
2022-05-26 14:17:05 +02:00
Alexander Tokmakov
779e6ea0b9
make it better, fix on cluster queries
2022-05-25 20:17:49 +02:00
Alexander Tokmakov
4618429201
fixes
2022-05-24 18:53:52 +02:00
Alexander Tokmakov
dbde63d275
fixes
2022-05-24 14:24:03 +02:00
Alexander Tokmakov
d0f998fb88
Merge branch 'master' into fix_trash
2022-05-23 21:25:56 +02:00
Vitaly Baranov
9ec3b35cf2
Use AccessExpireCache instead of ExpireCache.
2022-05-21 10:15:44 +02:00
Vitaly Baranov
58f4a86ec7
Rework notifications used in access management.
2022-05-21 10:15:39 +02:00
Alexander Tokmakov
c48410b574
fix trash in my code
2022-05-21 02:05:02 +02:00
Alexander Tokmakov
9772924d06
Merge branch 'master' into fix_trash
2022-05-18 17:27:54 +02:00
Alexander Tokmakov
dea39d8175
fix some trash
2022-05-17 18:22:52 +02:00
Vitaly Baranov
f34a5cdee2
Merge branch 'master' into ON_CLUSTER-grant
2022-05-17 13:21:20 +02:00
Kseniia Sumarokova
94683786dc
Merge branch 'master' into MeiliSearch
2022-05-16 22:42:09 +02:00
Azat Khuzhin
01e1c5345a
Add separate CLUSTER grant
...
In case you have different roles for the same user on multiple clusters,
ON CLUSTER query can help to overcome some limitations.
Consider the following example:
- cluster_with_data, dev_user (readonly=2)
- stage_cluster, dev_user (readonly=0)
So when you will execute the following query from stage_cluster, it will
be successfully executed, since ON CLUSTER queries has different system
profile:
DROP DATABASE default ON CLUSTER cluster_with_data
This is not 100% safe, but at least something.
Note, that right now only ON CLUSTER query it self is supported, but
separate clusters are not (i.e. GRANT CLUSTER some_cluster_name TO
default), since right now grants sticked to database+.
v2: on_cluster_queries_require_cluster_grant
v3: fix test and process flags as bit mask
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-05-16 13:57:45 +03:00
Robert Schulze
e3cfec5b09
Merge remote-tracking branch 'origin/master' into clangtidies
2022-05-16 10:12:50 +02:00