v.23.1
Bug Fix
78- Replace Domain IP Types with Native Implementations
- Fix Backup Process for Killed Mutations
- Fix Invalid Number of Rows in Chunk Exception Message
- Fix uninitialized value issue after sorting in ClickHouse
- Better NULL Handling in Aggregate Combinators to Fix Segfault Issue
- Fix CREATE USER/ROLE Query Constraints
- Fixed EPHEMERAL column default value bug in table metadata
- Fix Bad Version Parsing in Compatibility Setting
- Bring interval subtraction from datetime in line with addition
- Remove Result Size Limits for View
- Fix logical error in cache when do_not_evict_index_and_mrk_files=1
- Fix early cache write interruption in write-through cache
- Fix Crash in Case Function with LowCardinality IN Constant Arguments
- Fix Support for Complex Parameters in Parametric Aggregate Functions
- Fix ObjectId Reading in BSON Schema Inference
- Fix race condition in ReplicatedMergeTree causing premature temp parts removal
- Invalid SYSTEM ... ON CLUSTER Queries Now Throw SYNTAX_ERROR
- Fix Map Type Reading in ORC Format
- Fix Error in Reading Missing Columns in Parquet/ORC Formats
- Fix Character Display for 6/8 Bars in Bar Function
- Profile Settings Order in Configuration File Affects Constraints Effectiveness
- Fix SYNTAX_ERROR for EXPLAIN AST INSERT queries
- Fix CSV Bool Value Reading with CRLF
- Don't Use LowCardinality Dictionaries with If Conditions to Avoid Errors
- Fix max_streams_for_merge_tree_reading mutations
- Fix null pointer dereference in GROUPING SETS for ASTSelectQuery
- Validate Argument Types in Table Functions and JSON Schema Inference
- Fix IN Function with LowCardinality and Const Column
- Fixed Bug in Normalization of DEFAULT Expression in CREATE TABLE Statement
- Projections and ROLLUP/CUBE/TOTALS Compatibility Issue Resolved
- Async Blocks Not Cleaned Due to Function Limitation
- Fix LOGICAL_ERROR for JOIN with subquery, UNION, and TOTALS
- Avoid std::out_of_range Exception in Executable Table Engine
- Do not apply optimize_syntax_fuse_functions to quantiles on AST
- Fix type bug in Merge table and PREWHERE
- Fix possible shutdown crash in TraceCollector
- Fix Crash in Distributed Query Processing with Empty Results
- Fix fsync for Fetches and Small Files in Mutations
- Rare Race Condition in Querying system.parts During Disk Movement
- Fix Context Expiration Error with Projections Optimization in ClickHouse
- Fix for Cannot Read All Data Error in LowCardinality Dictionary from Remote FS
- Ignore Unreadable Hardware Monitor Sensor Cases in Logs
- Use max_delay_to_insert for Exceeding Delay INSERT Times
- Fix Column Order Error in UNION Subqueries
- Delay Calculation for INSERTs Updated to Use Proportional Formula
- Fix TTL Error in Alter Table for Wide Parts with Lightweight Delete Mask
- Follow-up Fix for Replacing Domain IP Types in ClickHouse #43221
- Follow-up Fix for Native IP Type Handling in ClickHouse
- Buffer Overflow Vulnerability Detected in Parser
- Fix storage FileLog data reading errors
- Memory Efficient Aggregation Disabled with Grouping Sets in Query
- Fix RANGE_HASHED Dictionary to Include Range Columns in Primary Key During Updates
- Fix LowCardinality Nested Lambda Error
- Fix incorrect query results in additional_table_filters with minmax/count projection
- Fixed Negative Value Bug in Histogram Function
- Fix Column Nullability in StorageJoin
- Fix runtime reload for background_fetches_pool_size settings
- Correct processing of SELECT queries with IN on KV engines using subquery with different type
- Fix Logical Error in SEMI JOIN and join_use_nulls
- Fix heap-use-after-free in S3 reading
- Fix Avro Union Type Bug and Incorrect Bytes Type Inference
- Throw Exception for Explicit PREWHERE with Merge Storage Engine
- Under WSL1 Ubuntu, ClickHouse Self-Extraction Fails Due to Inode Inconsistency
- Fix race condition in Distributed table startup
- Fix crash in S3 storage reading on ListObject request failure
- Fix SELECT ... FROM system.dictionaries Exception for Badly Structured Dictionaries
- Fix S3Cluster Schema Inference for INSERT INTO ... SELECT * Queries
- Fix JSON/BSONEachRow Parsing Bug in HTTP Handling
- Fixed IPv6 Parsing Bug in ClickHouse
- Close issue #45297 and add check for empty regular expressions
- Fix Query Hang Issue in ClickHouse
- Fix Deadlock with Asynchronous Read in Merge Tree on ThreadPool Exception
- Fix in-use table issue after DETACH
- Fix rare abort issue during canceled queries with parallel parsing
- Fix race condition in Distributed table creation and INSERT
- Add Default SLRU to Cache Policy Getter
- Disallow Array Join in Mutations
- Fix for Qualified Asterisks with Alias Table Name and Column Transformer
Build/Testing/Packaging Improvement
8- Statically Link Skim Library for Fuzzy Search in ClickHouse Client
- Removed Support for Shared Linking
- Remove Unused Dependency on adduser Tool
- SQLite Library Updated and False-Positive TSan Report Fixed
- CRC-32 Fix for WeakHash Collision in PowerPC
- Update aws-c* submodules in ClickHouse
- Automatically Merge Green Backport and Approved PRs
- Introduce ClickHouse CI Status Website
Experimental Feature
4New Feature
15- Dictionary Source for User-Agent Parsing via Regular Expressions Tree
- Added Parametrized View Functionality for View Table Engine
- Add quantileInterpolatedWeighted functions
- Array Join Support for Map Type in ClickHouse
- Support for SQL Standard Binary and Hex String Literals
- Allow DateTime Formatting in Joda-Time Style
- Implemented Fractional Second Formatter for formatDateTime
- Added age function for date difference calculation
- Add Null Source for Dictionaries
- Allow Configuring S3 Storage Class with s3_storage_class Option
- Insert Default Values for Missing JSON Elements in Named Tuple Parsing
- Record Server Startup Time in ProfileEvents
- Refactor and Enhance Streaming Engines Kafka/RabbitMQ/NATS with Improved Format Support
- Support for Nested Tables and Decimal Types in CapnProto Format for ClickHouse
- Added message_format_string column to system.text_log for enhanced log analytics
Improvement
34- Use Insertion Table Structure in generateRandom Function
- Allow Implicit Conversion of Floats in JSONExtract Functions
- Added Parallel Parsing and Formatting Support to system.formats Table
- Improve CSV Reading in CustomSeparated/Template Format
- Unify Query Elapsed Time Measurements
- Improve automatic structure usage in table functions with virtual columns to fix block structure mismatch errors
- Add Support for Signed Arguments in Range Function
- Remove Redundant Sorting in Subqueries
- Add Option to Disable File Deduplication in BACKUP Command
- Refactor Schema Inference for Text Formats with Nullable Columns Setting
- Better Support for PROXYv1 Protocol
- Add Latest Part Check Info to system.parts Table
- Disable Table Functions in Readonly Mode for Inserts
- Add simultaneous_parts_removal_limit setting to CleanupThread
- Do not initialize ReadBufferFromS3 for queries needing only virtual columns
- Prevent Duplicate Column Names Hints
- Allow Macro Substitution in Disk Endpoint
- Improve Schema Inference with JSON Object Reading Enabled
- Add user setting to ban arguments for ReplicatedMergeTree tables
- Prevent Zero Value Specification for index_granularity
- Added keytab file path configuration for Kerberos in config.xml
- Use Existing Query for Fuzzy Search with Skim Library in ClickHouse
- Enable JSON Input Format for Reading Nested Objects by Default
- Improvement of Async Insert Deduplication in Memory
- Input/output Avro format parses bool type as ClickHouse bool type
- Support Bool Type in Arrow/Parquet/ORC
- Don't Greedily Parse UUIDs Beyond Quotes to Avoid Errors
- Infer UInt64 for Int64 Overflow and Fix Schema Inference Transforms
- Improved Dependency Resolution in Replicated Database Using Explicit Graph
- Fix output_format_pretty_row_numbers to Preserve Counter Across Blocks
- Don't Report Concurrent Merge Errors in system.errors
- Optimize Metrics for Distributed Async INSERT
- Added Settings to Disallow Concurrent Backups and Restores in ClickHouse
- Add <storage_policy> config parameter for system logs
Performance Improvement
21- Do not load inactive parts at startup of MergeTree tables
- Improved S3 Storage Read Latency with Enhanced Settings
- Optimization for Selective Field Loading in Parquet/ORC Files
- Two-Level Aggregation Algorithm Reenabled, Enhancing Performance
- Added mmap support for StorageFile to enhance clickhouse-local performance
- Added Sharding Support in HashedDictionary for Parallel Load
- Speed up query parsing #42284
- Always Use IN for LowCardinality Columns Instead of OR Chain
- Slight Performance Improvement by Code Optimization in ThreadStatus
- Optimize Column-Wise Ternary Logic Evaluation for 21x Performance Gain on Intel Xeon CPU
- Avoid Read Locks on system.tables Table
- Optimize ThreadPool to Enhance Performance by 2.4% and Reduce Lock Contention by 75% on ICX Device
- Optimisation for Predicting Hash Table Size Based on Cache Size Thresholds
- Small Performance Improvement in Asynchronous Remote Filesystem Reading
- Add Fast Path for LIKE and MATCH Queries in ClickHouse
- Slightly Improve Happy Path Optimisation in Filtering
- Provide Monotonicity Info for toUnixTimestamp64* for Index Analysis Optimizations
- Allow Configuration of Temporary Data to Interact with Filesystem Cache in ClickHouse
- Make system.replicas Table Perform Parallel Fetches of Replica Statuses
- Optimize Memory Usage for S3 Backups
- Add Cache for Async Block IDs to Optimize ZooKeeper Requests
upgrade-notes
7- SYSTEM RESTART DISK query becomes a no-op
- PREALLOCATE option for HASHED/SPARSE_HASHED dictionaries is deprecated
- Disallow Gorilla codec on non-Float32 or non-Float64 columns
- Parallel Quorum Inserts Disabled for Deprecated MergeTree Tables
- Use GetObjectAttributes for Object Size Retrieval in AWS S3
- Forbid Paths in Timezone Names
- Queries with Equijoin and Constant Expressions Forbidden Due to Incorrect Results