Commit Graph
102 Commits
Author SHA1 Message Date
Alexey Milovidov f644748a2d Reject a NaN frequency_desaturate and keep the obfuscator's output untouched on a failing pass
NaN compares false with both bounds of the documented [0, 1] range, so the shared
validator silently accepted `--frequency-desaturate nan` as a no-op; reject non-finite
values explicitly (the SQL surface was already covered by the generic float setting
parsing, which requires a finite value).

The empty-input `--limit > 0` guard fired only after the output pipeline was started
and finished, so a format with non-trivial framing (`JSON`, `XML`, `Pretty`, ...) had
already emitted a syntactically valid empty result before the exception. Start the
output only once a pass has produced a row, and throw before finalizing it, so a
failing run leaves stdout untouched.
2026-08-29 06:43:19 +00:00
Alexey MilovidovandClaude Fable 5 019244e0d4 Address review: share parameter validation with the CLI obfuscator and fail closed on empty passes
Extract the `obfuscate` table function's parameter checks into a shared
`MarkovModelParameters::validate` in `src/Common/Obfuscator/Models.h` and call it
from both `ObfuscateStep` and `mainEntryClickHouseObfuscator`, so the standalone
`clickhouse obfuscator` tool now rejects `--order 0` (previously a logical error),
absurdly large `--order` values, and `--frequency-desaturate` outside [0, 1] with
the same `BAD_ARGUMENTS` contract as the SQL surface.

Also make the CLI generation loop fail closed: when an explicit --limit is given
and a full generation pass over the input produces no rows (e.g. empty input),
throw instead of rebuilding the input pipeline forever.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-11 14:30:32 +00:00
Alexey Milovidov f7a9717f1c Merge remote-tracking branch 'origin/master' into obfuscate-function-work
# Conflicts:
#	programs/obfuscator/Obfuscator.cpp
2026-06-20 01:15:40 +00:00
Michael Stetsyuk b219eaf99e Join threads from global thread pool before exiting from main 2026-06-11 21:45:31 +00:00
Alexey MilovidovandClaude Opus 4.8 3be7255032 Fix abort in clickhouse-obfuscator after refactoring into shared Models.h
The refactoring that moved the obfuscator implementation into the shared
`src/Common/Obfuscator/Models.h` dropped the `file_out.finalize()` call at the
end of `mainEntryClickHouseObfuscator`. Without finalizing the output
`WriteBufferFromFileDescriptor`, its destructor aborts in debug and sanitizer
builds, which made `00092_obfuscator`, `00096_obfuscator_save_load`,
`00175_obfuscator_schema_inference` and `01472_obfuscator_uuid` fail with
`Aborted`, and the resulting core dump was reported as `Server died` in the
targeted stateless runs.

Restore the explicit `file_out.finalize()` after the generation loop.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 18:42:54 +00:00
Alexey Milovidov 8e9a972588 Merge remote-tracking branch 'origin/master' into obfuscate-function
# Conflicts:
#	programs/obfuscator/Obfuscator.cpp
#	src/Parsers/ExpressionListParsers.cpp
2026-06-03 05:16:33 +00:00
Alexey Milovidov c6183beed9 Merge pull request #100399 from ClickHouse/clang-tidy-init-variables
Enable clang-tidy check for uninitialized variables
2026-05-31 21:56:29 -07:00
Alexey Milovidov 59da8a8b8a Merge remote-tracking branch 'origin/master' into clang-tidy-init-variables
# Conflicts:
#	src/Processors/QueryPlan/Optimizations/Optimizations.h
#	src/Storages/MaterializedView/RefreshTask.cpp
2026-05-08 03:15:33 +00:00
Alexey Milovidov ac598f3a7e Merge remote-tracking branch 'origin/master' into fix-compiler-warnings
# Conflicts:
#	programs/main.cpp
2026-05-06 03:18:15 +00:00
Nikolay Degterinsky d377b33b78 Fixes 2026-04-09 18:41:27 +00:00
Alexey MilovidovandClaude Opus 4.6 d5f952b04a Enable -Wmissing-prototypes compiler warning
Add `static` to file-local functions and forward declarations
for cross-TU functions to satisfy `-Wmissing-prototypes`.

This ensures all functions have visible prototypes before their
definitions, improving code quality and catching accidental
linkage issues.

Reference: https://github.com/ClickHouse/ClickHouse/issues/76944

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 20:11:07 +00:00
Alexey MilovidovandClaude Opus 4.6 f8e56caa44 Fix clang-tidy cppcoreguidelines-init-variables and hicpp-member-init after merge with master
New code from master introduced uninitialized variables and struct
members that trigger the newly enabled clang-tidy checks. Fix all 368
errors by adding default initializers (`{}`, `= 0`, `= nullptr`) to
local variables and struct/class member declarations.

https://s3.amazonaws.com/clickhouse-test-reports/json.html?PR=100399&sha=78a76ff56fc5747009e8c34795b8a3cb2432eeae&name_0=PR

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 11:25:35 +00:00
Alexey Milovidov 85164c93d4 Revert "Revert "Improve help output for ClickHouse applications"" 2026-02-27 00:49:00 +01:00
Alexey Milovidov e8654c51eb Revert "Improve help output for ClickHouse applications" 2026-02-26 07:51:17 +01:00
Raúl MarínandClaude Opus 4.6 9aa8e4ed27 Move ErrnoException from Exception.h to its own header
Extract `ErrnoException` into `Common/ErrnoException.h` to reduce the
include footprint of `Exception.h`. This removes `<base/errnoToString.h>`
and `<cerrno>` from `Exception.h`, which is included by ~95% of all
translation units.

All files referencing `ErrnoException` now include the new header
directly. Files that used `errnoToString` without `ErrnoException`
got an explicit `<base/errnoToString.h>` include.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:47:23 +01:00
Alexey MilovidovandClaude Opus 4.5 62ccfbd3aa Improve help output for ClickHouse applications
This commit improves the help output for all ClickHouse applications:

- Add `clickhouse help` command that lists all available subcommands
- Return exit code 0 for all help messages (previously some returned 1)
- Output help messages to stdout instead of stderr
- Use "clickhouse <cmd>" format instead of argv[0] in help messages
- Add dynamic `app_name` detection for `clickhouse client` and `clickhouse local`
  to show correct invocation name based on how the binary was called
- Add `--no-sudo` option for `clickhouse start` and `clickhouse restart`
  for environments without sudo (e.g., Docker containers)
- Add detailed help headers and footers for client and local with usage examples

Closes #58244

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 07:12:44 +01:00
Antonio Andelic dc3d47d689 Enable implicit-int-float-conversion check 2026-01-20 09:35:57 +01:00
Antonio Andelic 340be5a496 Enable implicit-int-conversion check 2026-01-07 16:30:57 +01:00
Antonio Andelic 5940b268ba Merge branch 'master' into replace-stringref-stringview 2025-11-17 08:51:12 +01:00
Azat Khuzhin 9cb6ad6d2e Forward declaration of AggregatedZooKeeperLog in Context.h 2025-11-14 14:54:31 +01:00
Konstantin Bogdanov 48d2f3b145 Fix readability-container-contains 2025-11-04 23:40:04 +01:00
Antonio Andelic 3ebf86dce9 Fix builds 2025-09-10 09:21:18 +02:00
Antonio Andelic df2da99d49 Fix std::string_view usage 2025-09-08 16:40:19 +02:00
Antonio Andelic 157321ad3d Replace StringRef with std::string_view 2025-09-08 14:26:35 +02:00
Raúl Marín d87ee15b4b Extend the use of SharedHeader across the codebase 2025-07-10 00:08:25 +02:00
Raúl Marín df9ebc8c45 Make a few example binaries smaller 2025-03-14 18:22:03 +01:00
Raúl Marín 5eac8346b9 Remove deps on Port.h 2025-02-12 17:15:21 +01:00
Raúl Marín 6294bb2c41 Remove dependencies on CompressionFactory.h 2025-02-04 22:10:01 +01:00
Konstantin Bogdanov b2c81981fb Use clang-19 2024-11-20 23:08:47 +01:00
Sema Checherinda f1ab911910 cancel or finalize write buffer 2024-11-11 11:37:12 +01:00
Alexey Milovidov c8104cb2ee Correct and unify exit codes 2024-11-07 21:31:07 +01:00
Konstantin Bogdanov 67c1e89d90 Apply linter changes 2024-10-06 12:29:20 +02:00
yariks5s a751719a33 fixes due to review 2024-07-10 17:44:06 +00:00
yariks5s 942f7d7532 fixes after review 2024-07-05 12:44:31 +00:00
Robert Schulze 2909e6451b Move StringUtils.h/cpp back to Common/ 2024-05-19 09:39:36 +00:00
Alexey Milovidov 0d14a2c67e Useless changes 2024-05-09 03:11:02 +02:00
Robert Schulze 81b2a1f621 Fix build 2024-03-11 15:34:02 +00:00
Robert Schulze 802bae9661 GCC --> clang pragmas 2024-03-11 12:55:56 +00:00
avogar 617cc514b7 Try to detect file format automatically during schema inference if it's unknown 2024-01-23 18:59:39 +00:00
Raúl Marín b269f87f4c Better text_log with ErrnoException 2023-12-15 19:27:56 +01:00
Robert Schulze 8896134531 Cleanup IDataType convenience functions 2023-11-06 13:25:32 +00:00
avogar 7f9e81d504 Clean up 2023-08-22 12:55:00 +00:00
kothiga f33c585bc5 Addressing feedback. 2023-08-18 13:50:31 -07:00
kothiga b905703909 Correct to-from pairing for transformEndianness. 2023-08-18 11:25:08 -07:00
Austin Kothig 6b42975d33 Change BE-UUID to work the same as LE-UUID. Included high and low getters to provide cleaner code when accessing undertype. 2023-08-18 08:19:46 -07:00
ltrk2 967be3e13c Correct a line commented out by mistake 2023-07-19 10:01:58 -07:00
ltrk2 51e2c58a53 Implement endianness-independent SipHash and MergeTree checksum serialization 2023-07-19 10:01:55 -07:00
zvonand 8338d54c34 Merge branch 'master' of github.com:ClickHouse/ClickHouse into zvonand-implicit-tz 2023-05-05 15:50:26 +02:00
Alexey Milovidov 98ae9be734 Revert "Added tests for ClickHouse apps help and fixed help issues" 2023-04-21 01:54:34 +03:00
Andrey Zvonov 984e8fde41 Merge branch 'master' into zvonand-implicit-tz 2023-04-20 23:13:17 +02:00