What ClickHouse/ClickHouse shipped
Written by FoxPlug from the repository's own releases; not affiliated with Clickhouse. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/ClickHouse/ClickHouse; Clickhouse did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 5, 2026
What shipped
- Bounded the collections read from the Native protocol so peer-declared sizes can no longer force allocation before the data arrives. Pull request #117015
- Answer min and max of Parquet file columns from column chunk statistics instead of reading the data. Pull request #124201
- Resolve a pending rename of a Nested leaf read as a subcolumn, which previously returned default values in SELECT from wide parts. Pull request #119134
- Keep both swapped columns' statistics through a mutation that exchanges two column names. Pull request #118977
- Fix CANNOT_COMPRESS with CODEC(T64) on a Map with bucketed serialization by carrying types on
bucket_indexesand restrictingbuckets_infoto generic codecs. Pull request #124695 - Build skip indexes from the merged rows when an INSERT merges its block. Pull request #123291
- Stop removing zero rows in SELECT FINAL from SummingMergeTree when only the columns the query read are considered. Pull request #115032
- Stop dropping rows of a part without rows TTL info in a TTL merge. Pull request #123068
- Fix wrong results of pointInPolygon for a polygon with huge coordinates. Pull request #123740
- Fix UNEXPECTED_PACKET_FROM_SERVER on INSERT when a subquery is evaluated during analysis. Pull request #118946
Why it matters
This week brought fixes for wrong results and for reads that depended on which columns a query touched, covering pointInPolygon, SummingMergeTree FINAL, TTL merges and skip index construction on insert. It also tightened protocol and file reading: Native protocol collections are now bounded, Parquet min and max can come from column chunk statistics, and several Parquet and S3 paths were adjusted. Alongside that came backports of outer JOIN conjunct and Iceberg decimal bound fixes to the 26.8 and 26.9 branches, plus a long list of CI test stabilizations.
Changelog entry
- Bounded the collections read from the Native protocol. Pull request #117015
- Answer min/max of Parquet file columns from column chunk statistics. Pull request #124201
- Resolve a pending rename of a Nested leaf read as a subcolumn. Pull request #119134
- Keep both swapped columns' statistics through a mutation. Pull request #118977
- Fixed CANNOT_COMPRESS with CODEC(T64) on a Map with bucketed serialization. Pull request #124695
- Build skip indexes from the merged rows when an INSERT merges its block. Pull request #123291
- Do not remove zero rows in SELECT FINAL from SummingMergeTree. Pull request #115032
- Do not drop rows of a part without rows TTL info in a TTL merge. Pull request #123068
- Fixed wrong results of pointInPolygon for a polygon with huge coordinates. Pull request #123740
- Fixed UNEXPECTED_PACKET_FROM_SERVER on INSERT when a subquery is evaluated during analysis. Pull request #118946
- Do not derive conjuncts in outer JOIN ON. Pull request #124233
- Do not cache a block read past the read-until position of CachedCompressedReadBuffer. Pull request #125079
This week: bounded Native protocol collections, Parquet min/max from column chunk statistics, fixes for pointInPolygon with huge coordinates, SummingMergeTree FINAL zero rows, TTL merges without row TTL info, and skip indexes built from merged insert rows.
This week in the project: Native protocol collections read from a peer are now bounded, Parquet min and max can be answered from column chunk statistics, and CODEC(T64) works on a bucketed Map. Wrong results were fixed for pointInPolygon with huge coordinates, SELECT FINAL from SummingMergeTree, and TTL merges on parts without row TTL info. Skip indexes are now built from the merged rows when an INSERT merges its block, and several fixes were backported to the 26.8 and 26.9 branches.
Week of September 28, 2026
What shipped
- Added experimental LATERAL JOIN support for correlated subqueries in the FROM clause, enabling standard SQL patterns like top N per group queries. Pull request #97833
- Overlay databases now work on the server, allowing CREATE DATABASE with multiple source databases whose tables are exposed as a union. Pull request #121878
- Added SYSTEM RESET FILELOG command to re-read files from a FileLog table or skip them. Pull request #123545
- FileLog table paths now support glob patterns in file names. Pull request #123590
- Added /dialect, /lang, and /language client commands as shortcuts for changing query dialects before parsing. Pull request #114568
- Vectorized least, greatest, and clamp functions for Nullable and multiple numeric arguments, improving performance 3-5 times. Pull request #109783
- Fixed zero-shard Distributed reads with
distributed_group_by_no_mergeor when nested under another Distributed table. Pull request #122982 - Distributed table ORDER BY now rejects queries where the declared type conflicts with shard ordering. Pull request #118445
- Fixed stale subcolumns left behind after ALTER TABLE RENAME COLUMN. Pull request #122527
- Fixed reading a struct together with its field from Delta Lake tables with column mapping enabled. Pull request #123852
Why it matters
This week brings experimental LATERAL JOIN for advanced SQL patterns, overlay databases for table unions, and FileLog improvements for flexible file reading. Multiple query execution and storage bugs were fixed, including distributed table edge cases and Delta Lake handling.
Changelog entry
- Experimental LATERAL JOIN support for correlated subqueries in FROM clause, controlled by
allow_experimental_lateral_joinsetting Pull request #97833 - Overlay databases now available on server: CREATE DATABASE db ENGINE = Overlay(db1, db2,...) for table union Pull request #121878
- Added SYSTEM RESET FILELOG command to re-read files or skip them in FileLog tables Pull request #123545
- FileLog table paths now support glob patterns in file names Pull request #123590
- Added /dialect, /lang, /language client commands for setting query dialect before parsing Pull request #114568
- Vectorized least/greatest for Nullable and 3+ numeric arguments, and clamp for numeric arguments Pull request #109783
- Fixed zero-shard Distributed reads with
distributed_group_by_no_mergeor nested under another Distributed table Pull request #122982 - ORDER BY over Distributed table now rejects queries where declared type conflicts with shard ordering Pull request #118445
- Fixed stale subcolumns left behind by ALTER TABLE RENAME COLUMN Pull request #122527
- Fixed reading struct and its fields from Delta Lake table with column mapping Pull request #123852
- Object storage synchronous reads no longer shrink buffer after short fills, improving performance Pull request #123777
- Fixed Enum constant pushdown to external databases to use ClickHouse comparison format Pull request #123843
New this week: experimental LATERAL JOIN for correlated subqueries, Overlay databases, FileLog glob patterns and reset command, dialect shortcuts, and vectorized least/greatest/clamp functions. Plus fixes for Distributed tables and Delta Lake.
ClickHouse updates this week include experimental LATERAL JOIN support for advanced SQL patterns and top-N-per-group queries, new Overlay databases that expose unions of source tables, and FileLog enhancements with glob patterns and reset capability. Performance improvements include vectorized least/greatest/clamp functions (3-5x faster) and dialect switching commands. Bug fixes address Distributed table edge cases, Delta Lake column mapping, and metadata handling.
Week of September 21, 2026
What shipped
- Clickhouse-server now applies a seccomp system call filter at startup to restrict kernel interfaces available to the process Pull request #119545
- Substring(s, 1) and substringUTF8(s, 1) now return the input column directly without creating a copy for String types Pull request #119820
- ArrayHasSubstr skips KMP preprocessing when the needle cannot fit in the haystack Pull request #119824
- PositionCaseInsensitiveUTF8 now gives consistent results regardless of whether arguments are constant or column values Pull request #122113
- INSERT... SELECT is now compatible with async insert for eligible single-block local inserts Pull request #111663
- Azure blob storage reads now correctly reopen when a response ends before the right bound Pull request #120963
- Query tree passes now preserve FunctionKind::WINDOW when rewriting aggregate functions Pull request #119681
- Promql_evaluation_time is now stored as double instead of float to prevent silent rounding Pull request #120942
- Column statistics are no longer kept for columns removed by column TTL Pull request #122058
- Format() function now correctly handles escaped braces surrounding replacement fields Pull request #120704
Why it matters
This week includes security improvements through seccomp filtering, several performance optimizations for string and array functions, and bug fixes for distributed queries, string handling, and storage operations. These changes address both performance scaling issues and correctness problems across various query types.
Changelog entry
- Clickhouse-server now applies a seccomp system call policy at startup to restrict available kernel interfaces Pull request #119545
- Performance: substring(s, 1) and substringUTF8(s, 1) now return the input column directly for String types without copying Pull request #119820
- Performance: arrayHasSubstr skips KMP preprocessing when haystack is shorter than needle Pull request #119824
- Fixed positionCaseInsensitiveUTF8 giving different results for constant and column arguments Pull request #122113
- Async insert now supports eligible single-block local INSERT... SELECT queries Pull request #111663
- Fixed Azure blob storage reads not reopening when response ends before right bound Pull request #120963
- Fixed window function kind not being preserved when query tree passes rewrite aggregate functions Pull request #119681
- Fixed
promql_evaluation_timesilently rounding by storing as double instead of float Pull request #120942 - Fixed column statistics being kept for columns removed by column TTL Pull request #122058
- Fixed format() function throwing error on escaped braces surrounding replacement fields Pull request #120704
ClickHouse now applies seccomp filtering at startup for improved containment. This week also brings performance optimizations for substring operations, array searches, and CSV reading, plus fixes for UTF8 case-insensitive search consistency.
ClickHouse continues improving security and performance. This week's updates include seccomp system call filtering at server startup for enhanced containment, performance optimizations for substring operations and array functions, and important fixes for UTF8-aware string operations and distributed query handling. These changes address both kernel interface containment and query execution consistency.
Week of September 14, 2026
What shipped
- Removed the query analysis that preceded the analyzer, completing the transition to the new analyzer as the sole query analysis path. Pull request #120311
- Fixed a critical security issue where HDFS database table cache did not check read source grants and host filters. Pull request #119523
- Fixed query-local text index caches to use plain LRU instead of a different cache policy. Pull request #120844
- Merged join-order conflict-detector settings into a single enum setting to reduce configuration complexity. Pull request #120630
- Added validation that Azure endpoint range responses match the requested offset to prevent data corruption from proxies that ignore range requests. Pull request #120955
- Fixed incorrect aggregate results when limit pushdown optimization was used with ORDER BY as a strict prefix of GROUP BY. Pull request #117573
- Changed server behavior to not terminate on retryable errors while loading outdated parts. Pull request #117981
- Fixed correlated subqueries in SELECT list to work correctly when the outer query has a WHERE clause. Pull request #118402
- Fixed parameterized views to work correctly when referenced by their own name in the analyzer. Pull request #120698
- Fixed WHERE f IN (nan) to not silently lose NaN rows from floating-point columns during statistics-based pruning. Pull request #117453
Why it matters
This week includes important stability fixes for query analysis, security hardening for cloud storage, and correctness fixes for aggregations and floating-point handling. The removal of legacy query analysis code simplifies the codebase after the analyzer became the default. Several edge-case bugs affecting correlated subqueries, parameterized views, and NaN handling have been resolved.
Changelog entry
- Removed legacy query analysis code that preceded the analyzer. Pull request #120311
- Fixed HDFS database to check read source grant and host filter when serving cached tables. Pull request #119523
- Fixed query-local text index caches to use plain LRU. Pull request #120844
- Added validation that Azure endpoint range responses match requested offset. Pull request #120955
- Fixed incorrect aggregates from limit pushdown when ORDER BY is a strict prefix of GROUP BY. Pull request #117573
- Server no longer terminates on retryable errors while loading outdated parts. Pull request #117981
- Fixed correlated subqueries in SELECT list to work with WHERE clauses. Pull request #118402
- Fixed parameterized views to work when referenced by their own name. Pull request #120698
- Fixed WHERE f IN (nan) to preserve NaN rows in floating-point columns. Pull request #117453
- Fixed formatDateTime functions to work with LowCardinality time zone arguments. Pull request #117006
New in ClickHouse: removed legacy query analysis code, fixed Azure range validation, secured HDFS table cache access checks, and resolved query correctness issues with correlated subqueries and NaN handling.
This week's ClickHouse updates focus on stability and correctness: we completed the transition to the new analyzer by removing legacy query analysis code; fixed a critical security issue in HDFS database table caching that wasn't enforcing read source grants; improved Azure Blob Storage reliability with range offset validation; resolved query correctness bugs affecting correlated subqueries, parameterized views, and floating-point NaN handling; and merged query optimization settings for cleaner configuration.