Alexey Milovidov
The ClickHouse v26.5 release brings 38 new features, 51 performance optimizations, and 224 bug fixes — the highest number of performance improvements in any release to date. Alexey and Tyler walk through the highlights: a new filesystem table function lets you run SQL directly against your local directory tree, join queries with ORDER BY and LIMIT now push those operations down before joining so only the needed rows are processed, and a long-awaited query cache for subqueries means common sub-expressions can be cached independently of the outer query result.
The performance story runs deep this release. A new hash table pre-computation technique uses software prefetching to keep the next key in CPU cache during group by, joins, and distinct operations — delivering around 20% improvement on TPC-DS benchmarks. MD5 now uses SIMD instruction-level parallelism for a 2x speedup on large string volumes. Planning overhead for queries across merge tables with thousands of sub-tables drops from 6.7 seconds to sub-second. And the JIT compiler — which generates machine code specialized for specific queries — is now available on macOS.
This session also covers:
- ClickHouse client now runs in the browser, embedded directly in the Play UI with a full terminal (xterm.js) accessible via tilde
- Direct SELECT from the Keeper-backed Kafka engine — inspect topic data without consuming offsets, or use kafka_commit_on_select to advance them manually
- CREATE OR REPLACE MATERIALIZED VIEW for atomic view replacement without downtime
- Negative LIMIT BY (LIMIT -5) returns the bottom N rows per key without a subquery
- Multi-path JSON extraction returns structured results in a single call using tuples and arrays
- Array higher-order functions now accept bare function names instead of requiring a lambda expression
- is_prime and is_probable_prime functions for exact and probabilistic primality testing
- Native geometry/geography type support for Iceberg tables, plus a query condition cache for Iceberg to skip unchanged data parts
- Iceberg snapshot-based step-by-step consumption via LIMIT on system snapshots
- SQL compatibility aliases: string_agg, stddev, array_to_string, and unnest


