Skip to main content
These settings are available in system.settings and are autogenerated from source.

analyzer_compatibility_allow_compound_identifiers_in_unflatten_nested

Allow to add compound identifiers to nested. This is a compatibility setting because it changes the query result. When disabled, SELECT a.b.c FROM table ARRAY JOIN a does not work, and SELECT a FROM table does not include a.b.c column into Nested a result.

analyzer_compatibility_allow_non_aggregate_in_having

When enabled, the analyzer mimics the legacy behavior of moving non-aggregate AND-conjuncts from HAVING to WHERE instead of raising NOT_AN_AGGREGATE. The standard-compliant rejection is the default; this is a migration aid for queries that were silently accepted by the old analyzer (enable_analyzer = 0). Conjuncts containing aggregate, grouping, or non-deterministic functions stay in HAVING. If any conjunct contains a window function or a stateful function (for example rowNumberInBlock), the rewrite is disabled for the whole HAVING, matching the legacy PredicateExpressionsOptimizer behavior. The setting is also ignored when GROUP BY uses WITH CUBE, WITH ROLLUP, WITH TOTALS, or GROUPING SETS.

analyzer_compatibility_join_using_top_level_identifier

Force to resolve identifier in JOIN USING from projection (for example, in SELECT a + 1 AS b FROM t1 JOIN t2 USING (b) join will be performed by t1.a + 1 = t2.b, rather then t1.b = t2.b).

analyzer_compatibility_prefer_alias_over_subcolumn

When a multi-part identifier like b.id could refer to either the column id of a table aliased b or to a Tuple subcolumn b.id of some other column, prefer the alias-prefix interpretation (column id of b). By default the analyzer prefers the subcolumn. Enable to match the old analyzer’s resolution.
Last modified on July 23, 2026