, ,

ClickHouse 25.11: A Deep Dive Into New Features, Performance Improvements, and Behavioral Changes

Sanjeev Kumar G avatar
ClickHouse 25.11: A Deep Dive Into New Features, Performance Improvements, and Behavioral Changes

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 AzureADFromIMDS authentication 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 HAVING and 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 Array functions 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.

Contact

Quantrail Data

References

https://clickhouse.com/docs/whats-new/changelog#2511