v.24.11
Backward Incompatible Changes
7- Remove Mistakenly Added System Tables generate_series and generateSeries
- Remove StorageExternalDistributed and resolve issues #70600 and #71176
- Table Engines Kafka, NATS, and RabbitMQ Now Supported by Grants in SOURCES Hierarchy
- Check Full Mutation Query Before Execution to Prevent Errors
- Rename cache setting to filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit
- Remove Support for Enum, UInt128, UInt256, and Certain Integer Types in deltaSumTimestamp
- Update on Permissions for Dictionary Data Retrieval in ClickHouse
Bug Fix
68- Deduplicated parts no longer receive the 'attaching_' prefix in ATTACH PART query
- Fix DateTime64 Precision Bug in IN Function
- Fix Logical Error in ORDER BY with IGNORE/RESPECT NULLS
- Fixed Logical Errors in Asynchronous Inserts with Native Format at Memory Limit
- Fix COMMENT in CREATE TABLE for EPHEMERAL Column
- Fix logical error in JSONExtract with LowCardinality(Nullable)
- Allow dropping replica zkpath with duplicate in system
- Fix crash and leak in AggregateFunctionGroupArraySorted
- Add User-Defined Content-Type Override in URL Engine
- Fix logical error in StorageS3Queue regarding persistent node creation
- Fixed named sessions hanging indefinitely under certain circumstances
- Fix bug in projection lightweight delete concerning _row_exists column
- Fix AT_* Out of Range Issue on Oracle Linux UEK 6.10
- Fix race condition affecting system.query_metric_log value
- Fix mismatched aggregate function name for quantileExactWeightedInterpolated
- Fix bad_weak_ptr exception in functions comparison
- Check for Local Presence of 7z File
- Fix Native Format Settings Ignored in HTTP and Async Inserts
- SELECT queries with system table literals no longer rejected with use_query_cache enabled
- Fix Memory Usage Increase with Filesystem Cache Disabled
- Fix deserialization error for LowCardinality dictionary in Dynamic column
- Fix incomplete cleanup of parallel output format in client
- Added Unescaping for Named Collections to Fix ClickHouse Server Startup Issue
- Fix Async Inserts with Empty Blocks via Native Protocol
- Fix AST Formatting for Wildcard Grants Issue #71309
- Add try/catch to Data Parts Destructors to Prevent std::terminate
- Check Suspicious Types in JSON Type Hints
- Start Memory Worker Thread on Non-Linux OS
- Fix Invalid Rows Error in Chunk with Variant Column
- Fix "attgenerated" column error in older PostgreSQL versions
- Failing Authentication Attempts Logged at DEBUG Level to Reduce Server Log Spam
- Fix crash in mongodb table function with invalid arguments
- Fix crash with optimize_rewrite_array_exists_to_has
- Fixed max_insert_delayed_streams_for_parallel_write to Reduce Memory Usage in Partitioned Inserts
- Fix Argument Constant Error in WHERE Condition for arrayJoin
- Prevent crash in SortCursor with 0 columns
- Fix Date32 Out of Range Issue Due to Uninitialized ORC Data
- Fix Counting Column Size for Dynamic and JSON Types
- Analyzer fix for IN query in materialized view with CTE, closes #65598
- Avoid UDF-related crash in constraints
- Return 0 or Default Char in BitShift Functions for Out of Bounds
- Fix server crashes with materialized views in specific engines
- Array Join Null Pointer Dereference Fix
- Fix LOGICAL_ERROR in ALTER with empty tuple
- Don't transform constant set in predicates for NOT IN operator over partition columns
- Fix Docker Init Script Error Logging for Clarity
- Fix CAST from LowCardinality(Nullable) to Dynamic to Prevent Errors
- Fix Exception for toDayOfWeek with DateTime64 Primary Key in WHERE Clause
- Fixed Default Filling After Sparse Column Parsing
- Fix GROUPING Function Error with ALIAS on Distributed Table
- Fix crash with allow_experimental_join_condition
- Fixed SELECT Statements with WITH TIES Clause to Ensure Sufficient Rows Returned
- Fix TOO_LARGE_ARRAY_SIZE Exception in ArrayWithConstant Evaluation
- clickhouse-benchmark incorrect metrics for queries over one second
- Fix data race in ClickHouse progress indicator during INSERT queries
- Use Auxiliary Keepers for Cluster Autodiscovery
- Fix rows_processed column in system.s3/azure_queue_log
- Fixed S3 function result handling and updated default for s3_skip_empty_files setting
- Fix crash in ClickHouse client syntax highlighting
- Fix Illegal Type Error for MergeTree Tables with Constant First Argument in ORDER BY
- Allow Only SELECT Queries in EXPLAIN AST for Subqueries to Prevent Logical Errors
- Fix Column Description Order Bug in ClickHouse Record Insertion
- Fix Formatting of MOVE PARTITION Alter Commands with Parentheses Enabled
- Fix RIGHT and FULL Joins with Parallel Replicas in Queries
- Fix ClickHouse stderr issue in Docker due to restricted syscalls
- Fix metadata_version record handling in ZooKeeper restart thread
- Fix for Zero-Copy Replication in ReplicatedMergeTree
- Fix for Unsupported Zero-Copy Replication to Prevent Data Loss
Experimental Feature
6- Implement allow_feature_tier Global Switch to Disable Experimental Features
- Fix JSON subcolumn file errors due to unescaped special symbols
- Support String to JSON Alter and Upgrade Serialization to V2
- Implement JSON Serialization/Deserialization for Map/Tuple/Object Conversion
- Prevent Use of Variant/Dynamic Types in ORDER BY/GROUP BY/PARTITION BY/PRIMARY KEY by Default
- Forbid Dynamic/Variant Types in Min/Max Functions
New Feature
8- Added SQL Syntax for Workload and Resource Management
- New BFloat16 Data Type Introduced for 16-bit Floating Point Numbers
- Add CHECK GRANT query for privilege and existence validation
- Add Table Functions for Iceberg, Delta Lake, and Hudi Clusters
- Add User/Password Support in HTTP Handlers
- Add staleness clause support to ORDER BY WITH FILL operator
- Allow Authentication Methods to Have Individual Expiration Dates
- Added parseDateTime64 Functions for DateTime64 Type Returns
Improvement
37- Allow ClickHouse to Use File Argument with ch Command
- Vertical Format Enhancements in Pretty Formats
- Push External User Roles Across Cluster Nodes
- Added Natural Camel-Case Aliases for Aggregation Functions in ClickHouse
- Added date_time_utc Parameter for JSON Log Formatting in UTC Date-Time Format
- Added access_header for S3 endpoints in user authentication
- Higher-order Functions Returning Constants
- Query Plan and Pipeline Processor Names Enhanced with Unique IDs
- Added object existence check after uploading to Azure Blob Storage
- Use Atomic Database by Default in clickhouse-local
- Exceptions Violate HTTP Protocol to Notify Clients of Errors
- Report Hosts Running Distributed DDL Queries and Activate Replicas in DDLWorker
- Wait on Active Replicas for ON CLUSTER Queries with Active-Only DDL Mode
- Better error-handling and cancellation for ON CLUSTER backups and restores
- Support ALTER TABLE MODIFY/RESET SETTING for S3Queue storage
- Added client certificate reload capability similar to server certificates
- Make Client History Size Configurable and Increase Default Size
- Boolean Type Support in Parquet Native Reader
- Retry on More S3 Interaction Errors
- Lower Log Level for S3 Messages
- Support HDFS File Writing with Spaces
- Added Settings to Limit Replicated Tables, Dictionaries, and Views
- Use AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE Instead of AWS_CONTAINER_AUTHORIZATION_TOKEN
- Remove Unnecessary Metadata Node Creation in ClickHouse Upgrade Process
- Add Per Host Dashboards to Advanced Dashboard
- Improve Syntax Highlighting for Implicit SELECT in clickhouse-local
- Command Line Apps to Highlight Syntax for Multi-Statements
- Command-line Applications Update: Non-Zero Exit Codes for Errors
- Fix clickhouse su to accept UID:GID format for user/group IDs
- Allow disabling memory buffer increase for filesystem cache
- Add setting for max file segment size in background download cache
- Slightly Improved JSON Type Parsing in ClickHouse
- Improved Read Performance for Asynchronous Metrics in Heavy Load Scenarios
- S3Queue and AzureQueue Configuration Update for Polling Timers
- Update HostResolver Thrice in History Period
- Added Dashboard Selector Dropdown to Advanced Dashboard HTML Page
- Check Default Database Presence After Authorization Fixes #71097 and #71140
Performance Improvement
15- Optimized Memory Usage for Constant Index Granularity in Large Workloads
- Input Blocks Columns Not Copied for Parallel Hash Join Algorithm
- Optimized Replacing Merge Algorithm for Non-Intersecting Parts
- Do not list detached parts from readonly and write-once disks for metrics
- Do Not Default to Heavy Asynchronous Metrics Calculation
- For plain_rewritable disks, avoid object storage API calls when listing directories to save costs and store filenames in memory.
- Improve performance and accuracy of system.query_metric_log collection interval
- Read-in-Order Optimization with Virtual Rows for Efficient Merge Sort
- Added async_load_system_database setting for faster ClickHouse startup
- Add --threads parameter for parallel compression in clickhouse-compressor
- Added prewarm_mark_cache setting for optimized mark loading in ClickHouse
- Shrink index_granularity array to reduce memory usage in MergeTree engines
- Turn off boundary_alignment filesystem cache for non-disk reads to enhance remote file performance
- Queries Efficiently Loading Indexes in ClickHouse
- Enable parallel_replicas_local_plan by default for improved performance and resource efficiency