Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ast_fuzzer_* session settings

These settings are available in system.settings and are autogenerated from source.

ast_fuzzer_any_query

Experimental feature
Type
Bool
Default
0
Version history
VersionDefault valueComment
26.20New setting to allow fuzzing all query types, not just read-only.

When false (default), the server-side AST fuzzer (controlled by ast_fuzzer_runs) only fuzzes read-only queries (SELECT, EXPLAIN, SHOW, DESCRIBE, EXISTS). When true, all query types including DDL and INSERT are fuzzed.

ast_fuzzer_oracle

Experimental feature
Type
Bool
Default
0
Version history
VersionDefault valueComment
26.90New setting to enable correctness oracle checks in the server-side AST fuzzer.

When enabled together with ast_fuzzer_runs, applies a suite of correctness oracle checks to successfully executed fuzzed SELECT queries: TLP WHERE/DISTINCT/GROUP BY/HAVING/Aggregate, NoREC, DQP (toggling individual optimizer settings), Identity WHERE, and Subquery wrap. A mismatch throws an AST_FUZZER_ORACLE_MISMATCH exception.

ast_fuzzer_runs

Experimental feature
Type
Float
Default
0
Version history
VersionDefault valueComment
26.20New setting to enable server-side AST fuzzer.

Enables the server-side AST fuzzer that runs randomized queries after each normal query, discarding their results.

  • 0: disabled (default).
  • A value between 0 and 1 (exclusive): probability of running a single fuzzed query.
  • A value >= 1: the number of fuzzed queries to run per normal query.

The fuzzer accumulates AST fragments from all queries across all sessions, producing increasingly interesting mutations over time. Fuzzed queries that fail are silently discarded; results are never returned to the client.

Navigation