Wise Hustlers — Digital Product & App Development Studio Logo
Get Consultation
By Wise Hustler Admin•9/26/2026•6 min read

ClickHouse 26.8 LTS Ships Pipelined SQL and an Experimental Cost-Based Optimizer — With 57 Breaking Changes Since 26.3

ClickHouse 26.8 LTS Ships Pipelined SQL and an Experimental Cost-Based Optimizer — With 57 Breaking Changes Since 26.3

ClickHouse 26.8 is the project's newest Long-Term Support release: its changelog entry is dated August 27, 2026, and ClickHouse published its release announcement on September 10, 2026. The release adds a |> pipe operator for writing SQL as a top-down sequence of steps, an experimental cost-based optimizer for distributed query plans, background (fire-and-forget) queries, new tokenizers for Japanese and Chinese full-text search, and expanded data lake connectivity (BigQuery, S3 Tables, Snowflake Horizon, Puffin). Upgrading from the previous LTS, 26.3, also means absorbing a serious pile of breaking changes — 57 of them across the five releases from 26.4 to 26.8, according to a community breaking-changes roundup published on DEV Community — including a CPU instruction-set requirement that stops the default binary from starting on some older hardware and virtual machines.

What actually shipped

ClickHouse ships a new minor version roughly every month, and periodically designates one an LTS release that gets extended bugfix support. 26.8 is that release for this cycle, and ClickHouse's own release post puts the scope of 26.8 itself at 98 new features, 128 performance optimizations, and 556 bug fixes.

The headline developer-facing feature is pipelined SQL. Instead of nesting subqueries, you write a query as a chain of stages joined by |> — read a table, filter, aggregate, sort, limit — with each |> marking a complete, inspectable checkpoint. Per the changelog, each |> step wraps the query before it into a subquery, so the resulting query tree is the same as the equivalent nested-subquery SQL — it's sugar over the existing engine, modelled on GoogleSQL's pipe syntax, rather than a new query language. This is a syntax-level ergonomics change, not an architecture change.

The more consequential engineering work is under the hood: an experimental "Cascades" cost-based optimizer for distributed query plans. It chooses between shuffle, broadcast, replicated and local join strategies, aggregation modes and distributed top-N by estimated cost. It is off by default — you enable it with enable_cascades_optimizer = 1 together with make_distributed_plan = 1 — so nobody gets it by accident on upgrade. What is on by default is building column statistics on INSERT for smaller tables (up to 25 GiB by default), which ClickHouse credits with "a 29% improvement across all TPC-H benchmarks" — and it's worth stressing that is the vendor's number, not independently reproduced. Separately, lazy materialization for Parquet reads is credited with cutting data read from 6.7 GB to 1.5 GB on one test query in ClickHouse's writeup — a benchmark-specific number, not a guaranteed reduction for every workload.

Also new: a system.user_query_log table scoped to the current user's own queries, a URL table/database engine for querying remote files directly by URL, custom HTTP handlers for exposing ClickHouse as a streaming HTTP API, and Iceberg manifest-file prefetching plus atomic POPULATE for materialized views (closing a race condition where concurrent inserts during population could be missed).

The upgrade is not a formality

The part that matters more for anyone running ClickHouse in production is what changed between 26.3 and 26.8. Because LTS releases are several minor versions apart, upgrading means passing through 26.4, 26.5, 26.6, and 26.7 as well, and each of those carried its own breaking changes and default-value shifts — the DEV Community roundup counts 57 unique breaking changes plus roughly 70 default-value changes that don't appear in the official backward-incompatibility lists, across the five releases.

Three are worth calling out specifically:

  • CPU requirements tightened. Starting in 26.6, ClickHouse's default x86 build moved its baseline from x86-64-v2 (SSE4.2) to x86-64-v3, which requires AVX2, BMI1/2, F16C, FMA, LZCNT, MOVBE, and XSAVE. In practice that means Intel Haswell (2013+) or AMD Excavator (2015+) or newer — fine for almost all current hardware, but older servers, some budget cloud instances, and VMs that mask CPU flags from the guest will fail to start the default binary. ClickHouse ships an amd64compat build (targeting plain x86-64) for exactly this case, but you have to know to reach for it.
  • Deduplication migration ordering. If a cluster still has the old_separate_hashes or compatible_double_hashes settings from an older deduplication scheme, 26.7+ servers will refuse to start until that migration completes — meaning it has to be finished before you upgrade, not after.
  • S3 credential resolution changed. S3 access initiated from user SQL no longer falls back to the server's own cloud credentials by default. Tables can load without error and then fail at query time if the caller doesn't have its own credentials — a startup-looks-clean, queries-fail-later kind of bug.

There's also a long tail of quieter behavior changes that won't crash anything but will change results or break tooling: CAST to DateTime now preserves the source timezone instead of normalizing it, FINAL on joins no longer cascades to non-primary tables, JSON fields that look like epoch numbers get interpreted as timestamps, max_insert_threads defaults from 1 to auto (confirmed in ClickHouse's own changelog), and per-CPU async metrics like OSUserTimeCPU0 were consolidated into maps, which will silently break any dashboard or script that parsed the old flat metric names.

What this changes

If you're running ClickHouse in production and treat LTS-to-LTS as a routine bump, that habit needs to change for this one. The path the community roundup recommends — set compatibility = '26.3' immediately after upgrading, then step the compatibility setting forward one release at a time while checking for regressions — exists precisely because so many defaults moved at once. Anyone with older or virtualized hosts should check CPU flags for AVX2 before upgrading, not after a failed restart. Anyone using SQL-initiated S3 access should re-verify credential handling explicitly rather than relying on server-level defaults still working the same way.

For query-writing itself, pipelined SQL is a genuine ergonomics win for anyone who's fought nested subqueries to express a multi-stage transformation, but it doesn't change what ClickHouse can compute — it changes how you write it. The distributed cost-based optimizer is the more interesting long-term bet, though it is still experimental: if it matures and ClickHouse's benchmark gains hold up under third-party workloads, it narrows a real gap with mature distributed query planners in systems like Trino or Snowflake. That's a "watch it" rather than a "it's settled" — vendor TPC-H numbers are a claim about ClickHouse's own test harness, not a guarantee for your schema and query mix.

If you're planning an analytics-stack upgrade like this one and want a second pair of hands, see Wise Hustlers' data analytics services.

Sources

Related articles