,

ClickHouse 26.2 Release: Features, Changes & Upgrade Guide

Mohamed Hussain S avatar
ClickHouse 26.2 Release: Features, Changes & Upgrade Guide

The ClickHouse 26.2 release update, published on February 26, 2026, is one of the most substantial releases in the project’s history. Officially positioned as the Winter Release, it introduces:

  • 25 new features
  • 183 bug fixes (a record for a single release)
  • Extensive query optimizer improvements
  • Major performance gains across joins, JSON processing, and indexing
  • Security and observability enhancements

This release is particularly significant for production users due to unified deduplication defaults, scheduler changes, and performance optimizations that materially improve real-world workloads.

Below is a structured breakdown based strictly on the official 26.2 changelog.

Unified Deduplication for All Inserts

The most impactful change in the ClickHouse 26.2 release update:

Deduplication is now enabled by default for all inserts.

Previously:

  • Sync inserts → deduplication ON
  • Async inserts → deduplication OFF
  • Materialized views → deduplication OFF

Now:

  • Deduplication now applies uniformly to both synchronous and asynchronous inserts.
  • Dependent materialized views also deduplicate by default.

To preserve old behavior:

deduplicate_insert='backward_compatible_choice'
deduplicate_blocks_in_dependent_materialized_views

Any ingestion-heavy pipeline relying on previous async semantics should validate behavior before upgrading.

Row Policy & FINAL Behavior Change

apply_row_policy_after_final is now enabled by default.

This changes how ROW POLICY interacts with FINAL and may alter query results in secured environments. Security-sensitive deployments should test carefully.

Variant Type Behavior Tightening

Applying incompatible functions to Variant subtypes now throws an exception instead of returning silent NULL.

Queries relying on silent fallback may now fail.

S3 Table Schema Validation

Creating S3 tables with explicitly defined columns now validates those column names against the remote file schema.

Previously mismatches were allowed. They now fail at creation time.

PostgreSQL DATE Mapping Update

PostgreSQL DATE is now inferred as Date32 instead of Date.

This prevents overflow and supports round-trip inserts back to PostgreSQL.

Subqueries Forbidden in ORDER BY

Subqueries are no longer allowed in ORDER BY and table key expressions.

ClickStack Embedded UI

ClickStack, an embedded observability UI available in ClickHouse 26.2 and later, can be accessed directly from the built-in HTTP interface.

It allows:

  • Querying logs
  • Filtering records
  • Visual data exploration
  • Debugging workflows
  • No external installation required.

TOTP Authentication Support

ClickHouse now supports Time-Based One-Time Passwords (TOTP).

This adds a second authentication factor compatible with authenticator apps, significantly strengthening security posture.

Lazy Loading of Tables

New database setting:

lazy_load_tables

Tables are materialized on first access instead of at server startup.

Benefits:

  • Faster startup time
  • Lower initial memory usage
  • Improved scalability for large catalogs

Google BigLake Catalog Integration (Beta)

ClickHouse now supports querying Google BigLake catalogs.

Queries are executed by ClickHouse reading Parquet files and metadata rather than fully delegating to BigQuery.

This expands data lake interoperability.

OPTIMIZE … DRY RUN PARTS

New query capability:

OPTIMIZE <table> DRY RUN PARTS <part names>

Enables merge simulation without committing results.

Useful for:

  • Merge correctness testing
  • Benchmarking
  • Debugging merge behavior

Automatic MinMax Indexing for Temporal Columns

New setting:

add_minmax_index_for_temporal_columns

Automatically creates minmax indexes for:

  • Date
  • Date32
  • DateTime
  • DateTime64
  • Time / Time64

This simplifies index management and improves temporal query performance.

Text Index is GA

The text index is now generally available.

It provides high-performance full-text search with tokenizers and preprocessors.

QBit Data Type is GA

The QBit data type for quantized bit-packed vector storage is now generally available and no longer requires enabling an experimental setting.

Combined with:

  • Distributed vector search across replicas
  • Runtime-tunable precision

ClickHouse can now support vector indexes larger than a single VM’s memory footprint.

This is a major milestone for approximate nearest neighbour workloads.

This release contains the most extensive performance optimizations to date.

Deterministic Expressions in Primary Key

Any deterministic expression in ORDER BY can now be used for data skipping.

Example:

ORDER BY cityHash64(user_id)

ClickHouse can:

  • Apply the expression to constants
  • Use it for index pruning
  • Optimize =, IN, has
  • Optimize negated forms if injective

Join Performance Improvements

  • Parallel processing of unmatched rows
  • RIGHT and FULL JOIN improvements
  • Up to 3× speed increases in some join workloads
  • enable_join_runtime_filters enabled by default

JSON Processing Optimizations

Optimized JSON parsing for JSON data type.

Reported improvements:

  • Up to 2.7× faster parsing performance

uniq Optimization

Improved batching and low-level optimizations.

Performance gains:

  • ~20–22% faster for certain workloads

MinMax Index Calculation on Insert

Optimized index computation during INSERT.

Performance gains:

  • ~17% faster index building

Scheduler Default Changed

Default scheduler is now:

concurrent_threads_scheduler = max_min_fair

Improves fairness under high concurrency by prioritizing queries with fewer allocated slots.

Statistics Cache Enabled by Default

use_statistics_cache is now ON by default.

Column statistics are cached in memory, improving optimizer efficiency without repeated file reads.

New system tables and capabilities:

  • system.tokenizers
  • system.user_defined_functions
  • system.jemalloc_stats
  • system.jemalloc_profile_text
  • system.fail_points
  • system.primes

Additional improvements:

  • OpenTelemetry tracing for Keeper
  • Improved crash logging
  • New QueryNonInternal metric
  • Enhanced Web UI visibility

These additions significantly expand cluster introspection capabilities.

Iceberg Enhancements

  • ALTER TABLE RENAME COLUMN supported
  • PREWHERE optimization enabled
  • Production-ready inserts
  • Replace Date with Date32
  • Improved metadata validation

Delta Lake Improvements

  • Optimized metadata scanning
  • Correct table statistics reporting
  • Partitioned insert fixes
  • macOS support added

The ClickHouse 26.2 release update includes:

  • 183 bug fixes (project record)
  • Numerous race condition fixes
  • Join correctness fixes
  • Distributed query fixes
  • Memory safety improvements
  • Deduplication fixes
  • Vector index stability improvements

This release materially improves correctness under concurrency and distributed workloads

Before upgrading:

  1. Validate deduplication behavior.
  2. Test row policy & FINAL semantics.
  3. Validate ingestion pipelines using async inserts.
  4. Benchmark join-heavy queries.
  5. Review Iceberg/Delta workflows.
  6. Confirm scheduler behavior under load.

The ClickHouse 26.2 release update is a landmark release.

Key themes:

  • Unified insert semantics
  • Production-ready text search and vector search
  • Major join and JSON performance improvements
  • Automatic temporal indexing
  • Stronger security via TOTP
  • Embedded observability with ClickStack
  • Record-breaking bug fixes

For production environments, this release delivers measurable performance gains while tightening correctness and security guarantees.

Teams running analytical workloads at scale should evaluate 26.2 carefully, particularly around deduplication defaults and scheduler changes.

Official ClickHouse 26.2 Changelog