Altinity Stable® Build for ClickHouse® 24.8
Here are the detailed release notes for version 24.8.
Release history
Version 24.8.14.10544 is the latest release. We recommend that you upgrade to this version. But read the detailed release notes and upgrade instructions for version 24.8 first. Once you’ve done that, review the details for each release for known issues and changes between the Altinity Stable Build and the upstream release.
| Version | Release date | Details | Docker images |
|---|---|---|---|
| 24.8.14.10544 (latest) | 2025-10-24 | CI report Release page Install guide |
AMD64 and Aarch64 |
| 24.8.14.10501 | 2025-06-27 | CI report Release page Install guide |
AMD64 and Aarch64 |
| 24.8.14.10459 | 2025-03-28 | Build report Release page Install guide |
AMD64 and Aarch64 |
| 24.8.11.51285 | 2025-01-31 | Build report Release page Known issues in upstream Install guide |
AMD64 and Aarch64 |
Builds are available for both AMD64 and Aarch64 from builds.altinity.cloud as either .deb, .rpm, or .tgz.
Finally, check the Altinity ClickHouse® Upgrade E-book, which provides guidelines for upgrading ClickHouse databases.
Major new features in 24.8 since the previous Altinity Stable release 24.3
A new release introduces a lot of changes and new functions. Please refer to the full list in the following sections. The following major features are worth mentioning on the front page:
Major changes that require attention
replace_long_file_name_to_hashnow enabled by default. If you need to preserve compatibility with versions before 23.9 - consider disabling that.- Analyzer
- Analyzer is a huge refactoring of the query interpreting engine, enabled by default since 24.3. For new projects you should opt for using analyzer as a default choice.
- There are a lot of queries which may work better with analyzer enabled.
- But there are also risks that it can have some negative impact on different legacy queries. So if you upgrade, please give a run of your tests at staging with analyzer enabled first. If you run into some issues, you can disable the flag (
enable_analyzer=0) for particular queries or for user profiles (or globally in default user profile). - Also check the list of reported issues related to analyzer, including those which are considered important. If you find something which is absent in those lists - please report it.
- If you decide to disable the analyzer before the upgrade, use the setting
allow_experimental_analyzerduring a rolling upgrade, since older versions are not aware ofenable_analyzer. But please remember that in future versions the old (before analyzer) code will be removed, and eventually the analyzer will be the only choice.
text_log&error_logis now enabled by default, consider configuring TTL for it.- S3Queue was reworked significantly (setting
s3queue_total_shards_numremoved,s3queue_bucketsintroduced,s3queue_allow_experimental_sharded_modedeprecated). In 24.8 the feature is more mature, but some issues still exist. async_load_databasesnow enabled, it may increase the chances of the issues with theengine=Kafkaand other streaming tables to flush data only to some subset of tables, and some of MV may miss the data.- JSON datatype is not ready for production on 24.8 (consider newer releases.)
Backward incompatible changes
- Async Loading: The
async_load_databasessetting now defaults totrue, allowing the server to accept connections before all tables are loaded. Setasync_load_databases=falseto revert to the previous behavior. - Deprecated Functions: Functions
neighbor,runningAccumulate,runningDifferenceStartingWithFirstValue, andrunningDifferenceare deprecated. Use window functions instead. Setallow_deprecated_functions=1to enable them temporarily. - Access Changes: Faster
system.columnsqueries, but stricter access rules may skip tables withoutSHOW TABLESpermissions. - Index Renaming: “Inverted indexes” are renamed to “full-text indexes,” breaking compatibility with existing indexes. Drop and recreate them after the upgrade.
- Removed Features:
- Support for
INSERT WATCHqueries is removed. - The setting
optimize_monotonous_functions_in_order_byis no longer available.
- Support for
max_parallel_replicasRestriction: Settingmax_parallel_replicasto 0 is no longer allowed to prevent logical errors.- Separate Packages:
clickhouse-odbc-bridgeandclickhouse-library-bridgeare now distributed as separate packages. - Query Parsing: Invalid queries fail earlier. Experimental KQL expressions in
kqltable functions now require string literals. - Snowflake Functions: New
SnowflakeIDfunctions replace older ones. To enable deprecated versions, setallow_deprecated_snowflake_conversion_functions=1.
Appendix: New features
SQL features
- Recursive CTEs: Enables recursive queries for tree and graph traversal, fully compatible with standard SQL.
- QUALIFY Clause: Filters data after window functions.
- JOINS:
- Enable
allow_experimental_join_condition=1for joins with inequalities, e.g.,t1.y < t2.y. - Better CROSS (comma) JOIN
- Faster Parallel Hash Join
- Merge Join Algorithm For ASOF JOIN (join_algorithm = ‘full_sorting_merge’)
- Collect hash table sizes statistics in ConcurrentHashJoin (
max_entries_for_hash_table_stats)
- Enable
- SQL usability:
- DROP Multiple Tables: Supports dropping multiple tables in one command:
TRUNCATE ALL TABLES: New command to truncate all tables in one query.DROP DETACHED PARTITION ALLfor removing all detached partitions.- trailing commas support
- Replicated Database Engine: Removed the experimental tag; now in Beta.
Datalakes & object storage
- S3 Enhancements:
- Introduces
s3_plain_rewritablefor S3 disks without metadata storage. - Enables reading from archive files in S3 storage.
- Improved performance for glob selection (
{}patterns). - a lot of performance optimizations
- Supports AWS Private Link Interface endpoints.
- Hive-Style Partitioning: Adds support for Hive-style partitioning in file storage engines like S3 and HDFS.
- Introduces
- Azure Blob Storage:
- production ready since 24.6
- Adds
plain_rewritablemetadata support. - Adds a queue-based storage engine for Azure.
use_workload_identityparameter for authentication via Azure Workload Identity.- Multicopy support for backups using Azure Blob Storage.
- Enabled native copy for Azure, including across containers.
- Added support for
plain_rewritablemetadata for Azure and local object storages.
- Hive Table Parsing: Resolves mismatches between the number of input fields and defined table columns.
Experimental features
- TimeSeries Engine (Experimental): Optimized for time-series data, enabled with
allow_experimental_time_series_table. - New Kafka Engine (Experimental): Enables exactly-once message processing with
kafka_keeper_pathand deduplication. - Dynamic Data Type and JSON Data Type: both experimental in 24.8.
- new (experimental) index type vector_similarity (replacing annoy and usearch)
- Experimental per column statistics allow_experimental_statistics + allow_statistics_optimize
- Native Parquet Reader: Enabled with
input_format_parquet_use_native_reader, directly reads binary Parquet files to ClickHouse columns.
Security and access control
- GRANT for Table Engines: Allows granting specific permissions on table engines.
- Certificate Reload: Certificates reload correctly with the entire chain.
- Quota Key Flexibility: Allows quota keys with different auth schemes in HTTP requests.
- Role in HTTP Queries: The
roleparameter in HTTP queries applies roles, e.g.,?role=x&role=yis equivalent toSET ROLE x, y. - Migration BoringSSL -> OpenSSL
Operations
- Named Collections in Keeper:
- Startup Scripts: Allows running preconfigured queries at startup.
- Limits on Tables:
max_database_num_to_throw,max_table_num_to_throw. - Query Cache Tagging: Use
query_cache_tagto control cache entries for specific queries. - Added limits for
MOVE PARTITION TO TABLEqueries (e.g.,max_parts_in_total). - YAML Enhancements: YAML merge key support, Configuration substitutions from YAML files.
- HTTP Enhancements: Introduced
http_response_headersfor custom HTTP handler responses. - Error Logging: Introduces
system.error_log, a persistent log of errors fromsystem.errors. - system.detached_tables
- system.error_log
- new setting disable_insertion_and_mutation
- global_profiler_cpu_time_period_ns / global_profiler_real_time_period_ns - to profile all threads of the clickhouse globally.
MergeTree
- Optimized Table Sorting: Use
optimize_row_order=trueto improve compression by optimizing data order. - Reduce Disk I/O: Skips merging newly created projection blocks during
INSERT. - Unload Primary Index: Saves memory by unloading outdated parts’ primary indices:
SYSTEM UNLOAD PRIMARY KEY - ORDER BY Optimization: Buffering improves performance for high-selectivity filters, controlled by
read_in_order_use_buffering. - New Virtual Columns: Adds
_block_offset,_block_number, and_part_data_version. - TTL Information: Added to the
system.parts_columnstable for better tracking.
| merge_tree_settings | deduplicate_merge_projection_mode | | throw | Whether to allow create projection for the table with non-classic MergeTree, if allowed, what is the action when merge, drop or rebuild. |
Functions
date_diffandageanddate_truncto subsecond units.- JSONAllPaths, JSONAllPathsWithTypes, JSONDynamicPaths, JSONDynamicPathsWithTypes, JSONMergePatch, JSONSharedDataPaths, JSONSharedDataPathsWithTypes
- UUIDToNum, UUIDv7ToDateTime, generateUUIDv7
- base64URLDecode,base64URLEncode, tryBase64URLDecode
- changeDay, changeHour, changeMinute, changeMonth, changeSecond, changeYear
- clamp
- snowflakeIDToDateTime,snowflakeIDToDateTime64,generateSnowflakeID, dateTime64ToSnowflakeID, dateTimeToSnowflakeID
- denseRank,percentRank (+percent_rank), groupConcat (+group_concat)
- dynamicElement,dynamicType, isDynamicElementInSharedData,tupleNames
- editDistanceUTF8,levenshteinDistanceUTF8
- hilbertDecode,hilbertEncode
- readWKTLineString,readWKTMultiLineString |
- parseReadableSize,parseReadableSizeOrNull,parseReadableSizeOrZero
- partitionID
- printf
formats
- new format
Form- HTML forms (x-www-form-urlencoded MIME type), Rawhandy shortcut for TSVRaw- TSV with CRLF Support: TSV files with CRLF line endings are supported via
input_format_tsv_crlf_end_of_line. - Apache Arrow Schema: Nullable types are now inferred automatically.
Other
- Four File-Based Storage options: Adds
_etag,_path,_size, and_timestamp. - Compression Based on STDOUT: Automatically applies compression for STDOUT if the output file has a compression extension.
- 2 new WKT (Well-known text representation of geometry) types: LineString & MultiLineString
- Compile Expressions: JIT compiler for expression fragments (
compile_expressions) enabled by default.
( see alsocompiled_expression_cache_sizecompiled_expression_cache_elements_size)
v24.8.14.10544
Released 2025-10-24
CI report | Release page | Changelog - 24.8.14.10544 vs. 24.8.14.10501
Changes compared to v24.8.14.10501.altinitystable (d1f73c2)
Critical Bug Fixes (crash, data loss, RBAC) or LOGICAL_ERROR
- Fixes access validation on select for loop table function (ClickHouse#88802 by @pufit via #1099)
Bug Fixes (user-visible misbehavior in an official stable release)
- Allow referencing any table in view(…) argument of remote table function with enabled analyzer (ClickHouse#83844 by @novikd via #995)
- Fixed error Block structure mismatch in several cases with tables with sparse columns (ClickHouse#79491 by @CurtizJ via #1003)
- ClickHouse crashes if ArrowStream file has non-unique dictionary (ClickHouse#87863 by @ilejn via #1067)
- Fixed move-to-prewhere optimization, which did not work in the presence of row policy (ClickHouse#87303 by @KochetovNicolai via #1080)
Improvements
- New MergeTree setting search_orphaned_parts_drives to limit scope to look for parts e.g. by disks with local metadata (ClickHouse#84710 by @ilejn via #977)
- Refreshable materialized view improvements: append mode (… REFRESH EVERY 1 MINUTE APPEND …) to add rows to existing table instead of overwriting the whole table, retries (disabled by default, configured in SETTINGS section of the query), SYSTEM WAIT VIEW <name> query that waits for the currently running refresh, some fixes (ClickHouse#68249, ClickHouse#58934 by @al13n321 via #1066)
- Fixes handling of users with a dot in the name when added via config file (ClickHouse#86633 by @mkmkme via #1089)
Performance Improvements
- Performance improvements to all bloom filter types (ClickHouse#79800 by @dkratunov via #1062)
Build/Testing/Packaging Improvement
- Fix branding (#870, #871 by @Enmk #899 by @strtgbb)
- Specify that downloaded packages and logs correspond to the run (#964 by @MyroTk)
- Fix Grype Scan Job (#1029 by @strtgbb)
- Bump OpenSSL to fix CVE-2025-9230, bump Alpine in Keeper image to 3.21.5 (#1088 by @zvonand)
- Change openldap source from bitnami -> bitnamilegacy (#1100 by @strtgbb)
Packages
Available for both AMD64 and Aarch64 from https://builds.altinity.cloud/ as either .deb, .rpm, or .tgz
Docker images
Available for both AMD64 and Aarch64: altinity/clickhouse-server:24.8.14.10544.altinitystable
Full Changelog: v24.8.14.10501.altinitystable...v24.8.14.10544.altinitystable
Let’s Install!
Linux packages for both AMD64 and Aarch64 can be found at builds.altinity.cloud as either .deb, .rpm, or .tgz. Linux packages for upstream builds are at packages.clickhouse.com.
Altinity Stable Build images are available at DockerHub as altinity/clickhouse-server:24.8.14.10544.altinitystable.
For more information on installing ClickHouse from either the Altinity Builds or the upstream builds, see the ClickHouse Altinity Stable Builds Install Guide.
Please contact us at info@altinity.com if you experience any issues with the upgrade.
v24.8.14.10501
Released 2025-06-27
CI report | Release page | Changelog - 24.8.14.10501 vs. 24.8.14.10459
Changes compared to v24.8.14.10459.altinitystable
Bug Fixes (user-visible misbehavior in an official stable release)
- Wait for pair delimiter after flusing quoted value on extractKeyValuePairs (partial backport of ClickHouse#80657 by @arthurpassos via #865)
- Fix match(col, ‘^…’) index analysis with escaped metacharacters to avoid wrong results and crashes (ClickHouse#79969 by @filimonov via #863)
- Fix wrong results for grouping sets with ColumnConst and Analyzer (ClickHouse#79743 by @zvonand via #862)
- Ignore parse error in system.distributed_ddl_queue (ClickHouse#79369 by @ilejn via #843)
Improvements
- Allow to add http_response_headers in http_handlers of any kind (ClickHouse#79975 by @zvonand via #832)
- Added support for Date32, DateTime64 in TTL (ClickHouse#80710 by @zvonand via #833)
Build/Testing/Packaging Improvement
- 24.8 update report to new format (#823 by @strtgbb)
- Add Grype Scan (#792 by @strtgbb)
- Smarter pr number fetching for grype and report and update report action (#845 by @strtgbb)
Let’s Install!
Linux packages for both AMD64 and Aarch64 can be found at builds.altinity.cloud as either .deb, .rpm, or .tgz. Linux packages for upstream builds are at packages.clickhouse.com.
Altinity Stable Build images are available at DockerHub as altinity/clickhouse-server:24.8.14.10501.altinitystable.
For more information on installing ClickHouse from either the Altinity Builds or the upstream builds, see the ClickHouse Altinity Stable Builds Install Guide.
Please contact us at info@altinity.com if you experience any issues with the upgrade.
v24.8.14.10459
Released 2025-03-28
Build report | Release page | Changelog - 24.8.14.10459 vs. 24.8.11.51285
Changes compared to upstream's v24.8.14.39-lts
Bug Fixes (user-visible misbehavior in an official stable release)
-
To avoid spamming the server logs, failing authentication attempts are now logged at level
DEBUGinstead ofERROR. (#71405 by @rschu1ze via #651) -
Fix an exception of
TOO_LARGE_ARRAY_SIZEcaused when a column of arrayWithConstant evaluation is mistaken to cross the array size limit. (#71894 by @udiz via #650) -
Cross port of the fix to avoid reusing connections that had been left in the intermediate state. (#74749 by @azat via #678)
Improvements
-
ALTER TABLE .. REPLACE PARTITIONdoesn’t wait anymore for mutations/merges that happen in other partitions (#59138 by @Enmk & @zvonand via #638) -
Respect
prefer_locahost_replicawhen building plan for distributedINSERT ... SELECT.(#72190 by @filimonov via #657) -
Support parquet integer logical types on native reader. (#72105 by @arthurpassos via #680)
-
Evaluate parquet bloom filters and min/max indexes together. (#71383 by @arthurpassos via #681)
-
Improve query_plan_merge_filters optimization (#71539 by @KochetovNicolai via #640)
Let’s Install!
Linux packages for both AMD64 and Aarch64 can be found at builds.altinity.cloud as either .deb, .rpm, or .tgz. Linux packages for upstream builds are at packages.clickhouse.com.
Altinity Stable Build images are available at DockerHub as altinity/clickhouse-server:24.8.14.10459.altinitystable.
For more information on installing ClickHouse from either the Altinity Builds or the upstream builds, see the ClickHouse Altinity Stable Builds Install Guide.
Please contact us at info@altinity.com if you experience any issues with the upgrade.
v24.8.11.51285
Released 2025-01-31
Build report - 24.8.11.51285 | Release page
Known issues in 24.8.11
The following problems are known to exist in 24.8.11:
- Analyzer issues https://github.com/ClickHouse/ClickHouse/labels/analyzer
- https://github.com/ClickHouse/ClickHouse/issues/71456 issue with concurrent mutations. workaround: avoid concurrent mutations.
- https://github.com/ClickHouse/ClickHouse/issues/71479 corner case with push down of arrayAll conditions into joins. Workaround: rewrite the query.
- https://github.com/ClickHouse/ClickHouse/issues/71218 issue with array join and partition pruning. Workaround: rewrite query.
- https://github.com/ClickHouse/ClickHouse/issues/64652 issue with memory accounting in cgroups env.
- https://github.com/ClickHouse/ClickHouse/issues/65402 columns for parametrized views are not shown. Workaround: EXPLAIN (SELECT … FROM view(a=1,b=2) WHERE 0)
- https://github.com/ClickHouse/ClickHouse/issues/71895 “Optimized trivial count” can give wrong results in certain corner cases. Workardoung optimize_use_implicit_projection=0, optimize_trivial_count_query=0
- https://github.com/ClickHouse/ClickHouse/issues/71511 issue with memory tracking (fix https://github.com/ClickHouse/ClickHouse/pull/73081 )
- https://github.com/ClickHouse/ClickHouse/issues/69730 Unexpected literal type in function when using toDecimal256. Workaround: disable analyzer, or upgrade to a newer version.
Changes in Altinity Stable build compared to upstream build 24.8.11.5-lts
Like upstream builds, Altinity Stable builds for ClickHouse are open source and are based on upstream LTS versions.
Fixes backported to Altinity Stable Build 24.8.11
Altinity Stable Build version 24.8.11 is based on upstream 24.8.11.5-lts, but we have additionally backported several fixes:
- Thread pool: move thread creation out of lock (#68694)
- Passing external user roles from query originator to other nodes (#70332)
- Make numactl respect EPERM error, when get_mempolicy is restricted by seccomp (#70900)
- Fix S3 Express Disk Initialization issue (#73777)
- Thread pool metrics (#68674)
- More advanced SSL options for Keeper (#69582)
- Fix advanced SSL configuration for Keeper’s internal communication (#72730)
Backports of our work on better Parquet performance and compatibility
We have also backported some of our work on better Parquet performance and compatibility:
- Parquet bloom filter support (#62966)
- Parquet page header V2 support (#70807)
- Boolean datatype support (#71055)
- Compression level for Parquet output journal (#73651)
Build/Testing/Packaging improvements
- Port CI/CD to Altinity’s infrastructure
- Fixed tests
- Changed version number generation
Let’s Install!
Linux packages for both AMD64 and Aarch64 can be found at builds.altinity.cloud/ as either .deb, .rpm, or .tgz. Linux packages for upstream builds are at https://packages.clickhouse.com.
Altinity Stable Build images are available at DockerHub as altinity/clickhouse-server:24.8.11.51285.altinitystable.
For more information on installing ClickHouse from either the Altinity Builds or the upstream builds, see the ClickHouse Altinity Stable Builds Install Guide.
Please contact us at info@altinity.com if you experience any issues with the upgrade.