ClickHouse 25.11 is a substantial release that focuses on expanding SQL capabilities, stabilizing object storage behavior, and improving overall query execution performance. This article consolidates the release notes into a structured and readable analysis, highlighting the most important changes for developers, operators, and teams running ClickHouse in production.
1. New Features
1.1 SQL and Query Language Enhancements
Support for HAVING Without GROUP BY
ClickHouse now supports queries that use HAVING even when no GROUP BY clause is present. This aligns more closely with ANSI SQL semantics and improves compatibility with PostgreSQL workloads.
Example:
SELECT sum(x) FROM t HAVING sum(x) > 0;
The feature can be enabled by setting allow_having_without_group_by = 1 or switching the SQL dialect to PostgreSQL.
Aggregations on Map Types
Aggregates such as sum, min, max, and avg now accept Map arguments directly. This enhancement is valuable for workloads using semi-structured schemas, allowing more natural aggregation of dynamic key-value data.
New Unnesting Functions
blockVerticalUnnest() and blockHorizontalUnnest() have been promoted to user-facing functionality. These functions simplify reshaping and normalizing nested or block-structured data.
Vector Normalization LUT Generator
The new generate_vector4_norm_lut64() function improves the performance of vector normalization routines. It is particularly useful for vector search and machine learning pipelines that rely on repeated normalization operations.
1.2 Storage Engine and System Features
Replicated Database UUID Configuration in ZooKeeper
ClickHouse now supports configuring database UUIDs in ZooKeeper for replicated databases. This improves reliability, avoids duplication issues, and simplifies cluster-wide metadata handling in HA environments.
sequence_id Support in Kafka and MySQL Engines
The Kafka and MySQL table engines now support sequence_id fields for improved ordering guarantees during ingestion. This is especially relevant for change-data-capture (CDC) pipelines and event-streaming architectures where ordering matters.
S3 Authentication and Parameter Access Enhancements
The release includes several S3-related improvements:
- New
AzureADFromIMDSauthentication method for Azure-based deployments. - Enhanced parameter-level access control via
grantParameterSelectAccess. - Internal improvements to multi-part uploads.
Object Storage Layout and Metadata Improvements
A significant number of fixes target object storage stability:
- Corrected multi-volume metadata handling.
- Improved granularity tracking for merges.
- Better support for hybrid storage topologies, including disaggregated clusters.
These updates reduce the risk of metadata inconsistencies and improve reliability in S3-based storage deployments.
1.3 SQL Dialects and Compatibility
PostgreSQL Dialect Improvements
The PostgreSQL dialect received several correctness and compatibility adjustments:
- Support for additional operators.
- More accurate handling of
HAVINGand join conditions. - Improved string concatenation logic.
These updates make migration of PostgreSQL workloads to ClickHouse more seamless.
MySQL Dialect Enhancements
The MySQL dialect includes type handling corrections, improvements to JOIN USING, and clearer nullability semantics. These changes help ClickHouse behave more consistently with MySQL expectations.
1.4 Access Control and Security Enhancements
Blocking S3 Requests with Null Credentials
ClickHouse now prevents requests to S3 when credentials are null, helping catch configuration errors early.
Improvements to GRANT Logic
Role inheritance and privilege evaluation logic have been refined. The system now handles role visibility and selection more deterministically, which enhances security posture in multi-tenant environments.
1.5 Functions, Types, and Format Improvements
Several subtle but meaningful improvements were introduced:
- Stabilized behavior of
Arrayfunctions across edge cases. - Correct handling of
Nullable(Nothing)in complex queries. - Enhancements to ZSTD and delta-compression codecs.
These changes improve correctness and performance of analytical workloads involving nested or compressed data.
2. Performance Improvements
2.1 Query Execution and Planning
ClickHouse 25.11 introduces several performance-oriented improvements:
- More efficient statistics collection.
- Better elimination of redundant sorts during query planning.
- Cleaner distribution of join pipelines.
- Optimizations around constant-expression folding.
These enhancements reduce CPU overhead and improve execution times, particularly for complex analytical queries.
2.2 Storage Engine Performance
Storage-related optimizations include:
- Faster merge operations due to improved granularity and mutation tracking.
- More efficient spilling for memory-bound queries.
- Enhancements to reading from object storage, including more predictable parallelization.
These changes collectively reduce latency and improve stability of long-running workloads.
2.3 Vector Search Enhancements
Vector normalization and quantization routines have been refined. The improvements include:
- Faster normalization using LUT-based operations.
- More accurate approximate nearest neighbor results due to updated quantization logic.
Workloads involving embeddings or vector search indexing will see more predictable performance.
2.4 Networking and IO Efficiency
The release includes improvements to network-bound workloads:
- Faster HTTP request parsing.
- More efficient asynchronous reads from remote object storage.
These updates help in microservice, distributed analytics, and cloud-native deployments.
3. Behavioral and Breaking Changes
Although the release does not explicitly flag major breaking changes, several areas require attention during upgrades.
3.1 Changes in HAVING and Grouping Semantics
The new support for HAVING without GROUP BY may alter the behavior of queries that relied on earlier limitations. Systems that depend on strict semantic enforcement should review affected queries.
3.2 Object Storage Metadata Changes
Clusters using hybrid or S3-backed storage may require metadata adjustments. The new metadata logic is stricter and may expose previously unnoticed inconsistencies.
3.3 SQL Dialect Behavioral Differences
Dialect-specific changes, especially for PostgreSQL and MySQL, may affect edge cases in:
- Join rewriting.
- String concatenation semantics.
- Nullability behavior.
Teams running large SQL-migration projects should revalidate key workloads.
3.4 Access Control Semantics
Tighter privilege evaluation can result in different behavior for users or roles that previously relied on implicit privileges. Review role definitions after the upgrade.
Conclusion
ClickHouse 25.11 is a comprehensive release that extends SQL compatibility, strengthens object storage reliability, and improves execution performance across multiple dimensions. Although it does not introduce widely disruptive breaking changes, several behavioral adjustments warrant closer review – particularly in SQL dialect handling and object storage metadata behavior.
For organizations adopting ClickHouse at scale, this release represents a significant step toward greater stability, clearer SQL semantics, and better operational performance.
Exploring ClickHouse for Your Analytics?
At Quantrail, we’ve spent time understanding the challenges teams face with real-time analytics. That’s why we provide hands-on support around ClickHouse – from smooth deployments and guided migrations to ongoing service agreements that keep systems reliable.
At Quantrail, we see these updates in action when helping teams adopt ClickHouse for demanding analytics pipelines. For example, we recently shared how a customer achieved bare-metal level performance with ClickHouse in production – you can read the full story here Success Story: Quantrail Baremetal
Whether you’re moving from another database or simply want to get the best out of ClickHouse, our goal is to make the process straightforward and sustainable. If this resonates, we’d be happy to share how others are approaching it and explore what could work for you.
