v.20.8
Bug Fix
132- Server Log Rotation Issue with Large Numeric Values in logger.size Parameter
- Fixed Initialization of max_compress_block_size in MergeTreeWriterSettings
- Fixed ClickHouse MySQL Connection Resumption Issue
- Fixed ALTER Query Hang Issue with Killed Mutation on Different Replica
- Fixed Cache Size Bug in ClickHouse for Tiny Files
- Fixed ORDER BY with optimize_redundant_functions_in_order_by setting
- Fixed ColumnConst Comparison Crash Issue #17088
- Fixed ON CLUSTER Query Hang Bug in Non-Leader ReplicatedMergeTreeTables
- Avoid Network Errors for Cancelled Remote Queries
- Reresolve IP for format_avro_schema_registry_url on errors
- Fixed server crash during ALTER TABLE with active SELECT WHERE expression
- Install script creates subdirs in config folders for Docker builds
- Fixed "Illegal type of argument" error for ORDER BY queries
- Abort Multipart Upload If WriteBufferFromS3 Is Empty
- Fixed Crash When Using Any Without Arguments
- Fixed IN operator with transform_null_in setting in ClickHouse
- Fixed Behavior of optimize_read_in_order and optimize_aggregation_in_order with max_threads > 0 and ORDER BY Expression
- Fixed Query Optimization Issue with ARRAY JOIN
- Query Execution Improvements: Fast Cancellation on Exceptions
- Disable AIO Write During Merges to Prevent Data Corruption
- Fixed Parsing Error for Nullable String in toType Functions
- Fix Crashes in Aggregate Functions with Distinct during Two-Level Aggregation
- Fix If Combinator with Unary Function and Nullable Types
- Restrict Merges from Wide to Compact Parts to Prevent Broken Results
- Fix Data Clobbering Issue Caused by Progress Bar in Interactive Mode
- Fixed Sorting Order for LowCardinality Column in Multi-Column Sorts
- Check for Array Size Overflow in topK Aggregate Function
- Fix bug causing incorrect merges assignment with single-partition tables
- Stop Query Execution on Exception in PipelineExecutor
- Fix crash during ALTER query for table created AS table_function
- Fix ALTER LIVE VIEW Exception with REFRESH Command
- Fix QueryPlan Lifetime for Nested Interpreter Queries in EXPLAIN PIPELINE
- Fix segfault in clickhouse-odbc-bridge during schema fetch from external sources
- Fix Crash in Mark Inclusion Search
- Fix Table Creation with Named Tuples in ClickHouse
- Fix Formatting of Minimal Negative Decimal Numbers
- Fix DistributedFilesToInsert Metric Issue
- Fix pointInPolygon Function to Support Const 2D Array as Polygon
- Fixed mount point for Poco::Exception 'no space left on device'
- Fix GRANT ALL Statement for Non-Global Level Execution
- Fix parser to reject create table as table function with engine
- Fix SELECT queries with DISTINCT in subqueries when optimize_duplicate_order_by_and_distinct is enabled
- Fixed Deadlock Issue When Renaming Distributed Table
- Fix Sorting Issue for FixedString Columns in Multi-Column Sort
- Fix imprecise result in topK/topKWeighted merge with non-default parameters
- Fix NULL Comparison Issue in MergeTree Table with SET INDEX
- Fix arrayJoin capturing in lambda (LOGICAL_ERROR)
- Add step overflow check to range function
- Fixed Directory Not Empty Error During Concurrent DROP DATABASE and CREATE TABLE Operations
- Add Range Check for h3KRing Function to Fix Issue #13633
- Fix Race Condition Between DETACH and Background Merges
- Fix Logging for log_queries_min_type Greater than QUERY_START
- Fix /replicas_status Endpoint Response Code with verbose=1
- Fix Message in clickhouse-server.init for User and Group Check
- Do Not Optimize arrayJoin() Under optimize_move_functions_out_of_any Setting
- Fix crash in JOIN with StorageMerge when enabling predicate expression optimization
- Fix typo in error message for number_of_free_entries_in_pool_to_lower_max_size_of_merge setting
- Concurrent ALTER queries deadlock issue resolved
- Fixed Cache-Dictionary Default Value Issue
- Fix Secondary Indices Corruption in Compact Parts
- Fix Premature ON CLUSTER Timeouts for Single Replica Queries
- Fix bug in netloc function related to issue #13335
- Fix Race Condition in StorageMemory
- Fix Header Issues in TSV/CSVWithNames Formats for HTTP Protocol
- Fix Parsing Row Policies for Databases or Tables with Dots
- Fix Redis Dictionary Access After Connection Drop
- Removed Incorrect Auth Access Check for ClickHouseDictionarySource
- Properly Distinguish Subqueries for Common Subexpression Elimination
- Fix "Memory limit exceeded" error in extractAllGroups function
- Fix SIGSEGV on INSERT into StorageFile
- Fix Rare Error in SELECT Queries with Dependent DEFAULT Expressions
- Fixed Default Database Name in Materialized View Metadata
- Fix Bug in ALTER UPDATE Mutation with Nullable Column
- Fix Decimal Multiplication Result Due to Incorrect Scale
- Added Checker for Nullable Result Accuracy in ClickHouse
- Cleanup data directory after Zookeeper exceptions in CreateQuery for StorageReplicatedMergeTree Engine
- Fix rare segfaults in -Resample function due to overflow with large parameters
- Fix Resource Destruction Order in ReadFromStorage Step to Prevent Crashes
- Fixed "Element ... is not a constant expression" error with JSON function in VALUES, LIMIT, or IN operator
- Prevent "Could not calculate available disk space" Error Message
- Significant Memory Usage Reduction in AggregatingInOrderTransform
- Mutation Fix for Hanging After Partition Operations in ClickHouse
- Fix ILIKE Case Insensitivity Bug After LIKE Execution
- Fix Missing Columns Errors in Data Selection
- Fix DDLWorker Event Subscription Bug Causing Query Hangs
- Report error for incorrect type in boundingRatio aggregate function
- Fix race condition in MergeTree table rename and cleanup
- Fix rare race condition on server startup with system.logs enabled
- Fix MSan Report for Uninitialized Memory in QueryLog
- Fix instance crash with joinGet and LowCardinality types
- Fix Buffer Table Engine Bug Preventing Data Insertion After ALTER Query
- Adjust MySQL Column Definition for Decimals Field Size
- Padded Comparison Logic for FixedString Primary Keys in ClickHouse
- Buffer Overflow Vulnerability in Function 'bar' Resolved
- Fixed Invalid Argument Error on DDL Query Execution in ClickHouse on Mac OS
- Now settings number_of_free_entries_in_pool_to_execute_mutation and number_of_free_entries_in_pool_to_lower_max_size_of_merge can equal background_pool_size
- Fix Predicate Push Down for Subqueries with finalizeAggregation Function
- Publish CPU Frequencies per Logical Core in system.asynchronous_metrics
- Fixed .metadata.tmp File Exists Error in MaterializeMySQL Database Engine
- Fix Server Startup Hang When Fetching Configuration from ZooKeeper
- Fix Monotonicity Detection for Int->Int Cast in Signed Types
- Fixed Incorrect Sorting Order of Nullable Column
- Fix double free issue in dictGet function during exception handling
- Fix Group By with Totals/Rollup/Cube Modifiers and Min/Max Functions
- Fix Async Distributed INSERT with prefer_localhost_replica=0 and Internal Replication
- Fix Memory Leak in GROUP BY with String Keys in TwoLevelStringHashTable
- Fix Memory Overallocation Issue (#14560)
- Fix ALTER MODIFY query hang for ReplicatedVersionedCollapsingMergeTree
- Fix Collate and Charset Name Parser with Support for Length = 0 in String Type
- Allow Direct Layout for Dictionaries with Complex Keys
- Prevent Replica Hang During Inactivity After Replication Error
- Fix rare segfaults with MaterializedView and concurrent table drops in Atomic engine
- Fix Ambiguity in Parsing User Settings Profiles
- Fix database creation crash issue
- Fixed concurrency issues with DDL operations in Atomic database engine
- Fix Empty Result Issue for Distributed Table Queries with WHERE, PREWHERE, and GLOBAL IN
- Fix RBAC Deadlocks
- Fix Block Structure Mismatch in SELECT Queries After Altering Columns
- Fix for Not Found Column Exception in Virtual Column Queries
- Fix "Cannot find column" error during MATERIALIZED VIEW insertion with ARRAY JOIN
- Fixed max_replicated_logs_to_keep default value and improved lost replica recovery process
- Fix error 'Cannot add simple transform to empty Pipe' in Buffer table reading
- Fixed S3 Table Function Bug with Globs and Region Configuration
- Decrement ReadonlyReplica Metric When Detaching Read-Only Tables
- Throw Error for Single Parameter in ReplicatedMergeTree Instead of Ignoring
- Fix Silent Crashes in Query Profiler on Glibc with Asynchronous Unwind Issues
- Fix LowCardinality Parsing Issue in AVRO Input Handling
- Fix Metadata Growth with MySQL Slave and ClickHouse MaterializeMySQL Engine
- Fix DROP TABLE for Distributed to Avoid Race Condition with INSERT
- Fix Handling of Large Entries in Replication Queue
- Fixed Inconsistent Data Return Behavior Due to Missing Filtration Set
- Fix MySQL Database Bug Causing Unnecessary Exceptions on Querying Disabled Server
Backward Incompatible Changes
4Build/Testing/Packaging Improvement
24- Added clickhouse install script for single binary usage
- Allow execution of clickhouse binary without configuration
- Enable Typos Check in Code with codespell
- Enable Shellcheck Linter for .sh Tests in CI
- Add CMake Option for Failing Configuration by Default
- Expose tzdata version in system.build_options
- Improve system.time_zones table generation during build
- Build ClickHouse with Latest tzdata from Repository
- Add JS-style comments to skip_list.json
- Ensure No Copy-Pasted GPL Code
- Switch Docker Images for Tests to Use Test-Base Parent
- Adding Retry Logic and Increasing COMPOSE_HTTP_TIMEOUT for Docker-Compose Cluster
- Enabled system.text_log in stress test to identify more bugs
- Testflows LDAP Module: Add Missing Certificates and dhparam.pem for OpenLDAP4
- ZooKeeper Unit Tests in CI: Integration Tests Recommended for Distributed Systems
- Added Docker Image and Style Check for Docker Directories
- Fix Cassandra Build on Mac OS
- Fix link error in shared build #13700
- Updating LDAP Authentication for RBAC Compatibility
- Removed ENABLE_CURL_CLIENT for contrib/aws
- Increasing health-check timeouts and logging support for ClickHouse containers
- Ensure #10977 is invalid, related to #13539 by Amos Bird
- Skip PRs from robot-clickhouse #13489
- Move Dockerfiles to docker/test Directory
Experimental Feature
2Improvement
33- Disallow CODEC on ALIAS column type
- Use Configurable Timeout for Dictionary Update Waits
- Add min_index_granularity_bytes Setting to Prevent Low index_granularity_bytes Configuration
- Fetch Partitions from Different ZooKeeper Clusters in ClickHouse
- Slight Performance Improvement of Memory Table with Small Block Construction
- Conditional Aggregate Functions Handling NULLs When Missing Rows
- Increase Resample Combinator Limit to 1 Million
- Corrected AvroConfluent format error in Kafka table engine
- Fix Incorrect Error Message for Long Queries
- Better error message for null value in TabSeparated format
- Function arrayCompact Now Compares NaNs Bitwise for Float32/Float64 Types
- Fix data race in lgamma function detected by tsan
- Avoid Slow Queries on Array Manipulations in ClickHouse
- Added Redis requirepass authorization for dictionary source
- Add MergeTree Write-Ahead-Log Dump Tool
- Fix lcm Function Assertion Violation in Debug Build
- Enhance Monotonicity for toDate/toDateTime Functions in ClickHouse
- Support Compound Identifiers for Custom Settings in ClickHouse Integration
- Move Parts from DiskLocal to Experimental DiskS3 in Parallel
- Enable Mixed Granularity Parts by Default
- Proper Remote Host Checking in S3 Redirects
- Add QueryTimeMicroseconds Metrics to system.events
- Fix Debug Assertion for Large Negative Exponent in Decimal
- Added Local Disk Cache for Experimental DiskS3 Feature
- Fix readline to save command history to file
- Create system database with Atomic engine as default
- Speed up server shutdown during ongoing S3 requests
- Allow Multi-Volume Storage Configuration in Distributed Storage
- Speed Up Server Shutdown with Ongoing S3 Requests
- Support Custom Codecs in Compact Parts
- Update: ALTER Query for Version Column in VersionedCollapsingMergeTree
- Allow ALTER ... ON CLUSTER Queries Regardless of Internal Replication Setting
- Unfold database, table, and uuid macros in ReplicatedMergeTree arguments on table creation
New Feature
11- Add Default Compression Codec Specification for Columns in config.xml
- Support Kerberos Authentication in Kafka with krb5 and cyrus-sasl Libraries
- Add normalizeQuery and normalizedQueryHash Functions for Query Analysis
- Add time_zones table
- Add default value function for type retrieval
- Add countDigits and isDecimalOverflow functions to ClickHouse
- Add quantileExactLow and quantileExactHigh Implementations with Aliases for medianExactLow and medianExactHigh
- Added date_trunc Function for Date/Time Truncation
- Add <user_directories> section to main config
- Add ALTER SAMPLE BY statement to modify table sample clause
- Function position Enhances with Optional start_pos Argument
Performance Improvement
6- Slight optimization of short queries using LowCardinality
- Enable Parallel INSERTs for Null, Memory, Distributed, and Buffer Table Engines
- Fail Fast on Exceeding max_rows_to_read Limit in Parts Scan
- Slightly Improve Aggregation Performance with UInt8/UInt16 Keys
- Optimize Array Functions for LowCardinality Types
- When Performing Trivial INSERT SELECT Queries, Adjust max_threads and max_block_size Automatically