v.24.2
Backward Incompatible Changes
5- Validate Suspicious Types in Nested Structures
- Add sanity check for thread count and block sizes
- Don't Infer Floats in Exponential Notation by Default, New Setting Added
- Allow Parentheses in Alter Operations for Improved Query Clarity
- Fix Materialized View Security Issue and Introduce SQL Security for Views
Bug Fix
49- Fix "Non-ready set" error in TTL WHERE
- Fix bug in quantilesGK function
- Fix intDiv Behavior for Decimal Arguments
- Fix translate function with FixedString input
- Fix Digest Calculation in Keeper
- Fix stacktraces for binaries lacking debug symbols
- Fix ASTAlterCommand formatImpl for column-specific settings
- Fix SELECT * ORDER BY ALL with Analyzer #59462
- Fix uncaught exception in distributed query cancellation
- Make MAX Function Consistent with Permutation Rules for Complex Types
- Fix Corner Case in update_insert_deduplication_token_in_dependent_materialized_views
- Fix arrayElement/map result for empty value
- Fix crash in topK when merging empty states
- Fix Distributed Table with Constant Sharding Key
- Fix KQL Issue Identified by WingFuzz
- Fix "Read beyond last offset" Error in AsynchronousBoundedReadBuffer
- Maintain Function Alias in RewriteSumFunctionWithSumAndCountVisitor
- Fix non-initial query start time issue
- Validate Argument Types for minmax Function
- Fix leftPad/rightPad function for FixedString input
- Fix AST Fuzzer Issue in countMatches Function
- RabbitMQ: Fix for Neither Acked Nor Nacked Messages
- Fix StorageURL for Single Thread Query Execution
- S3Queue: Fix Uninitialized Value
- Fix Partition Expression Parsing in ClickHouse
- Fix crash in JSONColumnsWithMetadata format over HTTP
- Do not rewrite sum to count if return value differs in Analyzer
- UniqExactSet Crash Fix by Maksim Kita
- ReplicatedMergeTree invalid metadata_version fix #59946
- Fix Data Race in StorageDistributed
- Docker: Execute Init Scripts When Option is Enabled
- Fix SQLite INSERT Handling of Single Quotes
- Fix logical errors in arrayFold
- Fix optimize_uniq_to_count to retain column alias
- Fix S3Queue table exception on drop
- Fix NOT Formatting with Single Literals
- Use max_query_size from context in DDLLogEntry
- Fix Formatting Issues in SQL Queries and Enhance Validation Checks
- Fix Formatting of Explain in Subqueries
- Fix cosineDistance crash with Nullable
- Allow Casting Bools in String Representation to True Bools
- Fix system.s3queue_log Issue #60166 by Kseniia Sumarokova
- Fix arrayReduce with nullable aggregate function name
- Hide sensitive info for S3Queue #60233
- Fix HTTP Exception Codes
- S3Queue: Fix Bug and Flaky Test in test_storage_s3_queue
- Fix uninitialized value and invalid result in IPv6 hashing functions
- Fix OptimizeDateOrDateTimeConverterWithNullArguments
- Fixed Bug in Distributed Table Queries for KQL and PRQL Clients
Build/Testing/Packaging Improvement
7- Added Builds and Tests with Coverage Collection and Introspection
- Update Rust Toolchain in corrosion-cmake for CMake Cross-Compilation
- Add Fuzzing to ASTLiterals
- Set CLICKHOUSE_ALWAYS_RUN_INITDB_SCRIPTS to Run InitDB Scripts on Container Start
- Remove Ability to Disable Generic ClickHouse Components
- Query Fuzzer Enhancements for SETTINGS in Queries
- Add Clang-19 Support for ClickHouse Build
Experimental Feature
6- Added seriesOutliersDetectTukey function for outlier detection using Tukey's fences algorithm
- Add variantType function to return Enum with variant type name for each row
- Support for LEFT JOIN, ALL INNER JOIN, and Subqueries in Parallel Replicas
- Allow Concurrent Table Creation in Replicated Database During Replica Addition or Recovery
- Implement Comparison Operator for Variant Values and Field Insertion, with Default Restrictions on Similar Variant Types
- Disable Parallel Replicas JOIN with CTE
New Feature
17- Added Definer User Syntax for Views/Materialized Views in ClickHouse
- Detect File Format Automatically During Schema Inference in Various Engines
- Implement Auto-Adjustment for Asynchronous Insert Timeouts
- Allow setting quota for maximum sequential login failures
- New Aggregate Function: groupArrayIntersect
- Backup & Restore Support for AzureBlobStorage
- User Can Specify Template String Directly in Query with format_schema_rows_template
- Implemented Automatic Conversion of Merge Tree Tables to Replicated Engine
- Added ALTER TABLE command to remove ZooKeeper nodes for empty partitions
- Support JWT Credentials File for NATS Table Engine
- Implemented system.dns_cache table for DNS debugging
- LZ4HC Codec Adds Faster Level 2 with Reduced Compression
- Implemented system.dns_cache table for DNS debugging in ClickHouse
- Support single-argument version for merge table function
- Support Negative Positional Arguments
- Support Permitted Users for S3 Settings via Config User Key
- Added mergeTreeIndex Function for Introspection of MergeTree Tables
Improvement
37- Output Format Enhancement for Readable Large Numbers in Pretty Mode
- Added Settings for Query Optimization and Debugging in ClickHouse
- Rename `extract_kvp_max_pairs_per_row` to `extract_key_value_pairs_max_pairs_per_row` and update documentation
- Running ALTER COLUMN MATERIALIZE Now Follows Semantics for DEFAULT or MATERIALIZED Expressions
- Enabled Exponential Backoff for Mutation Errors to Optimize Resource Usage
- Add Improvement to Count InitialQuery Profile Event
- Allow definition of volume_priority in storage_configuration
- Add Date32 Support in T64 Codec
- Allow Trailing Commas in Multi-item Types
- Settings for Distributed Table Engine Configurable in Server File
- Retry Handling for Disconnects and Expired Sessions in system.zookeeper Reads
- Do not interpret leading zeroes as octals with input_format_values_interpret_expressions=0
- ClickHouse Updates Memory Limit Handling for Cgroups v2
- New Profile Events for Tracking Time Spent on INSERT Calculations
- Allow Starting Point Definition for S3Queue in Ordered Mode
- Made comments for system tables in clickhouse-local
- Improved Memory Management and Progress Tracking for system.zookeeper Table Querying
- Now dashboard supports compressed and uncompressed URL hash states for backward compatibility
- Bump Intel QPL to v1.4.0 and Fix Polling Timeout Bug
- Do Not Display Server Version Warning in ClickHouse Cloud
- After Self-Extraction, Temporary Binary Moved Instead of Copied
- Fix Stack Unwinding on macOS (Closes #53653)
- Check for Stack Overflow in Parsers with High max_parser_depth Configuration
- Unify XML and SQL Collection Behavior in Kafka Storage
- Fix for Endless Loop in Background Merges Due to Low `merge_max_block_size_bytes` Setting
- Allow UUID in replica_path for explicit CREATE TABLE statements
- Add metadata_version column to system.tables for ReplicatedMergeTree
- Keeper Improvement: Send Only Keeper Metrics/Events for Prometheus
- Dashboard Metrics for Multiple ClickHouse Versions Post-Upgrade
- Allow loading AZ info from a file
- Keeper Improvement: Add Retries for Disk Operation Failures
- Add config setting backups.remove_backup_files_after_failure
- Copy S3 File with GCP Fallback for Internal Error Handling
- Short Circuit Execution for ULIDStringToDateTime
- Added query_id column and error stacktrace to backups tables
- Connections Enhanced for MySQL Port to Improve BI Tool Compatibility
- Fix Race Condition Causing Duplicate Charts in JavaScript Code
Performance Improvement
18- Primary Key Memory Efficiency Improvement
- Improve Memory Usage for Primary Key Operations
- Tables' Primary Keys Lazily Loaded in Memory with New MergeTree Setting
- Vectorized Distance Functions for Vector Search
- Vectorized dotProduct Function for Vector Search
- Add Short-Circuit Ability for dictGetOrDefault Function
- Keeper Improvement: Controlled In-Memory Log Caching
- Keeper improvement: further reduction of data node size
- Continue Optimizing Branch Miss in if Function for Numeric Result Types
- Optimize if function for Map input type with up to 10x speed improvement
- Improve Int8 Performance with Strict Aliasing Implementation
- Optimize performance of sum/avg for bigint and big decimal types
- Improve SELECT Performance with Active Mutations
- Optimized isNotNull Function with AVX2
- Improve ASOF JOIN Performance for Sorted Data
- Update default value of async_insert_max_data_size from 1 MB to 10 MiB
- Use Multithreading for Metadata Reading During RESTORE Command
- Background Flush Enhancement for Multi-Shard StorageBuffer