v.21.10
Backward Incompatible Changes
1Bug Fixes
21- Fix reading compressed data from carbon-clickhouse to prevent EOF errors
- Fix Access Grant Checks for GRANT WITH REPLACE on CLUSTER
- Allow extremes selection from LowCardinality(UUID) column
- Fix PostgreSQL-style cast (:: operator) for negative numbers
- Fix Shutdown of NamedSessionStorage in ClickHouse
- Bugfix for windowFunnel strict mode, resolving issue #27469
- Fix infinite loop in truncated bzip2 archive reading
- Fix UUID Overlap in DROP TABLE for MaterializedMySQL DDL
- Fix error with nested and scalar columns in table selections
- Fix sorting key metadata error in ReplicatedVersionedCollapsingMergeTree after ALTER
- Fixed ZooKeeper Watches Leak in Distributed DDL Queue Processing
- Fix Quoting of Table Names in MaterializedPostgreSQL Engine
- Fix Non-Joined Rows Behavior in Nullable Column
- Fix NOT-IN Index Optimization for Incomplete Key Columns
- Fix Intersecting Parts After Replacement with Empty Part
- Fix ORDER BY inconsistencies with Merge tables and optimize_read_in_order enabled
- Fix Uninitialized Memory Read in Nullable(LowCardinality) Queries with Extremes Setting
- Multiple Small Fixes for Projections in PR #28178
- Fix rare segfaults on shutdown due to incorrect reloader shutdown order
- Fix Null Value Handling in JSONExtract for Nullable(String) Type
- Multiple Fixes for ClickHouse Keeper Tool
Build/Testing/Packaging Improvements
4Experimental Features
2Improvements
28- Check Cluster Name Validation for Distributed Table Creation
- Add quantileBFloat16Weighted aggregate function to ClickHouse
- Allow creation of dictionaries with empty attributes list
- Add Interactive Documentation for Password Reset in ClickHouse Client
- Support Array-Enclosed Data in JSONAsString Input Format
- Add last_queue_update_exception column to system.replicas table
- Support Reconnection on Failover for MaterializedPostgreSQL Tables
- Generate Unique Server UUID on First Start
- Introduce connection_wait_timeout setting for MySQL engine
- Prevent Creation of MaterializedPostgreSQL with Invalid Arguments
- Use Real TMP File for Vertical Merges to Prevent Garbage Directories
- Added libhdfs3_conf in ClickHouse Server Configuration for HDFS Interaction
- Fix Exception When Removing Parts in Temporary State
- Fix zookeeper_log.address and optimize getpeername() calls in zookeeper client
- Support Implicit Conversions for Indexing in Maps
- Support ON CONFLICT clause for PostgreSQL table inserts
- Lower Restrictions for Enum Data Type to Allow Compatible Data
- Add Setting for Grouping by Constant Keys on Empty Set
- Added replication_wait_for_inactive_replica_timeout setting for handling inactive replicas in queries
- Support Lambda Argument in APPLY Column Transformer for Multi-Argument Functions
- Enable tcp_keep_alive_timeout by default
- Improve Remote Query Cancellation for Abnormal Server Termination
- Use Multipart Copy Upload for Large S3 Objects
- Allow Symlink Traversal for Library Dictionary Path
- ALTER MODIFY COLUMN to Nullable(T) No Longer Requires Mutation
- Don't Ignore Errors in ReadBufferFromS3
- Improve ALTER ... MATERIALIZE TTL by Metadata Recalculation Only
- Allow EOF-less Reading of Custom Top Level Domains
New Features
13- Add User-Defined Functions (UDF) as Lambda Expressions in ClickHouse
- Added Executable Storage Engine and Table Function for Streaming Data Processing
- Added ExecutablePool Storage Engine for Long Running Processes
- Add ALTER TABLE ... MATERIALIZE COLUMN Query
- Support for partitioned writes in S3 table function
- Support for lz4 Compression Format in Data Import/Export
- Allow Positional Arguments with `enable_positional_arguments` Setting
- Accept User Settings for File Formats in CREATE Query for S3 Tables
- Allow SSL Connection for RabbitMQ Engine
- Add getServerPort function to retrieve server port with exception handling
- Add Conversion Functions for Snowflake ID and DateTime Types
- Add SHA512 function
- Add log_queries_probability setting for sampling queries in query_log
Performance Improvements
8- Speed Up sumIf and countIf Aggregation Functions
- Create Virtual Projection for Minmax Indices in Queries
- Introducing Early Exit Checks in sequenceMatch and sequenceCount for Improved Query Performance
- Enhance Primary Key Analysis with Monotonic Binary Functions
- Make hasAll Filter Condition Utilize Bloom Filter Data-Skipping Indexes
- Speed up data parts loading by delaying table startup process
- Fixed Excessive Conditions Moved from WHERE to PREWHERE in ClickHouse Optimization
- Enable optimize_distributed_group_by_sharding_key by default