v.24.3
Bug Fix
59- Fix finished_mutations_to_keep=0 for MergeTree to Preserve All
- Final Optimization Issue: Invalid Ranges in PartsSplitter
- Issue with Experimental Apache Hive Support
- An enhancement for experimental parallel replicas: trigger reanalysis on changes
- Fix Metadata Type Usage with New Disks Configuration Option
- Fix logical error in mapContainsKeyLike: incompatible type issue
- Avoid Scalar Subquery Calculations in CREATE TABLE
- Fix deadlock in parallel parsing with many skipped rows due to errors
- Fix for KQL Support: Adjust max_query_size_for_kql_compound_operator
- Keeper fix: add timeouts for commit logs
- Don't Output Number Tips for Date Types
- Fix MergeTree Reading with Non-Deterministic Functions in Filter
- Fix Logical Error in Compatibility Setting Value Type
- fix(prql): Enhance panic handler robustness
- Fix intDiv for Decimal and Date Arguments
- Fix CTE Expansion in Alter Modify Query
- Fix system.parts for non-Atomic/Ordinary database engines
- Fix Invalid Storage Definition in Metadata for Parameterized Views
- Fix buffer overflow in CompressionCodecMultiple
- Remove Nonsense from SQL/JSON in ClickHouse
- Remove incorrect assertion in quantileGK aggregate function
- Fix insert-select and insert_deduplication_token bug by setting streams to 1
- Prevent Custom Metadata Headers on Unsupported Multipart Uploads
- Fix toStartOfInterval Issue #60763 by Andrey Zvonov
- Fix crash in arrayEnumerateRanked
- Fix crash in INSERT SELECT JOIN with input()
- Fix crash in subqueries with varying allow_experimental_analyzer values
- Remove Recursion in S3 Reading
- Fix potential error hang in HashedDictionaryParallelLoader
- Fix async RESTORE for Replicated Database (Experimental)
- Fix deadlock in async inserts to Log tables via native protocol
- Fix lazy execution of default argument in dictGetOrDefault for RangeHashedDictionary
- Fix bugs in groupArraySorted function
- Fix Keeper Reconfiguration for Standalone Binary
- Fix session_token usage in S3 engine
- Fix incorrect result of uniqExact aggregate function
- Fix bugs in show database #61269
- Fix RabbitMQ Storage Logical Error with MATERIALIZED Columns
- Fix CREATE OR REPLACE DICTIONARY #61356 by Vitaly Baranov
- Fix ATTACH Query with External ON CLUSTER
- Fix Consecutive Keys Optimization for Nullable Keys
- Fix actions DAG split issue #61458
- Fix RESTORE Failure Issue #61466
- Disable async_insert_use_adaptive_busy_timeout with Compatibility Settings
- Allow Queuing in Restore Pool
- Fix UUID Reading Inconsistency in system.parts
- Fix ALTER QUERY MODIFY SQL SECURITY Issue #61480
- Fix crash in experimental window view feature
- Fix repeat with non-native integers #61527
- Fix client's -s argument issue
- Fix crash in arrayPartialReverseSort #61539
- Fix string search with const position
- Fix addDays Error with DateTime64
- Disallow LowCardinality input type for JSONExtract
- Fix system.part_log for async insert with deduplication
- Fix Non-ready Set Exception for System Parts
- Fix actual part name for REPLACE_RANGE entry handling
- Fix sanitizer report in multiSearchAllPositionsCaseInsensitiveUTF8 for incorrect UTF-8
- Fix RANGE Frame Support for Nullable Columns
Build/Testing/Packaging Improvement
4Experimental Feature
5- Support Parallel Reading for Azure Blob Storage to Enhance Performance
- Add Asynchronous WriteBuffer for Azure Blob Storage to Enhance Performance
- Use Managed Identity for Azure Blob Storage Backups and Prevent Container Creation Errors
- Add setting to allow IN subqueries with parallel replicas
- Change in Zero-Copy Replication: Dropping Table Requires Removing Related Locks and Directory
New Feature
12- Support tar format for reading and writing backups
- Implemented Support for S3 Express Buckets
- Allow Attachment of Parts from Different Disk Using Copy
- Size-Capped Memory Tables with Configuration Settings
- Separate Limits for Waiting and Executing Queries in Server Settings
- Added system.keywords table for improved fuzzing and syntax highlighting
- Add Support for ATTACH PARTITION ALL
- Add getClientHTTPHeader function, closes #54665
- Add generate_series as a table function for compatibility with PostgreSQL
- Mode for topK/topkWeighed with counts and error support
- Added toMillisecond Function for DateTime Types
- Allow Configuring HTTP Redirect Handlers for ClickHouse Server
Improvement
49- Use MergeTree as Default Table Engine
- Enable output_format_pretty_row_numbers by default for better usability
- Improvements to Pretty Number Formats in Previous Version
- Long Pretty format values remain intact in single-result queries like SHOW CREATE TABLE
- clickhouse-client accepts --output-format as synonym for --format
- PrettyCompact Output Format Default in ClickHouse Tools
- Underscore Digit Groups in Pretty Formats for Improved Readability
- Add Override for Initial INSERT Settings with SYSTEM FLUSH DISTRIBUTED
- Enable Default Processors Profiling for ClickHouse
- Support files without format extension in Filesystem database
- Make Format Names Case Insensitive
- Added none_only_active mode for distributed_ddl_output_mode setting
- Improved Colors for Multi-Line Graphs in Advanced Dashboard
- Advanced Dashboard Enhancements: Persistent Controls on Scroll
- Check Inner Table Structure When Modifying Materialized Views
- String Types and Enums Now Usable in Arrays, UNION Queries, and Conditional Expressions
- Allow Enum Declarations in External Data Structures for Query Processing
- Consider Lightweight Deleted Rows for Improved Part Merge Estimation
- Added Comments for System Table Columns
- Improved Usability of Virtual Columns in PREWHERE and Enhanced Documentation in ClickHouse
- Object Storage Key Generation Update for Remove Objects Capability
- Allow "local" as Object Storage Type Instead of "local_blob_storage"
- Parallel Flush of Pending INSERT Blocks on DETACH and SYSTEM FLUSH DISTRIBUTED in Distributed Engine
- Add setting to enforce read-through cache for merges
- Improvement to MySQL Compatibility Protocol for Transaction Handling
- Function substring gains new alias byteSlice
- Renamed dns_cache_max_size to dns_cache_max_entries for Clarity
- SHOW INDEX command no longer sorts by primary key columns
- Keeper startup abort on invalid snapshot detection
- Update tzdata to 2024a
- Keeper improvement: support leadership_expiry_ms in settings
- Always Infer Exponential Numbers in JSON and Introduce String Type for Ambiguous Paths in Named Tuples Inference
- Add Support for START TRANSACTION Syntax in MySQL
- Add Flag for Nullable Sorting in Full-Sorting Merge Join Algorithm
- Support Output Format Detection by File Extension in ClickHouse Clients
- Update Memory Limit in Runtime for Changed Linux CGroups Value
- Add `toUInt128OrZero` Function and Make Compatibility Aliases Case Insensitive
- Improvements to Access Checks for Revoking Unpossessed Rights
- Fix has() Function for Nullable Column
- Support for merge attribute in config substitutions for subtrees
- Add Async Metrics for Virtual Memory Mappings VMMaxMapCount and VMNumMaps
- Use temporary_files_codec setting for all temporary data creation
- Add max_parser_backtracks setting to limit query parsing complexity
- Less Contention in Dynamic Filesystem Cache Resize
- Disallow Sharded Mode of StorageS3 Queue Due to Rewrite
- Fixed Typo in use_legacy_max_level Function
- Remove Duplicate Entries in system.blob_storage_log
- Added current_user function for MySQL compatibility
- Fix inconsistent floating point aggregate function states in mixed x86-64 / ARM clusters
Performance Improvement
17- Optimized dotProduct function to reduce memory copies
- 30x Faster Printing for 256-bit Integers
- New Setting to Optimize Memory Usage for Composite Primary Keys in ClickHouse
- Improve Performance of Aggregation Methods with Nullable Columns
- Lazy Builds JSON Output to Enhance ALL JOIN Performance
- Make HTTP/HTTPS Connections with External Services and Handle 3xx/4xx Responses
- Improvements to aggregate functions and ORDER BY queries in ClickHouse
- Trivial Optimization Reduces Peak Memory Usage to 44% in Column Filter
- Execute multiIf Function in Columnar Fashion for Numeric Result Types
- Faster Mutexes (Nearly 2x Improvement)
- Drain Multiple Connections in Parallel for Distributed Query Completion
- Optimize Data Movement for Nullable Numbers and Strings
- Operations with filesystem cache improved lock contention
- Optimize Array Join and Other JOINs to Prevent Compiler's Misoptimization
- Issue with COLUMNS Matcher Causing Performance and Security Problems in Parser
- Add Analyzer Pass for IN Operator Optimization
- DNSResolver Shuffles Resolved IPs for Uniform AWS S3 Endpoint Utilization
upgrade-notes
10- Allow Experimental Analyzer Setting Enabled by Default with Improved Compatibility
- ClickHouse String Data Type Handling and Default Compression Settings Update
- New ClickHouse Version Enhances Geographic Functions with 64-bit Precision
- Removal of Deprecated In-Memory Data Parts in ClickHouse 23.10
- Changed column name from duration_ms to duration_microseconds in system.zookeeper table
- Reject INSERT queries with async_insert and deduplicate_blocks_in_dependent_materialized_views enabled.
- Utility clickhouse-copier moved to separate GitHub repository
- MySQL compatibility update for locate function argument order in ClickHouse
- Forbid SimpleAggregateFunction in ORDER BY of MergeTree tables by default
- Ordinary Database Engine Deprecated in ClickHouse