v.22.1
Bug Fix
55- ClickHouse Security Fixes and Format Parsing Corrections
- ClickHouse Keeper handler correctly removes operation upon response.
- Potential Off-by-One Miscalculation of Quotas Fixed
- Fixed String to IPv4/IPv6 CASTing and Error Messaging
- Fixed "Unknown aggregate function nothing" Exception on Remote Server
- Fix Wrong Database in Distributed JOIN Queries
- Fix segfault in Apache Avro format after second file insert
- Fix segfault in Apache Arrow format due to Dictionary type in schema
- Out of Band Offset and Limit Settings Issue for Views
- Fix Block Structure Mismatch Exception for Default Nested LowCardinality Column
- Fix dictionary expressions for range_hashed attributes in DDL
- Fix Use-After-Free in Materialized View During Concurrent Drop
- Do Not Read Past EOF to Avoid Linux Kernel Bug
- Access Control Fix for SYSTEM SUSPEND and SYSTEM ... THREAD FUZZER Commands
- Fix Dictionary Comments Visibility in system.tables and system.dictionaries
- Add Async Inserts to Query Log
- Fix Sending WHERE 1 = 0 Expressions for External Databases Query
- Fix DDL Validation and Management for MaterializedPostgreSQL
- Correction of StorageBufferBytes Metric Miscalculation
- Fix Invalid Version Error for LowCardinality Key Column with Filesystem Read Prefetch Enabled
- Fix s3 table function for reading empty files, closes #33008
- Fix Context Leak in Canceling HTTP Read-Only Queries on Client Close
- Fix CSV Tuple Output with Custom Delimiter
- Fix HDFS URL Check for HA Namenode Address Issue
- Fix Exception Handling for Non-Positional Arguments
- Fix UB for unexpected EOF during HTTP query when filling a set
- Fix regression in replaceRegexpAll function for empty matched substrings
- Fix ORC Format Stripe Reading
- topKWeightedState Input Type Failure Issue #32487 and PR #32914
- Fix LOGICAL_ERROR in Materialized View for Single Chunk Expectation
- Fix Lazy Seek Optimization for Async Remote File Reads
- MergeTree Table Engine Fixes Silent Mutation Skipping Issue
- Avoid Reusing Scalar Subquery Cache in MV Block Processing
- Server start issue with MySQL connection fixed
- Fix crash in fuzzBits function, closes #32737
- Fix "Column is not under aggregate function" Error in MV with GROUP BY for Kafka/RabbitMQ
- Fix ALTER TABLE MATERIALIZE TTL Query with TTL DELETE and GROUP BY Modes
- Fix optimize_read_in_order for Distributed and Merge table engines with monotonous sorting keys
- Fix LOGICAL_ERROR in Materialized Views with JOIN or SET Tables
- Inserting into S3 with multipart upload to Google Cloud Storage may trigger abort
- Fix RabbitMQ Storage Startup Exception by Delaying Channel Creation
- Fix Use-After-Free Issue with Concurrent DROP TABLE and INSERT
- Fix Async Inserts for Multiple Formats in ClickHouse
- Fix groupBitmapAnd function on distributed table
- Fix JOIN Crash Found by Fuzzer
- Proper handling of Apache Arrow column duplication
- Fix Ambiguous Query Formatting Issue in Distributed Queries
- Fix Skipping Indices Query Failures
- Fix select query issue with multiple row policies on same column
- Fix Negative Unix Timestamp Conversion to DateTime64
- Replication queue hang issue fixed due to temporary directory conflicts
- Fix APPLY lambda column transformer parsing to prevent client/server crash
- Fix trailing bytes issue in base64Encode for small strings
- Fix Crash in Window Function with LowCardinality Arguments
- Fix hang issue with DROP TABLE system.query_log sync command
Build/Testing/Packaging Improvement
11- Add AArch64 Support for ClickHouse with Packages, Tests, and Docker Builds
- Prepare ClickHouse for musl-libc Support
- Make installation script functional on FreeBSD
- Add actionlint to Verify GitHub Actions Workflow Syntax
- Add Tests for Nullable Primary Key Feature
- Add Tool to Visualize Flaky Tests in Browser
- Enable Hermetic Build for Shared Builds
- Update libc++ and libc++abi to latest version
- Added integration test for ClickHouse.Client .NET client
- Inject Git Information into ClickHouse Binary for Source Code Revision Access
- Remove Obsolete Yandex Code from ConfigProcessor and Fix Minor Defect
Experimental Feature
9- Parallel Reading from Multiple Replicas in Distributed Queries
- Implemented Sparse Serialization to Optimize Disk Space and Query Performance
- Add TABLE OVERRIDE Feature for MaterializedMySQL Table Customization
- Add EXPLAIN TABLE OVERRIDE Query
- Support TABLE OVERRIDE Clause for MaterializedPostgreSQL
- Change ZooKeeper Path for Zero-Copy Replication Marks
- Events Clause Support for WINDOW VIEW Watch Query
- Fix ACL Behavior in ClickHouse-Keeper for Consistency with ZooKeeper
- Fix projection removal issue during part detachment
Improvement
43- Date Time Conversion Functions Updated to Handle Pre-1970 Dates Correctly
- Display Resource Usage Metrics in Client
- Improve Bool Type Serialization and Deserialization
- Invalid Setting Error Messages with Suggestions
- Support hints for mistyped setting names in clickhouse-client and clickhouse-local
- Allow Virtual Columns in Materialized Views
- Add Config Option to Disable IPv6 in ClickHouse Keeper
- Enhance system.build_options with Current Git Revision Info
- clickhouse-local: Monitor Memory with --max_memory_usage_in_client Option
- Allow Negative Intervals in intervalLengthSum Function
- LineAsString Output Format Added
- Support <secure/> in Cluster Configuration
- Pressing Ctrl+C Twice Terminates clickhouse-benchmark Immediately
- Support Millisecond Precision in parseDateTimeBestEffort Function
- Allow Query Cancellation for External Table Reads in Arrow, Parquet, and ORC Formats
- Support for SETTINGS clause in MySQL table engine with key-value or config options
- Correct Prevention of Nullable Primary Keys in ClickHouse
- Add Retry Logic for PostgreSQL Connections
- Validate Config Keys for External Dictionaries in ClickHouse
- Send profile info in clickhouse-local, resolves #33093 and #33097
- Short Circuit Evaluation Support for `throwIf` Function
- Fixed Segfault in Compressed Decimal, String, FixedString, and Array Columns (Unofficial Builds)
- Added Support for Subqueries as SQL User Defined Functions
- Improve gRPC Compression Support for Issue #28671
- Flush In-Memory Data on Shutdown Without WAL
- Allow Configurable Connection Timeouts for MySQL
- Support authSource option for MongoDB storage
- Support Date32 Type in generateRandom Table Function
- Add max_concurrent_select_queries and max_concurrent_insert_queries Settings
- Improve Protobuf Data Handling for Nested Structures with Missing Columns
- Allow Empty Credentials for MongoDB Engine
- Disable Optimizations for Window Functions to Prevent Exceptions
- Allows Connection to MongoDB 5.0
- Enable Comparison Between Decimal and Float
- Added Timeout and Execute Settings for Executable Components in Storage
- Bitmap aggregate functions handle out of range arguments correctly
- Fix Parsing of Incorrect Queries with FROM INFILE Statement
- Don't allow writes to S3 with globs in path
- --echo option not used by clickhouse-client in batch mode with single query
- Use --database Option for ClickHouse-Local
- Fix SQL Function to Support Symlinks
- Updating modification_time for system.parts after part movement
- Potential Integer Overflow Issue in Array Resize
New Feature
16- Implement Data Schema Inference for Various Input Formats in ClickHouse
- Detect File Format by Extension in Various Table Functions and Engines
- A tool for collecting diagnostics data for support
- Automatic Cluster Discovery with ZooKeeper for Replica Management
- Implement Hive Table Engine for Apache Hive Access in ClickHouse
- Add Aggregated Functions for Categorical Dependency Measurement
- Added hdfsCluster Function for Parallel HDFS File Processing in Clusters
- Adding Azure Blob Storage Support for Disks
- Allow COMMENT in CREATE VIEW for all VIEW kinds
- Dynamically Reinitialize Listening Ports on Configuration Changes
- Added string manipulation functions and fixed substring error in ClickHouse
- Add New Functions for H3 Coordinate System
- Add MONTHNAME Function
- Added arrayLast and arrayLastIndex functions
- Add decodeURLFormComponent function to ClickHouse
- Allow Splitting GraphiteMergeTree Rollup Rules for Metrics
Performance Improvement
12- Support Moving Conditions to PREWHERE for Merge Engine Tables
- More Efficient URL Storage and Querying with Parallel Retries
- Avoid Exponential Backtracking in Parser
- Abuse of untuple function causing exponential query complexity fixed in #33297
- Reduce Memory Allocation for Dictionaries with String Attributes
- Slight Performance Improvement of reinterpret Function
- Non-Significant Change in Partition Pruning Behavior
- Improve clickhouse-keeper writing performance through size calculation optimization
- Optimize single part projection materialization
- Improve System Table Query Performance
- Optimize MergeTree Parts Selection for Volume Movement
- Fix sparse_hashed dict performance with sequential keys