,

ClickHouse 26.4 Release: Features, Performance Improvements, and Breaking Changes

Mohamed Hussain S avatar
ClickHouse 26.4 Release: Features, Performance Improvements, and Breaking Changes

ClickHouse 26.4 introduces improvements across query execution, indexing, SQL functionality, observability, and system stability.

This release includes:

  • Changes to query semantics and type handling
  • New SQL features and functions
  • Enhancements to JSON and text indexing
  • Improvements in join execution and data pruning
  • Expanded observability and system metrics
  • A large number of bug fixes and correctness improvements

This article provides a structured overview of the most relevant changes for production environments.


Strict Semantics for Bool in IN Operator

The IN operator now uses exact value semantics for the Bool type.

Previously, non-boolean numeric values could be implicitly treated as true. This behavior is no longer allowed.

Example:

SELECT CAST(1, 'Bool') IN (256)

Now returns:

0

Decimal Precision Enforcement in Composite Types

Lossy Decimal conversions inside composite types (Array, Tuple, Map) are now rejected.

Previously, precision checks were only applied to scalar values. This change ensures consistent behavior across all data structures.

H3 Library Upgrade

The H3 library has been upgraded to version 4.

  • Improves precision for length, area, and related calculations
  • Results may differ from previous versions

WITH Clause Identifier Restriction

Using SELECT as a bare identifier in a WITH clause is no longer allowed.

Changes to HTTP Limits

Default values for HTTP-related settings have been reduced:

  • http_max_fields
  • http_max_field_name_size

New settings introduced:

  • http_max_request_header_size
  • http_headers_read_timeout

These changes reduce memory usage during HTTP request handling.

Merge Table Virtual Columns Handling

Merge table behavior has changed:

  • _table and _database columns are read from storage if present
  • Otherwise, they are populated after the read step

Automatic Spill for Hash Joins

Hash joins and parallel hash joins now support automatic spilling.

  • When memory limits are exceeded, execution switches to grace hash join
  • Controlled by max_bytes_before_external_join

Arrow Flight SQL Support

ClickHouse now supports Arrow Flight SQL for query execution and data exchange.

Incremental Reads for Paimon Tables

Paimon table engines now support incremental reads with snapshot tracking.

Includes:

  • Snapshot-based progress tracking
  • Targeted snapshot reads

JSON and Map Support in Dictionaries

Dictionaries now support complex types:

  • Map
  • JSON
  • Nullable JSON types

JSON Indexing Enhancements

Skip indexes for JSON columns are now supported using JSONAllPaths.

Supported index types include:

  • bloom_filter
  • tokenbf_v1
  • ngrambf_v1
  • text (inverted index)

Text Index Availability

The text index is now generally available and remains enabled regardless of compatibility settings.

New functions introduced include:

  • arrayAutocorrelation – computes normalized autocorrelation for arrays
  • obfuscateQuery – masks sensitive parts of queries
  • highlight – wraps matched text with configurable tags
  • JSONAllValues – extracts all JSON values as an array
  • arrayTranspose – transposes a 2D array

Query Language Enhancements

  • Support for NATURAL JOIN
  • Support for SQL-standard VALUES clause in FROM
  • Support for SQL-standard interval literals
  • Additional units supported in EXTRACT
  • SET TIME ZONE alias introduced

Parameterized Queries in Web UI

The Web UI now supports parameterized queries using typed placeholders.

Query Quotas by Normalized Hash

Quotas can now be applied per normalized query hash.

This allows limiting execution frequency of identical query patterns.

Insert Block Size Controls

New behavior for insert block sizing is available under use_strict_insert_block_limits.

Projection Index: commit_order

A new projection index organizes data based on insertion order.

Replication Optimization Settings

New settings allow replicas to skip fetching newly inserted parts under certain conditions:

  • replicated_fetches_min_part_level
  • replicated_fetches_min_part_level_timeout_seconds

Data Part Pruning Using Min/Max Statistics

ClickHouse can now prune entire data parts using min/max statistics during query execution.

Join Performance Improvements

Enhancements include:

  • Optimizations in hash join and concurrent hash join
  • Direct-index hash table for small integer ranges
  • Transitive predicate inference for joins

LIKE Query Optimization

LIKE queries can now utilize text indexes for improved performance.

Vectorized Function Improvements

Vectorized math functions (exp, log, tanh, etc.) are now accelerated on:

  • AArch64
  • FreeBSD
  • Darwin

Query Execution Optimizations

  • LIMIT pushdown into UNION ALL
  • Improved handling of parallel replicas
  • Reduced overhead for short queries

Insert Performance Improvements

Insert performance has been improved by optimizing deduplication and batching behavior.

Sorting and String Processing Improvements

  • JIT compilation for string comparisons in ORDER BY
  • Faster float-to-string and integer-to-string conversions

LowCardinality and Dictionary Optimizations

  • Improved performance for discontinuous queries
  • Reduced locking overhead for cache dictionaries

New Metrics and Histograms

New histogram metrics introduced for:

  • S3 read requests
  • Network buffer usage

Metrics are exposed through system tables and Prometheus endpoints.

Keeper Enhancements

New capabilities include:

  • Watch support for client operations
  • Recursive listing of nodes
  • Improved debugging tools

Memory and Resource Monitoring

New metrics provide better visibility into:

  • TCP buffer usage
  • Memory allocation behavior

System Tables and Logging

  • New histogram metric logging table
  • Improved query plan visualization
  • Enhanced EXPLAIN output

ClickHouse introduces experimental AI functions:

  • aiGenerate
  • aiClassify
  • aiExtract
  • aiTranslate

These functions allow invoking external LLM APIs from SQL queries.

Additional improvements include:

  • Better EXPLAIN output with more detailed execution information
  • Support for multiple authentication methods in configuration
  • Improved Iceberg and Spark compatibility
  • Reduced memory footprint of internal structures
  • Enhanced handling of nullable and dynamic types

ClickHouse 26.4 includes a large number of bug fixes addressing:

  • Query correctness issues
  • Race conditions
  • Distributed query inconsistencies
  • Memory safety issues
  • Index and pruning edge cases

These fixes improve reliability and correctness across a wide range of workloads.

ClickHouse 26.4 delivers improvements in query execution, indexing, SQL functionality, and system observability, along with numerous stability fixes.

For production deployments, this release provides:

  • More consistent query behavior
  • Improved performance in joins and data pruning
  • Expanded indexing and JSON capabilities
  • Better observability and operational control

Teams should review breaking changes and validate workloads before upgrading.

Official ClickHouse 26.4 Changelog