Commit Graph
78 Commits
Author SHA1 Message Date
Raúl MarínandClaude Opus 4.6 0cb2bc2dbc Preserve dictionary definitions in clickhouse format --obfuscate
Dictionary layout types (`complex_key_hashed`, `range_hashed`,
`ssd_cache`, etc.), source types, and source/layout parameter names
(`PORT`, `PASSWORD`, `DB`, `SIZE_IN_CELLS`, `BLOCK_SIZE`, `SHARDS`,
etc.) were being obfuscated, producing invalid SQL output.

Add `getAllRegisteredNames` to `DictionaryFactory` and
`DictionarySourceFactory`, register their names as known identifiers,
add dictionary parameter keywords to the obfuscator keyword list,
and remove the now-redundant hardcoded dictionary layout/source
keywords that are covered by the factory-based approach.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-11 14:26:02 +01:00
Raúl MarínandClaude Opus 4.6 751c3948de Preserve database engine names in clickhouse format --obfuscate
Add `DatabaseFactory::getAllRegisteredNames` to the known identifiers
set so database engine names like `Atomic`, `Memory`,
`MaterializedPostgreSQL`, etc. are not obfuscated.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-11 14:26:02 +01:00
Raúl MarínandClaude Opus 4.6 5de856ce49 Fix clickhouse format --obfuscate not preserving index types and codec names
Skip index type names (`minmax`, `set`, `bloom_filter`, `ngrambf_v1`,
`tokenbf_v1`, etc.) and compression codec names (`LZ4`, `ZSTD`, `Delta`,
etc.) were being obfuscated, producing invalid SQL output.

Add `getAllRegisteredNames` to `MergeTreeIndexFactory` and
`CompressionCodecFactory`, and register their names as known identifiers
in the obfuscator.

Closes #99248

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-11 14:26:02 +01:00
Alexey MilovidovandGitHub e8654c51eb Revert "Improve help output for ClickHouse applications" 2026-02-26 07:51:17 +01:00
Alexey MilovidovandClaude Opus 4.6 3be8cbbf33 Fix query obfuscator to produce parseable SQL in more cases
The query obfuscator (`clickhouse format --obfuscate`) was producing
unparseable SQL for many queries. This fixes several categories of issues:

1. Add missing keywords for SYSTEM commands (`FLUSH`, `LOGS`, `DNS`,
   `CACHE`, `RELOAD`, etc.), dictionary definitions (`FLAT`, `HASHED`,
   `CLICKHOUSE`, etc.), special SQL constructs (`EXTRACT`, `TRIM`,
   `DECIMAL`), multi-word data types (`NATIONAL`, `NCHAR`, `BINARY`,
   `LARGE`, `OBJECT`), and substitution syntax (`Identifier`).

2. Fix hex/binary number prefix corruption: `0x1234` was becoming
   `0p1234` because the `x` was treated as alphabetical and obfuscated.
   Now preserves `0x`/`0b` prefixes and handles hex float literals
   like `0xD.5p-6`.

3. Fix hex/binary string literal content corruption: `x'ABCD'` was
   producing invalid hex like `x'WXYZ'`. Now replaces hex digits with
   random hex digits and binary digits with random binary digits.

4. Make known identifier lookup case-insensitive: `DECIMAL` and
   `decimal` are now recognized as known types like `Decimal`.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 19:33:01 +00: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 <[email protected]>
2026-02-05 07:12:44 +01:00
Konstantin Bogdanov 48d2f3b145 Fix readability-container-contains 2025-11-04 23:40:04 +01:00
Jan Rada b220ec9f24 Add docs and change help message 2025-10-03 19:53:08 +02:00
Jan Rada 809f2fe0e6 Fix type 2025-10-03 15:01:55 +02:00
Jan Rada 63343b4bdb Add semicolons_inline option to clickhouse format 2025-10-02 14:10:16 +02:00
Pablo Marcos 63c403b946 Merge branch 'master' into fix-clickhouse-format-show-sercrets-cmdline-arg 2025-08-19 15:01:15 +00:00
Rishabh Bhardwaj f2ab452cab Align command-line options for clickhouse-format with clickhouse-client 2025-07-31 17:56:53 +02:00
Alexey MilovidovandGitHub dffd84400c Merge branch 'master' into fix-clickhouse-format-show-sercrets-cmdline-arg 2025-07-15 15:51:28 +02:00
Alexey Milovidov 3b43b65f70 Format independently 2025-06-30 04:52:52 +02:00
Alexey Milovidov 37155f4791 Decouple syntax highlighting from AST 2025-06-30 04:04:39 +02:00
Nikolai Ryzhov e6b28fad40 [ClickHouse Format] Replacing uppdercase to lowercase 2025-06-09 01:58:04 +03:00
Nikolai Ryzhov 94bfb2e5b3 [ClickHouse Format] Fixing show_secrets 2025-06-09 01:56:43 +03:00
Nikolai Ryzhov 349ad214e6 [ClickHouse Format][Secrets][WIP] Hide secrets support adding 2025-06-09 00:25:12 +03:00
Azat Khuzhin 98ee9e4506 Move skipSpacesAndComments() into client helpers 2025-05-21 17:34:40 +02:00
János Benjamin Antal c2038a812d Remove format_alter_commands_with_parentheses server setting
The setting was introduced and set false by default in 24.2. It was enabled by default in 25.2. As there are no LTS versions that doesn't support the new format, we can remove the setting.
2025-05-08 13:26:11 +00:00
Robert Schulze f5217aeebe Remove legacy MongoDB integration 2025-03-19 09:19:06 +00:00
Nikita Mikhailov 450c8ba2a8 Remove formatAST completely 2025-03-14 20:04:45 +01:00
Raúl Marín 945d41e7e6 Hide boost::geometry 2025-02-24 18:38:45 +01:00
Raúl Marín 8753073760 Add format_alter_operations_with_parentheses to clickhouse-format 2025-01-30 21:11:32 +01:00
Robert Schulze 9b2fd5850d Revert "get rid of poco mongodb integration implementation"
This reverts commit fcaa058c92.
2024-12-16 13:04:53 +00:00
Vitaly Baranov d0a11071d4 Remove ostr from structure IAST::FormatSettings. 2024-12-03 01:01:24 +01:00
Kirill Nikiforov fcaa058c92 get rid of poco mongodb integration implementation 2024-11-16 00:28:54 +04:00
vdimir 4c9c9015f8 Revert "Revert "Merge pull request #63279 from allmazz/mongodb_refactoring""
This reverts commit 2ae9c9ac16.
2024-09-23 07:06:58 +00:00
Alexey Milovidov 2ae9c9ac16 Revert "Merge pull request #63279 from allmazz/mongodb_refactoring"
This reverts commit 14cb02a18c, reversing
changes made to a940a9ebbc.
2024-09-22 22:28:24 +02:00
Kirill Nikiforov 8173c4fcff Merge remote-tracking branch 'origin' into mongodb_refactoring 2024-09-19 17:00:00 +04:00
Raúl Marín f3df7bd171 Hide Settings implementation 2024-09-18 15:48:02 +02:00
Kirill Nikiforov 40462bc716 Merge remote-tracking branch 'origin' into mongodb_refactoring 2024-08-23 22:10:06 +04:00
Alexey Milovidov 60dd7e962a Fix tests 2024-08-18 05:56:27 +02:00
Alexey Milovidov 4b68ba23c0 Pretty print tuples in CREATE TABLE statements 2024-08-17 03:44:18 +02:00
avogar 11d56a08cd Fix clickhouse-format 2024-07-12 20:16:47 +00:00
Kirill Nikiforov edb3d0ab42 fix ssl, fix after master merge 2024-06-24 00:45:15 +03:00
Robert Schulze 2909e6451b Move StringUtils.h/cpp back to Common/ 2024-05-19 09:39:36 +00:00
Robert Schulze de2a0be025 Don't access static members through instance
- clang-tidy rightfully complains (-readability-static-accessed-through-instance)
- not going to enable the warning for now to avoid breaking the build
2024-04-03 18:50:33 +00:00
Raúl Marín de855ca917 Reduce header dependencies 2024-03-19 17:04:29 +01:00
Alexey Milovidov 01136bbc3b Limit backtracking in parser 2024-03-17 19:54:45 +01:00
Robert Schulze 802bae9661 GCC --> clang pragmas 2024-03-11 12:55:56 +00:00
vdimirandGitHub b4bfd01322 Merge pull request #58246 from ClickHouse/vdimir/util_format_values
clickhouse-format improvements: support VALUES, comments, max_line_length
2024-01-09 11:24:42 +01:00
Bharat NallanandGitHub ee37f551a2 independent registration of interpreters (#58443)
* make interpreter factory an instance

* add registerInterpreter

* register interpreters individually

* try wire everything up

* fix style

* fix test
2024-01-08 22:33:48 -08:00
vdimir e68fc2df7a Remove spaces after insert in clickhouse-format 2024-01-08 12:16:53 +00:00
vdimir cccc24c2fd upd 2024-01-08 12:01:34 +00:00
vdimir 621d17b16f Better clickhouse-format: support VALUES, comments 2024-01-08 12:01:33 +00:00
Bharat Nallan Chakravarthy 906745feaa validation and left over fixes 2023-12-29 20:06:07 -08:00
Alexey Milovidov dc4b9a1013 Obfuscator: keep settings and timezones 2023-12-23 04:55:55 +01:00
Alexey Milovidov 264bff8c9f Fix a comment 2023-08-05 01:44:16 +02:00
Sema Checherinda 1596b09dc2 add missing finalize calls 2023-06-28 10:51:54 +02:00