v.21.12
Backward Incompatible Changes
4Bug Fixes
52- Fix Aliases in Group/Order/Limit with Positional Arguments
- Fix Buffer Table Engine Usage with Map Type
- Fix MergeTree Table Reading with Uncompressed Cache Enabled
- Fixed mutation behavior with empty set aggregation setting
- Fix Column Skipping in Protobuf Writing
- Fix bug in subquery column removal with aggregation functions
- Quota Limit Exceeded Fix for Issue #31174
- Fix SHOW GRANTS for Partial Revokes
- Memory Estimation Error in ClickHouse with Cgroup Limits
- Fix Materialize Column Queries for Mismatched Default Expression Data Types
- Fixed SIGFPE Crash in avgWeighted Function with Decimal Argument
- Server Start Error Resolved Due to Cyclic Dependencies in Table References
- Fix NaN Parsing Error in Nullable(Float) Deserialization for Quoted Escaping Rule
- XML Dictionary Identifiers Qualified to Default Database During Upgrade
- Fix incorrect active replica count during quorum inserts with disabled replicated_can_become_leader
- Dictionaries: Fix Custom Database Query Condition Issues
- Fix Nullable CAST with cast_keep_nullable to prevent PARAMETER_OUT_OF_BOUND error
- Fix CREATE TABLE in Join Storage for edge cases
- Fixed Directory Already Exists Error When Detaching Part
- MaterializedMySQL: Fix DECIMAL Data Misinterpretation from MySQL
- FileLog engine created unnecessary metadata directory on table creation failure; fixes #31962 and #31967.
- GET_PART Entry Hanging in Replication Queue Fixed for Integer and Date[Time] Columns
- Fix UUID Argument Handling in empty and notEmpty Functions
- Change Configuration Path for KeeperTCPHandler Session Timeout
- Fix Nullable Type Cast Issue with Primary Keys in ClickHouse
- Fix crash in recursive UDF in SQL
- Fix crash in dictGet function with Nullable type
- Fix ODBC query crash with empty results
- Fix Query Profiler Disabling Issue After Query Completion
- Fixed segfault in concurrent ATTACH PARTITION queries
- Fix race condition in JSONEachRowWithProgress output format
- Fixed "there are no such cluster here" error for ON CLUSTER query with Replicated database name
- Fix Exceptions in Decrypt Function for Nullable Columns
- Fixed UTF-8 Handling in Ngrams Function
- Fix input_format_allow_errors settings for domain types parsing in ClickHouse
- Fixed Null Pointer Exception in MATERIALIZE COLUMN
- RENAME TABLE query fix for DDL dictionary in Ordinary database
- Implement Intended sparkbar Aggregate Function
- Fix Invalid JSON Generation with UTF-8 Column Names
- Disable partial_merge_join_left_table_buffer_bytes and remove redundant option partial_merge_join_optimizations
- Fix Progress Reporting for Short INSERT SELECT Queries
- Fix Group By Behavior with Positional Arguments
- Resolve nullptr in STS credentials provider for S3
- Remove incorrect notLike function from index analysis
- Fix Keeper Bug Causing Startup Issues Due to Lost Coordination Logs
- Rewrite Right Distributed Table in Local Join to Address Issue #25809
- Fix Merge Table with Aliases and Where Functionality
- Fix JSON_VALUE/JSON_QUERY to Support Quoted Identifiers in JSON Path
- Using formatRow Function with Non-Row-Oriented Formats Results in Segfault
- Fix bug affecting select queries after dropping materialized view
- Skip max_partition_size_to_drop check for ATTACH and MOVE PARTITION
- Fix Corner Cases in INTERSECT and EXCEPT Operators
Build/Testing/Packaging Improvements
10- Fix Filtering Issue on Non-x86 Builds
- Make ClickHouse Builds Fully Reproducible
- Use Custom CMakeLists for Various Libraries in Build System Cleanup
- Hermetic Builds: Use Fixed Version of libc and Eliminate Host OS Dependencies
- Adding getFuzzerData() Function for Fuzzing Specific Functions
- More Accurate Docker Setup Capabilities
- Enable Clang Strict VTable Options
- Avoid Downloading Toolchain Tarballs for Cross-Compiling on FreeBSD
- Initial RISC-V Support Development Information
- Support ARM machine compilation with tests disabled
Experimental Features
3Improvements
54- Prevent Dependency-Related Dropping of Tables or Dictionaries
- Allow Versioning of Aggregate Function States for Backward Compatibility
- Support PostgreSQL ALTER MODIFY COLUMN Syntax
- Added update_field support for RangeHashedDictionary and ComplexKeyRangeHashedDictionary
- murmurHash3_128 and sipHash128 now accept arbitrary number of arguments
- Support HDFS storage default expression and optimize column-oriented fetching
- Improve Operation Name of OpenTelemetry Span
- Use Content-Type application/x-ndjson for JSONEachRow Output Format
- Improve Skipping Unknown Fields in Template/CustomSeparated Formats
- clickhouse-keeper prevents startups and config changes with duplicate IDs or endpoints
- Set Content-Type in HTTP Packets from URL Engine
- Return JSON Content-Type for JSONEachRow Format When Enabled
- Allow parsing + before Float32/Float64 values
- Allow User Configured HDFS Replication Parameter for DiskHDFS and StorageHDFS
- Added ClickHouse exception fields to OpenTelemetry span log
- Improve OpenTelemetry Span Log Duration on Query Exceptions
- Fix LowCardinality of Int256 Creation Issue
- Recreate system.*_log tables for differing engine/partition_by
- MaterializedMySQL: Fix issue with table named 'table'
- ClickHouse Dictionary Source: Support Predefined Connections
- Allow Predefined Connections for Kafka and RabbitMQ Engines
- Always Re-render Prompt During History Navigation in ClickHouse Client for Improved Usability
- Add Key Bindings for History Navigation
- Improve timeout checks for max_execution_time in ClickHouse
- Better Exception Message for users.xml Loading Error Due to Bad Password Hash
- Use shard and replica names from Replicated database arguments in ReplicatedMergeTree macros
- Better analysis for min/max/count projection with partition key support
- Add --pager support for clickhouse-local
- Fix Editor Waiting Issue During Interactive Query Edition
- Throw Exception for Garbage After Field in JSONCompactStrings Format
- Default timeout settings reduced from 30 minutes to 3 minutes
- MaterializedMySQL Supports CREATE TABLE ... LIKE DDL Queries
- Return Artificial Create Query for Show Create Table on System Tables
- Progress Display Enhanced for numbers_mt Table Function
- Initial User Roles Utilized for Row Policies
- Show warning in system.warnings for outdated setting changes
- Improved Backoff for Background Cleanup Tasks in MergeTree Settings
- Incremental Profile Events Counters for ClickHouse Replicas
- Enable Default Multiline Editing in ClickHouse Client
- Function Name Normalization for ALTER Queries to Prevent Metadata Mismatches
- Support IF EXISTS Modifier for RENAME DATABASE/TABLE/DICTIONARY Query
- Cancel Vertical Merges on Partition Drop
- Local session events in ClickHouse dictionaries no longer send to session log, resolving deadlock issue and fixing flaky test
- Less Locking in ALTER Command
- Fix logging and verbose option in clickhouse-local interactive mode
- New Commands in clickhouse-client: \l, \d, \c Added Like MySQL and PostgreSQL
- Enhancement: Execute Queries Before Entering Interactive Mode in Clickhouse
- Fix potential error with local parts and ZooKeeper during DROP operation
- Avro Format Support Added for Kafka in ClickHouse
- Allow Multiple PostgreSQL Schemas for MaterializedPostgreSQL Database
- Replaced ClickHouse-Keeper Default Ports from 44444 to 9234
- Implement transform function with Decimal arguments
- Fix Debug and Release Server Errors from Bad HDFS URL
- Fix Assert in HDFS Table Function and Add Test
New Features
16- Implemented ZooKeeper Four Letter Words Commands in ClickHouse Keeper
- Support for Bool Data Type in ClickHouse
- Support for PARTITION BY in File, URL, HDFS Storage with INSERT INTO Function
- Added CONSTRAINT ASSUME feature and query optimization improvements in ClickHouse
- Basic Access Authentication for HTTP/URL Functions
- Support INTERVAL type in STEP clause for WITH FILL modifier
- Add Parallel Reading from Multiple Files with Glob Support in FROM INFILE Clause
- Add Support for Identifier Table and Database Query Parameters
- Major Enhancements to Data Format Completeness and Consistency
- Aliyun OSS Storage Support in ClickHouse
- Exposing Global Thread Pool Settings in Configuration File
- Introduced More Effective Exponential Time Decayed Window Functions
- Add LZ4 Log Compression Option
- Support JOIN ON 1 = 1 with CROSS JOIN semantics
- Add Map Combinator and Rename Mapped Arrays in ClickHouse
- Make HTTP Reading Retriable, Closes #29696
Performance Improvements
15- Reduce Memory Usage for Remote Data Formats with New Seek Controls
- Add JOIN ON Constant Condition Optimizations
- Support Parallel Formatting for All Text Formats Except Specific Cases
- Speed up count on nullable columns
- Speed Up avg and sumCount Aggregate Functions
- Improve JSON and XML Output Performance
- Improve Data Sync Performance to Block Device
- Fix query performance in LiveView tables
- Speed up query parsing
- Allow Splitting GraphiteMergeTree Rollup Rules for Metrics
- Remove Excessive DESC TABLE Requests for remote() Identifier Usage
- Optimize tupleElement function for subcolumns with enabled optimize_functions_to_subcolumns setting
- Optimize mapContains Function for Subcolumn Key with Settings Enabled
- Add Merge Tree Settings for Concurrent Read on Remote Filesystem
- Skipping Partition Mutations in StorageMergeTree