v.22.4
Backward Incompatible Changes
2Bug Fix
44- Added Default Settings for Invalid IP Address Inserts
- Avoid Erasing Non-Existent Columns When Reading Hive Data
- Add Type Checking for Materialized View Creation
- Fix INSERT INFILE Query Formatting Issues
- Disable session_log due to memory safety issue from fuzzing
- Avoid Duplicate Processing of Per-Column TTL
- Fix Object Column Inserts for Multiple Partitions
- Fix bug causing INCORRECT_NUMBER_OF_COLUMNS error in -WithNames formats for over 256 columns
- Fixes issues #35751 and #35799 by Nikolay Degterinsky
- Fix HDFS Reading for Snappy Format
- Fix bug in custom types to string conversion causing segfaults
- Fix Subquery Implementation Issues
- Fix dropping non-empty database in clickhouse-local
- Fix Materialized View Bug After Server Restart
- Fix "Can't adjust last granule" Exception in Experimental Object Type Subcolumns
- Enable Default JIT Compilation in Build
- Fix loss of subcolumns in Object type
- Fix ASOF JOIN Key Nullability Issues
- Fix Logic for Part Checking with Different Projections Types
- Fix server crash in format function with excessive arguments
- Fix Quotas with Asynchronous Inserts
- Fix Positional Arguments with Aliases, Closes #35600
- Check remote_url_allow_hosts Before Schema Inference in URL Engine
- Fix HashJoin for LowCardinality Columns
- Fix segfault in MaterializedPostgreSQL during data sync error handling
- Fix for Incorrect Behavior of database_atomic_wait_for_drop_and_detach_synchronously with ATTACH TABLE Query
- Fix HTTP Headers and Add Compression Method in Named Collections
- Fix S3 engine to correctly handle virtual columns
- Fixed Return Type Deduction for caseWithExpression in ELSE Branch
- Fix IPv6 Address Parsing for Lengths Exceeding 39 Characters
- Fix IPv4, IPv6 Address Cast in IN Section
- Fix crash in short circuit evaluation with nullable constants
- Fix crash in throwIf with constant arguments
- Fix Keeper Bug Causing Unstable Client Connections
- Fix bug in 'if' function causing logical errors due to type mismatches
- Fix Excessive Logging in S3 Backend for MergeTree and Table Engine
- Now merges with zero copy replication won't spam logs with duplicate messages
- Skip Exception for Empty Chunks in GroupingAggregatedTransform
- Fix Handling of Unused Columns in Arrow/Parquet/ORC Formats
- Fix Local Cache Deadlock for Remote Filesystem in High Concurrency Cases
- Fix Partition Pruning Issue for Constant Comparisons in WHERE Clause
- Fix TSKV Schema Inference with Small Max Read Buffer Size
- Fix mutations in tables with sparse columns
- Do not delay final part writing by default to fix memory limit issues during INSERT operations
Build/Testing/Packaging Improvement
13- Add Randomization Settings in Functional Tests
- Add Backward Compatibility Check in Stress Test
- Migrate to nfpm for Package Building and Deprecate Release Script
- Add Night Scan and Upload for Coverity
- Dedicated Small Package for ClickHouse-Keeper
- Running with Podman fails due to duplicate volume specification
- Minor enhancement in krb5 build configuration
- Add Label for Building Task Recognition in Images
- Apply black formatter and add per-commit check for Python code
- Redo Alpine Image and CI Updates for ClickHouse
- Fix CI Stress-Test Report to Upload Runlog Once
- Switch to libcxx/libcxxabi from LLVM 14
- Update unixodbc for CVE-2018-7485 Mitigation
Experimental Feature
4Improvement
39- Multiple Enhancements to Schema Inference for Various Data Formats
- Add Parallel Parsing and Schema Inference for JSONAsObject Format
- Added automatic schema inference support to s3Cluster table function
- Added schema inference support for hdfsCluster
- Add input_format_json_read_bools_as_numbers setting to parse bools as numbers in JSON
- Improve Schema Inference for TSKV and JSONEachRow Formats
- Add Case Insensitive Column Matching Settings for ORC, Arrow, and Parquet in ClickHouse
- Added is_secure column to system.query_log for secure connection indication
- kafka_num_consumers can exceed physical cores on low resource machines
- Add Basic Metrics for Kafka Table Monitoring
- Now Disallow ALTER TABLE RESET SETTING for Non-Existing MergeTree Settings
- Now Supports Metadata-Level ALTER MODIFY COLUMN for Arrays and Nullable Types
- Added Hourglass Animation to Indicate Query Status
- support ALTER TABLE t DETACH PARTITION (ALL)
- Improve projection analysis for optimizing count() queries
- Support Schema Inference for Insert Select with Input Table Function
- Respect remote_url_allow_hosts for Hive tables
- Implement send_logs_level for clickhouse-local
- Closes #35641: Allow EPHEMERAL columns without explicit default expression
- Add AsyncInsertBytes Profile Event Counter for Async INSERTs
- Improve JOIN Pipeline Description
- Deduce Absolute HDFS Config Path
- Improve ClickHouse Client Pasting Performance and Compatibility
- Stack Overflow Fix in Distributed Queries for Deeply Nested Data Types
- Add Subcolumn Sizes to system.parts_columns Table
- Add Explicit Table Info to Query Plan Scan Node
- Allow Server Binding to Low-Numbered Ports in ClickHouse
- Fix Progress Bar for INSERT INTO FROM INFILE in ClickHouse
- Add User, Password, Host, and Port Arguments to ClickHouse Diagnostics Tool
- Support UUID for Postgres Engines
- Fix AccessType Retrieval for s3cluster, HDFSCluster, and hive Functions
- Remove --testmode option from clickhouse-client and enable unconditionally
- Don't Allow wchc Operation for ClickHouse-Keeper
- Add getTypeSerializationStreams Function for Serialization Substream Paths
- Default Server Port Used When Port Not Specified in Cluster Configuration
- Use minmax index for ORC/Parquet files in Hive Engine
- System Log Tables Support COMMENT in ENGINE Declaration
- Proper handling of max_rows_to_read in sorted query limits
- Respect cgroups quota and period, ignore shares
New Feature
16- Added INTERPOLATE Extension to ORDER BY with FILL
- Profiling Execution Time on Processors in ClickHouse
- Added Date and DateTime Functions in ClickHouse
- Support WRITTEN BYTES quota for limiting written bytes in insert queries
- Added flattenTuple function for flattening nested named Tuples
- Added arrayFirstOrNull and arrayLastOrNull Functions
- Added minSampleSizeContinous and minSampleSizeConversion functions
- New Functions minSampleSizeContinuous and minSampleSizeConversion Added
- Introduce ProtobufList Format in ClickHouse
- Add H3 Distance and Index Functions
- Add toLastDayOfMonth function to round date to month's end
- Added Load Balancing Setting for ZooKeeper Client
- Add Simple Row Policies to ClickHouse
- Added cluster secret specification in replicated database
- Added Sanity Checks on Server Startup
- INTERVAL enhancement with new time functions in ClickHouse
Performance Improvement
10- New Query Plan Optimization Improves Efficiency by Evaluating Functions After ORDER BY
- Sizes of Hash Tables Collected to Avoid Resizes in Queries
- Improvement of hasAll function using SIMD (SSE and AVX2)
- Improvements to ASOF JOIN Performance and Big Integer Support
- Improve ASOF JOIN Performance for Native Integer Keys
- Parallelized Multipart Uploads to S3 Storage
- URL storage engine enhances download performance with parallel chunk downloads and new settings for thread management.
- Use Multi-threading for S3 Object Downloads with Configurable Settings
- Narrow Mutex Scope for HDFS Interaction
- Require mutations for per-table TTL on changes