v.24.8
Backward Incompatible Changes
8- ClickHouse Client and Local Default to Multi-Query Mode
- LowCardinality Data Type Alternative Syntax Deprecated
- Fix Logical Errors with Buffer in Distributed Destination Tables
- Update: Handle Negative Arguments in Gamma-Based Random Distribution Functions
- System Table text_log Enabled by Default, May Increase Disk Usage
- Limit on array size in arrayWithConstant to 1 GB in new version
- Fix REPLACE Modifier Formatting to Forbid Omission of Brackets
- Backport #68349: Reimplement Dynamic Type in ClickHouse
Bug Fix
65- Fix Crash with Variant and AggregateFunction in Experimental Variant Data Type
- Fix crash in DistributedAsyncInsert with empty connection
- Fix crash of uniq and uniqTheta with tuple() argument
- Fix unresolved table function arguments traversal in ReplaceTableNodeToDummyVisitor
- Fix stack overflow in JSONMergePatch function and enhance error diagnostics
- Fixed NULL Pointer Dereference Causing Server Crash from Specific Query
- Fixed Not-ready Set in System Tables When Filtering with Subqueries
- Fixed Subcolumn Reading After ALTER ADD COLUMN Query
- Fix boolean literals in external database query for PostgreSQL
- Fix Formatting of Aliased JOIN ON Expression in Queries
- Fix cluster() for inter-server secret preservation
- Fix runtime error in Array field conversion with nulls
- Fix deadlock in Context::getDDLWorker
- Fix KeeperMap Table Creation After Incomplete Drop
- Fix broken part error in s3_plain_rewritable disk restoration
- ClickHouse Fixes Bug with Disk Projections Identifying Parts as Broken
- Fix schema inference for invalid format detection
- Fix deadlock issue on query cancel with parallel replicas
- Forbid create as select in ClickHouse, even with heavy create setting enabled
- Fix exception handling in numbers reading with max_rows_to_read limit
- Add type conversion to lagInFrame and leadInFrame functions
- TRUNCATE DATABASE Fixes Replication Issue
- Use Separate Client Context in clickhouse-local
- Fix error: Cannot convert column due to non-constant source stream in Merge table query
- Correct ORDER BY all behavior with disabled enable_order_by_all and parallel replicas
- Fix Input Format Max Bytes Usage in Schema Cache
- Fix memory leak in count distinct for nullable key during group by error
- Fix OUTER JOIN to INNER JOIN Optimization Error
- Fix for Unsupported Conversion Error in AggregateFunction Optimization
- Fix hung query with empty tuple in IN function
- Fix stack overflow in deep nested JSON handling by skipping unknown fields
- Fix ReplicatedMergeTree table attachment after startup exception
- Fix segfault in Aggregator due to thread group detachment
- Fix Non-Deterministic Function Case in Primary Key
- Fixed bloom_filter index issues with unusual query conditions
- Correctly Parse File Name/URI with "::" Not in Archive
- Fix Task Wait Logic in WriteBufferFromS3 When Canceled
- Protect Temporary Part Directories During Restore
- Fix Nested Short-Circuit Function Execution
- Fix logical error in remote query GROUP BY with zero rows issue
- Fix NULL Handling in Tuple Joins for Query Analyzer
- Fix redundant reschedule in FileCache for non-evictable cache
- Fix HTTP Interface for Stream Insertion in Kafka, RabbitMQ, NATS
- Fix toStartOfWeek Function for DateTime64 Accuracy
- Fix Recursive CTE View Creation
- Fix logical error in filesystem cache related to buffer end position.
- Fixes #62282: Parameterized View Substitution Issue with Multiple Datatypes
- Fix Crash and Update Default Frame Type for percent_rank in SQL Window Functions
- Fix SQL UDF Reloading with UNION to Prevent Invalidations on Server Restart
- Fix logical error with experimental Variant type in function if using Tuples and Maps
- Bug in Linux Kernel Causes Query Hang in TimerDescriptor::drain
- Fix RESTORE ON CLUSTER Command Completion
- Fix dictionary hang during loading with CANNOT_SCHEDULE_TASK
- Fix for Queries with Bloom Filter Indexes on Column c in ClickHouse
- Fix aggregation results in queries without keys and filters
- Validate Experimental Data Types in ALTER ADD/MODIFY COLUMN
- Fix DateTime64 Parsing in Distributed Queries
- Fix count() result with non-deterministic function in predicate
- Fixed Maximum Thread Soft Limit Calculation in Containerized Environments
- ClickHouse Updates Handling of Non-Disk Projections
- Fixed Unintended Data Rewrite by Enhancing Mutation Analyzer
- Removes Incorrect Optimization Affecting Sorting in Subqueries with OFFSET
- Fix Block Structure Mismatch in AggregatingStep Stream for Optimization
- Fix Postgres crash on query cancellation
- Fix missing sync replica mode in SYSTEM SYNC REPLICA query
Build/Testing/Packaging Improvement
4Experimental Feature
5New Feature
13- Added deduplicate_merge_projection_mode setting for MergeTree engine projections
- Add _etag virtual column for S3 table engine
- Added Tagging Mechanism for Query Cache in ClickHouse
- Support Enhanced JOIN Strictness with Inequality Conditions
- Interpretation of Hive-Style Partitioning for Various Data Engines
- Add printf function for Spark compatibility
- Add Options to Replace External Engines with Null for Testing in RESTORE and Table Creation
- Added support for reading MULTILINESTRING geometry in WKT format
- Add fuzzQuery Function for Random Query Variations
- Add SQL query to drop all detached partitions
- Add rows_before_aggregation_at_least Statistic to Query Response
- Support OPTIMIZE Query on Joined Tables to Reduce Memory Footprint
- Allow Instant Query Execution in Play with URL Parameter
Improvement
25- Setting allow_experimental_analyzer Renamed to enable_analyzer as Analyzer Goes to Production
- Improve DateTime Schema Inference and Parsing in ClickHouse
- ClickHouse Introduces max_keep_alive_requests Setting for HTTP Connections
- Various Improvements in Advanced Dashboard
- Do not require a grant for REMOTE in Distributed table creation
- Do not pass logs for keeper in Docker image to allow overriding
- Introduced use_same_password_for_base_backup settings for BACKUP and RESTORE queries
- Ignore async_load_databases for ATTACH query
- Added Logs and Metrics for Rejected Connections Due to Resource Limitations
- Support UUID Type for MongoDB in ClickHouse
- Add Replication Lag and Recovery Time Metrics
- Add DiskS3NoSuchKeyErrors Metric
- Ensure COMMENT Clause Compatibility with All Table Engines
- Function mapFromArrays Enhancements: Supports Map as First Argument and Nullable Array Types
- Read Configuration for clickhouse-local from ~/.clickhouse-local
- Rename setting input_format_orc_read_use_writer_time_zone to input_format_orc_reader_timezone and allow user to set reader timezone
- Decrease Socket Not Connected Error on Immediate HTTP Connection Reset
- Add Configurable Dashboard Loading for system.dashboards
- New CamelCase Aliases for SQL Window Functions in ClickHouse
- Autodetect Non-XML/YAML Configuration File Format
- Functions formatDateTime and formatDateTimeInJodaSyntax Accept Optional Format Parameter
- Automatically Retry Keeper Requests on Timeout or Connection Loss in KeeperMap
- Add -no-pie to Aarch64 Linux builds for better stacktrace introspection after ClickHouse restart
- Added Profile Events for Merges and Mutations Introspection
- Remove Unnecessary Logs for Non-Replicated MergeTree
Performance Improvement
8- Default Enabled: optimize_functions_to_subcolumns
- Store plain_rewritable disk metadata in __meta layout with flat directory structure
- Improve Memory Reservation for Column Squashing in INSERT Queries
- Speed up SYSTEM FLUSH LOGS and shutdown log flushing
- Improved Merge Performance by Reducing Scheduling Overhead
- Speed up tables removal for DROP DATABASE by increasing database_catalog_drop_table_concurrency to 16
- Avoid Excessive Capacity Allocation for Array Columns in ORC to Improve Performance by 15%
- Speed up mutations for non-replicated MergeTree