v.20.6
Backward Incompatible Changes
1Bug Fix
76- Fixed error with any() function inside aggregate functions in query
- Fixed PrettyCompactMonoBlock for clickhouse-local and resolved issues #7746 and #13394
- Fixed error with totals in delayed replica queries
- Server Crash Fix for h3ToChildren Function (Issues #13275, #13277)
- Fixed Performance and Accuracy Issues in Float Aggregate Functions with NaN Values
- Fixed function if with nullable constexpr condition not being literal NULL
- Fixed Nullable Handling in arrayElement Function
- Fixed DateTime64 Conversion Functions with Constant Argument
- Fixed Index Analysis Issues in MergeTree Tables
- Fixed Error for Remote Queries with Non-Deterministic Functions
- Fixed Thread Limiting for Local Replica Selects
- Fixed bugs in simultaneous ALTER queries leading to incorrect row counts and data issues
- Fixed CAST of Nullable String with Enum in ClickHouse
- Fixed Performance Issue with Large Tuples in IN Clause
- Fixed Memory Tracking for Input Format Parallel Parsing
- Fixed bloom filter index with const expression, addressing issue #10572
- Fixed SIGSEGV in StorageKafka when broker is unavailable
- Added `if` function support for `Array(UUID)` arguments
- CREATE USER IF NOT EXISTS no longer throws an exception if the user exists
- Better Exception Message in Disk Access Storage
- Fix for groupArrayMoving and groupArrayMovingAvg Functions in Distributed Queries
- Fixed Aliases for Function Any
- Fixed race condition in external dictionaries causing server crash
- Remove Async INSERT Blocks Data on DROP TABLE for Distributed Tables
- Fixed Bug Causing Broken Parts After ALTER DELETE Query with Mixed Granularity Enabled
- Better exception handling for invalid argument count in function 'in'
- Fix race condition in live view tables to prevent data duplication
- Fixed performance issue in reading from compact parts
- Fixed Backwards Compatibility in AggregateFunction(avg) Binary Format
- Fixed SETTINGS Parse After FORMAT
- Fixed Deadlock with Enabled text_log
- Fixed Overflow Issues with Large LIMIT and OFFSET in ClickHouse
- Fixed Segfault in StorageMerge Functionality
- Reverted Change from #11079 to Resolve #12098
- Additional Argument Check for Bloom Filter Index Fixes Issue #11408
- Avoid Exception with Negative or Floating Point Constants in WHERE Condition for Indexed Tables
- Allowed to CLEAR column with DEFAULT expressions, addressing issues #12333 and #12378
- Fix TOTALS/ROLLUP/CUBE for Aggregate Functions with -State and Nullable Arguments
- Fixed Error Messages and Exit Codes for ALTER RENAME COLUMN Queries
- Fixed rare race condition in ReplicatedMergeTreeQueue
- Fix Exception Handling for Codec Delta and DoubleDelta in Non-Fixed Width Types
- Fixed Column Order in WITH FILL Modifier
- Fix "bad cast" exception for nullable filters on virtual and index columns
- Fixed TTL After Column Renaming Dependency
- Fixed SIGSEGV in Kafka Engine for batch errors
- Fixed thread hangs during DNS cache updates
- Fixed Typo in Setting Name
- Show error on TrieDictionary load failure
- Fix arrayFill function crash for empty arrays
- Implement LowCardinality Type Conversions for UNION ALL Support
- Fixed Redirect Limit Handling for S3 Storage
- Fixed Multiple Sequential Inserts in StorageFile Header
- Fixed Logical Functions for UInt8 Values
- Cap max_memory_usage limits to process resident memory
- Fix dictGet Arguments Check in GROUP BY Functions Elimination
- Fixed SummingMergeTree Behavior for Partition Key Columns
- Don't Split Table Name into Schema and Table if ODBC Lacks Schema Support
- Fixed Logic in ALTER DELETE to Prevent NULL Condition Record Deletion
- Fixed Query Transformation for External DBMS with Aliases
- Fixed Bug in ORDER BY Optimization
- Fixed Integer Division Overflow Issue #12119
- Fixed Infinite Loop in greatCircleDistance and geoDistance Functions
- Normalize PID file handling in server startup to prevent conflicts and ensure proper shutdown.
- Fixed ZooKeeper Metadata Bug for ReplicatedVersionedCollapsingMergeTree Tables
- Avoid "There is no query" Exception for Materialized Views with Joins or Subqueries
- Fixed Dependency Handling for ENGINE=Dictionary Table
- Parquet Format Support for LowCardinality Types Fixes and Enhancements
- Fixed Select Performance with UNION by Correcting Thread Limit
- Fixed segfault with -StateResample combinators
- Fixed Empty Metrics in system.query_log for Selects
- Fixed Thread Limit for SELECTs from VIEW
- Fixed SIGSEGV in StorageKafka on DROP TABLE
- Fixed Crash Issue with PREWHERE Type Handling
- Fixed "Cannot capture column" Error for Higher-Order Functions with Tuple(LowCardinality) Argument
- Fixed Constant Expression Constraint Check in ClickHouse
- Fixed Result and Crash Issue with FixedString Arguments in `if` Function
Build/Testing/Packaging Improvement
15- Implement AST-Based Query Fuzzing for ClickHouse Client
- Add Tests Based on Testflows Framework
- Added S3 HTTPS Integration Test
- Log sanitizer trap messages from separate thread to prevent deadlock
- Now supports running functional and stress tests with old clickhouse-test script version
- Remove strange file creation during orc build
- Place Docker Compose Files in Integration Docker Container
- Fix CodeQL Warnings in ClickHouse Codebase
- Minor CMake Fixes for UNBUNDLED Build
- Showcase of Minimal Docker Image without Linux Distribution
- Upgrade System Packages in ClickHouse Docker Image
- Add UNBUNDLED Flag and Move Skip Lists to ClickHouse Repo
- Regular Security Checks for ClickHouse Docker Image using Anchore Tool
- Daily Security Check Using GitHub CodeQL for CWE Analysis
- Install ca-certificates Before First apt-get Update in Dockerfile
Experimental Feature
1Improvement
11- Allowed Standardization of JOIN Syntax to LEFT SEMI JOIN
- lifetime_rows/lifetime_bytes Added for Buffer Engine
- Write Detailed Exception Message for MySQL Server Issues
- Change Charset for Grid Borders in Output Format
- Supported MySQL SELECT DATABASE() and Added Integration Test
- Added KILL QUERY command for MySQL client to cancel long-running queries
- Added ISO Year Support in formatDateTime Function
- Added 'type' column in system.disks
- Improved REVOKE Command with Conditional Grant/Admin Option Requirements
- Added Replica Priority for Load Balancing
- Switched S3 Metadata Paths to Relative for Easier Blob Handling
New Feature
8- Added Initial Implementation of EXPLAIN Query in ClickHouse
- Added RabbitMQ storage support
- Implemented PostgreSQL-like ILIKE Operator for ClickHouse
- Supported RIGHT and FULL JOIN with partial_merge join algorithm
- Added initializeAggregation function for single value initialization
- Supported ALTER TABLE ... [ADD|MODIFY] COLUMN ... FIRST
- Added parseDateTimeBestEffortUS Function
- Support ORC format for output in ClickHouse