v.25.2
Backward Incompatible Changes
6- Completely enable async_load_databases by default
- Add JSONCompact Formats with Progress and Fix Output Error
- Change Default of format_alter_operations_with_parentheses to True, Affects Replication in Older Clusters
- Remove Regular Expression Filtering for Log Messages Due to Data Race
- min_chunk_bytes_for_parallel_parsing setting cannot be zero anymore
- Validate Cache Configuration Settings Handling
Bug Fix
72- Fix Custom Exception Formatting in Query Interpretation
- Fix SQLite Type Mapping to int64 and float64
- Fix Identifier Resolution and Alias Usage in WITH Clause
- Fix Monotonicity in Negate Function for Primary Key Queries
- Fix Empty Tuple Handling in arrayIntersect
- Fix JSON Sub-object Subcolumn Prefix Issue
- Propagate Native Format Settings for Client-Server Communication
- Check Unsupported Types in Certain Storages
- Fix PostgreSQL INSERT INTO SELECT Crash on macOS
- Fixed uninitialized max_log_ptr in replicated database
- Fix crash when inserting interval (issue #74299)
- Fix JSON Literal Formatting to Prevent Syntax Errors
- Fix Create Query with Constant Partition Expressions and Implicit Projections
- Avoid Broken Connection State After INSERT Exception
- Avoid Reusing Intermediate State Connections
- Fix crash in JSON type declaration parsing for non-uppercase type names
- Keeper: Fix logical error for pre-established connection termination
- Fix server startup issue with AzureBlobStorage tables
- Fix missing used_privileges and missing_privileges fields in query_log for BACKUP and RESTORE operations
- HDFS Kerberos Ticket Refresh on SASL Error During Select Request
- Fix Replicated Database Queries in Startup Scripts
- Fix Null-Safe Comparison Issues in JOIN ON Clause
- Revert part state to outdated on remove operation failure
- Fix HTTP Header Loss Due to Early Progress Writing in Scalar Subqueries
- Fix CREATE TABLE AS Queries for Replicated Engine Arguments Disabled
- Fix client connection state after INSERT exceptions
- Fix crash from uncaught exception in PSQL replication
- Sasl RPC Call Retry on Expired Kerberos Ticket
- Fixed Index Usage for Array, Map, and Nullable Columns with optimize_function_to_subcolumns Enabled
- Disable flatten_nested for materialized views with inner tables
- Fix IPv6 Address Handling in Forwarded_For Field
- Fix Nullsafe JOIN Handling for LowCardinality Nullable Data Type
- Checks for Key Condition in NumRowsCache Count
- Fix unused interpolation in queries with new analyzer
- Fix CTE Crash Bug on Insert
- Keeper fix for rollback to prevent writing to broken changelogs
- Use BFloat16 as a Supertype
- Fix unexpected defaults in JOIN results with any_join_distinct_right_table_keys and OR
- Mask Azure Blob Storage Table Engine Credentials
- Fixed ClickHouse Filter Pushdown Behavior for External Databases
- Fix Crash in Protobuf Schema Cache During Parallel Query Output
- Fix logical error in HAVING filter with parallel replicas
- Hide Sensitive Info for icebergS3 and icebergAzure Table Functions
- Function TRIM Now Handles Computed Empty Trim Characters Correctly
- Fix data race in IOutputFormat
- Fix error with different array sizes in nested JSON subcolumns during distributed table JOINs
- Fix Data Corruption with CODEC(ZSTD, DoubleDelta)
- Fix Interaction Between allow_feature_tier and Compatibility Mergetree Setting
- Fix processed_rows value in s3queue_log on file retry
- Respect materialized_views_ignore_errors for URL engine connectivity issues
- Fixed Crashes in MergeTree Due to Asynchronous RENAME Queries
- Fix Block Structure Mismatch Error in QueryPipeline with UNION ALL
- Rebuild Projection on Primary Key Column Alteration to Prevent CANNOT_READ_ALL_DATA Errors
- Fix ARRAY JOIN Result for Scalar Subqueries
- Fixed Null Pointer Dereference in DistinctSortedStreamTransform
- Fix allow_suspicious_ttl_expressions Behaviour
- Fix Uninitialized Memory Read in Translate Function
- Propagate Format Settings to JSON in Native Format
- Recorded default enablement of parallel hash join algorithm in ClickHouse v24.12 settings change history
- Fixed bug preventing copying of tables with implicitly added min-max indices
- ClickHouse Library Bridge Vulnerability Mitigation Measures
- JSON Serialization Issue with Binary Data in ClickHouse Metadata
- Fix commit limits check in S3Queue
- Fix MergeTree Table Attachment with Auto Indexing
- Fixed stack trace propagation issue in job threads
- Fix Permission Check for ALTER RENAME Without CREATE USER Grant
- Fix reinterpretAs with FixedString on big-endian architecture
- Fix logical error in S3Queue processor comparison
- Fix deadlock for ALTER with Memory database
- Fix logical error in index analysis for pointInPolygon in WHERE condition
- Fix Unsafe Call in Signal Handler
- Fix Reverse Key Support in PartsSplitter
Build/Testing/Packaging Improvement
5Experimental Feature
4New Feature
11- Support for Nullable(JSON) Data Type in ClickHouse
- Support Subcolumns in DEFAULT and MATERIALIZED Expressions
- Support Writing Parquet Bloom Filters with Default Setting
- Web UI Introduces Interactive Database Navigation
- Copy-on-Write storage policy
- New Backup Database Engine
- Support for Prepared Statements in Postgres Wire Protocol
- Add Support for Attaching Tables Without Database Layer
- Add compareSubstrings function for string comparison in SQL
- New Function `initialQueryStartTime` Added to Return Query Start Time
- Add SSL Authentication Support for MySQL Named Collections
Improvement
34- Fixed Memory Size Calculation for LowCardinality Columns
- processors_profile_log table now has a 30-day TTL default configuration
- Allow Naming Shards in Cluster Configuration
- Change Prometheus Remote Write Response Status from 200 to 204
- Add dynamic reload for max_remote_read_network_bandwidth_for_serve and max_remote_write_network_bandwidth_for_server
- Allow Blob Paths for Checksums in Backup Process
- Added query ID column to system.query_cache
- Enhancements to Cancelation of ALTER TABLE FREEZE Queries in ClickHouse
- Add groupUniqArrayArrayMap Support as SimpleAggregateFunction
- Hide Catalog Credential Settings in Iceberg Database Engine
- Define Behavior for intExp2/intExp10 with Argument Limits and Exceptions
- Support native s3.endpoint in DatabaseIceberg catalog config
- Handle Permission Errors for SYSTEM DROP REPLICA Command
- Add ProfileEvent for Failed System Log Flushes
- Add Check and Logging for Decrypting and Decompressing
- Added Micro Sign Support in parseTimeDelta Function
- Replace Server Setting with Client Setting for Configuration Management
- Better Error Messages for Syntax Errors in Queries
- Add profile events in S3(Azure)Queue storage
- Disable Server to Client Settings for Compatibility
- Add memory_worker_correct_memory_tracker config for improved internal memory tracking
- Add normalized_query_hash column to system.processes
- Querying system.tables Behavior and Removal of getTotalRows from Hive Tables
- Store Start_Time/End_Time for Backups with Microseconds
- Add MemoryTrackingUncorrected Metric for Uncorrected Global Memory Tracker Value
- Allow Parsing Endpoints in PostgreSQL and MySQL Table Functions
- Added server setting to control behavior on unknown workload queries in ClickHouse
- Don't Rewrite Subcolumns in ARRAY JOIN Unnecessarily
- Retry Coordination Errors for Table Loading
- Support for Flushing Individual Logs in SYSTEM FLUSH LOGS
- Improved /binary server page layout using Hilbert curve and enhanced address display
- Retry ON CLUSTER Queries for TOO_MANY_SIMULTANEOUS_QUERIES
- Add CPUOverload Asynchronous Metric for Server CPU Deficit Calculation
- Changed default value of output_format_pretty_max_rows from 10000 to 1000 for better usability
Performance Improvement
15- Improve JSON Column Reading Performance from S3 in ClickHouse
- Fixed contention in parallel_hash with zero row and byte limits
- Fixed Double Preallocation in ConcurrentHashJoin for Swapped Join Sides
- Slight Improvement in Join Scenarios with Row Precalculation
- Enhancing Filter Ability by Inferring Comparing Conditions in Queries
- Keeper Performance Improvement: Disable Digest Calculation on In-Memory Commits
- Push Down Filter Expression from JOIN ON
- Calculate Lazy Column and Index Sizes in MergeTree
- Reintroduce respect for ttl_only_drop_parts in MATERIALIZE TTL functionality
- Reduce Write Buffer Size for Plain Rewritable Metadata Files
- Reduce Memory Usage for Window Functions
- Evaluate Parquet Bloom Filters and Min/Max Indexes for Improved Query Support
- Queries to Executable Storage Now Support Multi-Threaded Execution
- Fetch Parts in Parallel for ALTER TABLE FETCH PARTITION
- Allow Moving Predicates with indexHint Function to PREWHERE