v.20.11
Backward Incompatible Changes
6- Fix: Distributed DDL Profile Settings No Longer Affect Global Server Settings
- Restrict Use of Non-Comparable Data Types in Keys
- Remove ANALYZE and AST Queries, Make enable_debug_queries Obsolete
- Aggregate Functions Restored to Case Sensitivity in ClickHouse
- Make rankCorr function return NaN on insufficient data
- Preventing Part Intersection Errors During ClickHouse Upgrade from Versions Older than 20.5
Bug Fix
107- Mask Password in data_path for system.distribution_queue
- Fix IN Operator Handling with transform_null_in Setting
- Fix max_parallel_replicas Setting for Tables Without Sampling
- Fix ORDER BY optimization with max_threads > 0
- Fix name collision issues in DEFAULT expression calculations
- Fix query_thread_log.query_duration_ms Unit
- Fix Bug in MySQL to ClickHouse MaterializeMySQL Engine
- Fix integer division by zero in round function using Decimal
- Fix DROP TABLE for Distributed Racy with INSERT
- Fix Large Entry Processing in Replication Queue
- Fixed Inconsistent Data Return Due to Missing Filtration Set
- Fix dictGet in sharding_key and related functions
- Fix exception in clickhouse-local during OPTIMIZE command execution
- Fix regression in indexOf function for LowCardinality types
- Fix MySQL Database Bug Causing Unnecessary Exceptions When Server is Down
- Now Exception Thrown for Incompatible DEFAULT in ALTER MODIFY COLUMN
- Fixed IPv4CIDRToRange/IPv6CIDRToRange Functions to Accept Const IP-Column Values
- Fix Silent Crashes in ClickHouse Profiler on Certain glibc Versions
- Fixed issues with clickhouse-odbc-bridge on dual IPv4/IPv6 stacks and ODBC dictionary updates.
- Fixed Enum and Int Key Comparison Issue 17989
- Fixed Unique Key Convert Crash in MaterializeMySQL Database Engine
- Fixed std::out_of_range in S3 URL parsing
- Fixed MySQL to ClickHouse Table Synchronization Issue Relating to Prefix Index Conversion
- Fixed query optimization issue with ARRAY JOIN yielding incorrect results
- Fix segfault in topK aggregate function
- Do not restore WAL parts if in_memory_parts_enable_wal is disabled
- Fixed ClickHouse Connection Resumption Issue with MySQL Servers
- Fixed behavior of optimize_trivial_count_query with partition predicate
- Fixed empty system.stack_trace table in daemon mode
- Fixed Logging Behavior for fmt::v7::format_error in MergeTree Tables
- Fixed multiline query handling in clickhouse-client interactive mode
- Fixed rare server connection acceptance issue
- Fixed Alter Query Hang Linked to Killed Mutation on Different Replica
- Fixed Bug with Underestimated Mark Cache Size in ClickHouse
- Fixed ORDER BY with optimize_redundant_functions_in_order_by setting
- Fixed Duplicate Issues Caused by Incorrect DISTINCT Optimization
- Fixed Crash When Reading JOIN Table with LowCardinality Types
- Fixed Set Index Invalidation with Const Columns in Subquery
- Fixed Index Analysis for Type Mismatches
- Fixed ColumnConst Comparison Crash Issue
- Fixed ON CLUSTER Query Hang in Non-Leader ReplicatedMergeTreeTables
- Fixed fuzzer-found bug in fuzzBits function
- Avoid Network Errors for Cancelled Remote Queries
- Fixed Big Integer Casting Issue from Double
- Reresolve IP for format_avro_schema_registry_url on errors
- Fixed server crash during ALTER TABLE with ongoing SELECT query
- Blame Info Calculation Error in clickhouse-git-import
- Fixed Order By Optimization with Monotonous Functions
- Fixed Group By Optimization with Joins in ClickHouse
- Install Script: Ensure Subdirs in Config Folders for Docker Builds
- Fixed Illegal type of argument error for ORDER BY queries
- Abort Multipart Upload When No Data Written to WriteBufferFromS3
- Fixed Crash with 'any' Function Without Arguments
- Fixed ClickHouse to return correct row count for INSERT queries via MySQL protocol
- Fixed Uncontrolled Growth of TDigest
- Fixed remote query failure with 'if' suffix in Aggregate function
- Fixed Inconsistent Behavior in select_sequential_consistency for Count Queries
- Throw Error in ColumnTransformer for Non-Existent Columns
- BloomFilter Index Crash Fix for Issue #19757
- Deadlock Fix for Enabled System Text Log
- Fix crash and infinite loop in arrayEnumerateUniq function due to unusual arguments
- Fixed Stack Overflow in Arithmetic vs. String Comparison
- Fix segmentation fault in bitmapAndnot function
- Some functions with big integers may cause segmentation fault; big integers experimental feature updated.
- Fix neighbor function result for LowCardinality argument
- Fix Use-After-Free in CompressedWriteBuffer After Disconnect
- DROP/DETACH TABLE query hang fixed in ClickHouse
- Query CREATE DICTIONARY id Expression Fix #19571
- Fix SIGSEGV with merge_tree_min_rows_for_concurrent_read/merge_tree_min_bytes_for_concurrent_read configuration settings
- Buffer Overflow Vulnerability Fixed in addMonth Function
- Mark Distributed Batch as Broken for Empty Data Blocks
- Fix Buffer Overflow in Uber H3 Library
- Fix LOGICAL_ERROR in system.parts _state column due to incorrect order
- Fix error: Cannot convert column now64() due to constant value discrepancies
- Fix concurrent ALTER and DROP query hang in ReplicatedMergeTree table
- Fix Infinite Reading from ORC Format Files
- Fix startup bug related to LowCardinality(Nullable(...)) in ClickHouse
- Fixed "There is no checkpoint" Error in HTTP Data Insertion
- Restrict MODIFY TTL Queries for MergeTree Tables with Old Syntax
- Ensure groupUniqArray Returns Correct Type for Enum Argument
- Fix error with ignore function and LowCardinality argument
- Fix LowCardinality Column Insertion in TinyLog Engine
- Disable optimize_move_functions_out_of_any due to incorrect optimization
- Fixed rare shutdown deadlock issue
- Fix serialization bug for mutations with escaped text in ClickHouse
- Attach partition should reset the mutation
- Fix Shutdown Hang in clickhouse-local
- Fix If Combinator with Unary Function and Nullable Types
- Asynchronous Distributed INSERTs Rejected with Non-default network_compression_method Setting
- Fixed EOF Error in CAST Function for Nullable String to Nullable Decimal Conversion
- Fix Logger Argument Size Mismatch
- Add FixedString Data Type Support for MySQL to ClickHouse Replication
- Fix Pipeline Stuck Error with ORDER BY After RIGHT or FULL Join
- Fix bug causing ALTER queries to hang after mutation kill
- Disable AIO Write During Merges to Prevent Data Corruption
- Disable Constant Folding for Uncalculable Subquery Results
- Fixed Nullable String Parsing Errors in toType Functions
- Restrict merges from wide to compact parts to prevent broken results
- Fix for Table Filling in system.settings_profile_elements
- Fix index analysis for binary functions with constant arguments
- Fix Crashes in Aggregate Functions with Distinct in Two-Level Aggregation
- SELECT count() Enhancement for Single Column in ClickHouse
- SELECT JOIN Requires SELECT Privilege on Joined Tables
- Fix Incomplete Query Result in MergeTree During Read Backoff
- Fix MODIFY COLUMN ... REMOVE TTL Error in ClickHouse
- Fix Indeterministic Functions with Predicate Optimizer for Issue #17244
- Mutation Hanging Issue After Certain Partition Operations Resolved
Build/Testing/Packaging Improvement
11- Add Flaky Check for Stateless Tests to Identify Potentially Flaky Functional Tests Before Merging
- Use Correct Version of croaring Instead of Amalgamation
- Improve Build File Generation for ya.make in Arcadia
- Add MySQL BinLog Check Tool for MaterializeMySQL Engine
- Check for Executable Bit on Non-Executable Files
- Check for #pragma once in headers
- Fix Illegal Code Style in libhdfs3 for libcxx Debug Build
- Fix Mac OS Build for Miscellaneous Example Tool
- Simplify Sys/V init script
- Added boost::program_options to db_generator for improved usability
- Update Timezones Info to 2020e
Experimental Feature
1Improvement
35- Treat INTERVAL '1 hour' as equivalent to INTERVAL 1 HOUR for Postgres compatibility
- Enable Enum Value Parsing by Numeric IDs for CSV, TSV, and JSON Input Formats
- Better Read Task Scheduling for JBOD Architecture with MergeTree Storage
- Add LowCardinality Support in Avro Format
- Workaround for S3 URL Handling with Nginx Proxy
- Better Diagnostics for Input Data Parse Errors
- Enhance minMap and maxMap to include zero values in results, addressing issue #16087.
- Better Runtime Update of ZooKeeper Configuration
- Apply SETTINGS Clause Early to Enhance Query Modifications
- event_time_microseconds field changes to Decimal64 from UInt64
- Parameterized Functions Supported in APPLY Column Transformer
- Improve Background Task Scheduling for Dropped Atomic Table Data Cleanup
- Subqueries in CTE can reference previous subqueries by name
- Add current_database to system.query_thread_log
- Allow Fetching Committed or Outdated Parts into Detached Directory for Migration
- Multiple RabbitMQ Improvements and Bug Fixes
- Fix Debug Assertion and Improve Data Transfer in quantileDeterministic Function
- Add TablesToDropQueueSize Metric for Dropped Tables
- Better Diagnostics for Client Connection Drops
- Add total_rows/total_bytes support for Set/Join table engines
- Primary Key Specification Enhanced for MergeTree Table Engines
- ClickHouse-Local Creates Temporary Folder if None Exists
- Add Support for Nested Data Types as Sub-Types
- Support for database atomic wait options in DROP DATABASE command
- Add allow_nondeterministic_optimize_skip_unused_shards for Sharding Keys
- Fix memory profiler settings and query_id for HTTP queries in ClickHouse
- Allow ALTER ... ON CLUSTER Queries Regardless of internal_replication Setting
- Fix clickhouse-client abort issue on exit
- Add support for cache layout in Redis dictionaries with complex keys
- Fix query hang due to misconfiguration of connections_with_failover_max_tries set to 0
- Change Log Message Level from Information to Debug
- Remove MemoryTrackingInBackground* Metrics to Prevent Misleading Results
- Add Reconnects to zookeeper-dump-tree Tool
- Allow Column Specification in CREATE TABLE AS table_function Query
- Explicitly Set Fixed UID/GID for ClickHouse User in Server Images
New Feature
21- Added LDAP Support for Non-Existent Local Users
- Add system.replicated_fetches Table for Background Fetch Monitoring
- Added date_time_output_format setting
- Added Minimal Web UI to ClickHouse
- Single Protobuf Message Read/Write Without Length-Delimiters
- Added Initial OpenTelemetry Support in ClickHouse
- Allow Primary Key Specification in CREATE TABLE Query for SQL Compatibility
- Implement OFFSET and FETCH for SQL-standard LIMIT in SELECT queries
- errorCodeToName function and system.errors table enhancements for better error analysis
- Added untuple function to expand named tuples in SELECT list
- New Feature: Identifiers via Query Parameters for Table Objects or Columns
- Added Support for Big Integers and UUID in MergeTree BloomFilter Index
- Add farmFingerprint64 function for non-cryptographic string hashing
- Add log_queries_min_query_duration_ms Setting for Query Logging
- Ability to Create Docker Image Using Alpine with Ubuntu 20.04 Components
- Added toUUIDOrNull and toUUIDOrZero Cast Functions
- Add max_concurrent_queries_for_all_users Setting
- Add print_query_id Option to ClickHouse Client
- Add tid and logTrace functions
- Add function formatReadableTimeDelta for human-readable time deltas
- Added disable_merges Option for Multi-Disk Volume Configuration
Performance Improvement
7- Do Not Merge Parts Across Partitions in SELECT FINAL
- Improve Performance of -OrNull and -OrDefault Aggregate Functions
- Improve Performance of quantileMerge Method
- Improve Performance of Logical Functions
- Improved Merge Performance in MergeTree Table Engines
- Speed up hashed dictionary loading by preallocating hash table
- Now Trivial Count Optimization Enhanced for Exact Partition Expressions