v.20.12
Backward Incompatible Changes
2Bug Fix
58- Fix rare server connection issue
- Fixed Function Not Implemented Error for RENAME Query in Atomic Database on WSL
- Do Not Restore WAL Parts When in_memory_parts_enable_wal is Disabled
- Fix Initialization of max_compress_block_size in MergeTreeWriterSettings
- Exception message for max table size drop displayed incorrectly
- Fixed Segfault Issue When Inserting into Distributed Table
- Fixed ClickHouse MySQL Connection Resumption Issue
- Fix race condition in determining cluster replication type for ON CLUSTER queries
- Exception fmt::v7::format_error Logged in Background for MergeTree Tables
- Fix Issue with Single Line Comments in Interactive Mode in ClickHouse Client
- Fix alter query hang due to killed mutation on different replica
- Fix underestimated mark cache size issue in ClickHouse
- Fix ORDER BY with optimize_redundant_functions_in_order_by setting
- Fix Duplicates After DISTINCT Due to Incorrect Optimization
- Fix crash when reading JOIN table with LowCardinality types
- Fix toInt256(inf) Stack Overflow Issue
- Fix Unexpected Packet Data Error in Distributed Queries with LIMIT
- Fix Set Index Invalidation for Subquery with Const Columns
- Fix Index Analysis for Type Mismatches (Issue #17122)
- Fix ColumnConst Comparison to Prevent Crash
- Multiple Fixes for MaterializeMySQL Experimental Feature
- Fix ON CLUSTER Query Hang Issue for Non-Leader ReplicatedMergeTreeTables
- Fixed crash on CREATE TABLE AS query when source table is created from table function
- Bug in Unfinished Implementation of fuzzBits Function
- Fix CFA Register Handling in LLVM's libunwind for RAX
- Avoid Network Errors in Cancellable Remote Queries
- Fix optimize_distributed_group_by_sharding_key for OFFSET queries
- Fix Merge Tables over Distributed Tables with JOIN
- Fixed Casting Error for Big Integers from Double
- Fix server crash during ALTER TABLE with uncompleted modifications
- Blame Info Calculation Error in clickhouse-git-import
- Fix Order By Optimization with Monotonous Functions
- Fix Optimization of Group By with Enabled Aggregator Optimization Setting
- Fix Illegal Argument Error for ORDER BY Queries
- Fix code in InterpreterShowAccessQuery function
- Prevent ClickHouse Server Crashes with timeSeriesGroupSum Function Removal
- Fix Silent Crashes in Query Profiler on Incompatible glibc Versions
- Fix crash when using any without arguments
- Memory Allocation Failure Can Corrupt Table Metadata File
- Fix trivial query optimization with partition predicate
- Fix IN Operator for Multiple Columns with Transform Null IN Setting
- Return Affected Rows for INSERT Queries in MySQL Protocol
- Fix remote query failure with 'if' suffix aggregate function
- Fix Inconsistent Behavior of select_sequential_consistency in Trivial Count Query and system.tables
- Fixed issues with clickhouse-odbc-bridge and ODBC dictionary updates
- Fixed Enum and Int Key Comparison Issue
- Fixed Unique Key Convert Crash in MaterializeMySQL Database Engine
- Fixed std::out_of_range in S3 URL parsing
- Fixed MySQL to ClickHouse Table Synchronization Issues with Prefix Index Support
- Fixed Query Optimization Issue with ARRAY JOIN
- Fixed Segfault in topK Aggregate Function
- Fixed empty system.stack_trace table in daemon mode
- Disable AIO Write During Merges to Prevent Data Corruption
- Fixed parsing error in toType functions for Nullable(String) arguments in ClickHouse
- Restrict Merges from Wide to Compact Parts to Prevent Broken Results
- Fix for Filling Table system.settings_profile_elements
- Fix Crashes in Aggregate Functions with Distinct in Two-Level Aggregation
- Fix TTL Removal in MODIFY COLUMN Query
Build/Testing/Packaging Improvement
7- Improvements in Test Coverage for Building Images
- Update timezone data to version 2020d and cctz to latest master
- Fix UBSan Report in Poco for Issue #12719
- Do Not Instrument 3rd-Party Libraries with UBSan
- Fix UBSan Report in Cache Dictionaries
- Fix UBSan Report for Infinite Floating Point to Integer Conversion
- Update timezones info to 2020e
Experimental Feature
1Improvement
25- Remove Empty Parts After Pruning in ClickHouse
- Enable Compact Format for Asynchronous Sends in Distributed Tables
- Abort Multipart Upload if No Data Written to S3
- Reresolve IP for format_avro_schema_registry_url on errors
- Mask Password in data_path of system.distribution_queue
- Throw Error for Non-Existing Column Replacement in Column Transformer
- Turn Off Parallel Parsing When Memory is Insufficient
- Install script should create subdirs in config folders for Docker builds with custom config
- Correct grammar in error messages for JSON input formats
- Set Default Parameters for SOURCE(CLICKHOUSE) to Current Instance
- Informative error message for ATTACH/DETACH TABLE in ClickHouse
- Add cutToFirstSignificantSubdomainWithWWW() function
- Server Startup Failure Due to Missing Config Parameter
- Better Exception Message for Missing Distributed DDL Configuration
- Usability Improvement: Enhanced Syntax Error Messages for Misplaced CODEC in CREATE TABLE Queries
- Remove empty directories for async INSERT in Distributed engine
- Workaround for S3 and Nginx Proxy URL Handling Issue
- Allow reinterpretAs functions for integers and floats of the same size
- Auxiliary Zookeepers Configuration Reloadable Without Server Restart
- Support SNI in HTTPS Connections to Cloudflare Servers
- Enable SNI Connection for Clickhouse Server Secure Endpoint Behind TLS Proxy
- Fix stack overflow risk in materialized views loop
- Simplify Background Task Processing for MergeTree Table Engines
- Improvement for MaterializeMySQL: Exception for Insufficient MySQL Sync Privileges
- Made indexOf() use BloomFilter
New Feature
12- Add support for *.xz compression in file() function
- Introduce ALTER TABLE ... DROP|DETACH PART Query
- Added ALTER UPDATE/DELETE IN PARTITION Syntax
- Allow JSON Formatting for Named Tuples in ClickHouse
- Add Default Enum ID Input for TSV and CSV Formats
- Add COLLATE Support for Nullable, LowCardinality, Array, and Tuple with String Nested Type
- New tcpPort Function for Retrieving Server TCP Port
- Add New Math Functions to ClickHouse
- Possibility to Distribute Merges Across Replicas with New Setting
- Add aggregate_functions_null_for_empty setting for SQL standard compatibility
- Updated DateTime and DateTime64 Parsing to Accept String Date Literals
- Allow Custom History File Path in ClickHouse Client with --history_file Parameter
Performance Improvement
7- Use Floyd-Rivest Algorithm for Optimal Partial Sorting in ClickHouse
- ReplicatedMergeTree Now Utilizes Separate Thread Pool for Fetches
- Fixed Uncontrolled Growth of quantileTDigest State
- Add VIEW Subquery Support and Optimizations to EXPLAIN
- Fix optimize_read_in_order and optimize_aggregation_in_order for ORDER BY with max_threads > 0
- Fix Performance for Reading from Merge Tables with Multiple MergeTree Tables
- Now supports safe partition pruning with exact match conditions