v.19.8
Bug Fixes
9- Fix Push Require Columns with Join #5192 (winter Zhang)
- Fixed Bug, When Clickhouse Is Run by Systemd, the Command Sudo Service Clickhouse-server Forcerestart Was Not Working as Expected
- Fix Http Error Codes in Datapartsexchange (interserver Http Server on 9009 Port Always Returned Code 200, Even on Errors)
- Fix Simpleaggregatefunction for String Longer Than Max_small_string_size #5311 (azat Khuzhin)
- Fix Error for Decimal to Nullable(decimal) Conversion in IN
- Fixed FPU Clobbering in Simdjson Library That Lead to Wrong Calculation of Uniqhll and Uniqcombined Aggregate Function and Math Functions Such as Log
- Fixed Handling Mixed Const/nonconst Cases in JSON Functions
- Fix Retention Function
- Fix Result Type for Quantileexact with Decimals
Build/Testing/Packaging Improvements
7- Fix Some Sanitizer Reports That Show Probable Use-after-free.#5139 #5143 #5393 (ivan)
- Move Performance Tests Out of Separate Directories for Convenience
- Fix Incorrect Performance Tests
- Added a Tool to Calculate Checksums Caused by Bit Flips to Debug Hardware Issues
- Make Runner Script More Usable
- Add Small Instruction How to Write Performance Tests
- Add Ability to Make Substitutions in Create, Fill and Drop Query in Performance Tests #5367 (olga Khvostikova)
Documentation
2Improvements
21- Added Max_parts_in_total Setting for Mergetree Family of Tables (default: 100 000) That Prevents Unsafe Specification of Partition Key #5166
- Clickhouse-obfuscator: Derive Seed for Individual Columns by Combining Initial Seed with Column Name, Not Column Position
- Added Functions Jsonextractraw, Jsonextractkeyandvalues
- Now If and Multiif Functions Do Not Rely on the Condition's Nullable, But Rely on the Branches for Sql Compatibility
- In Predicate Now Generates Null Result from Null Input Like the Equal Function
- Check the Time Limit Every (flush_interval / Poll_timeout) Number of Rows from Kafka
- Link Rdkafka with Bundled SASL
- Batched Version of Rowreflist for ALL JOINS
- Clickhouse-server: More Informative Listen Error Messages
- Support Dictionaries in Clickhouse-copier for Functions in <sharding_key> #5270 (proller)
- Add New Setting Kafka_commit_every_batch to Regulate Kafka Committing Policy
- Make Windowfunnel Support Other Unsigned Integer Types
- Allow to Shadow Virtual Column _table in Merge Engine
- Make Sequencematch Aggregate Functions Support Other Unsigned Integer Types #5339 (sundyli)
- Better Error Messages If Checksum Mismatch Is Most Likely Caused by Hardware Failures
- Check That Underlying Tables Support Sampling for Storagemerge #5366 (ivan)
- Сlose Mysql Connections After Their Usage in External Dictionaries
- Improvements of Mysql Wire Protocol
- Clickhouse-client: Allow to Run with Unaccessable History File (read-only, No Disk Space, File Is Directory, ...)
- Respect Query Settings in Asynchronous Inserts into Distributed Tables
- Renamed Functions Leastsqr to Simplelinearregression, Linearregression to Linearregression, Logisticregression to Logisticregression
New Features
19- Added Functions to Work with JSON #4686 (hcz) #5124
- Add a Function Basename, with a Similar Behaviour to a Basename Function, Which Exists in a Lot of Languages (os.path.basename in Python, Basename in Php, Etc...)
- Added LIMIT N, M BY or LIMIT M OFFSET N BY Syntax to Set Offset of N for LIMIT BY Clause
- Added New Data Type Simpleaggregatefunction, Which Allows to Have Columns with Light Aggregation in an Aggregatingmergetree
- Added Support for Non-constant Arguments in Function Ngramdistance #5198 (danila Kutenin)
- Added Functions Skewpop, Skewsamp, Kurtpop and Kurtsamp to Compute for Sequence Skewness, Sample Skewness, Kurtosis and Sample Kurtosis Respectively
- Support Rename Operation for Materializeview Storage
- Added Server Which Allows Connecting to Clickhouse Using Mysql Client
- Add Todecimal*orzero and Todecimal*ornull Functions
- Support Decimal Types in Functions: Quantile, Quantiles, Median, Quantileexactweighted, Quantilesexactweighted, Medianexactweighted
- Added Tovalidutf8 Function, Which Replaces All Invalid Utf-8 Characters by Replacement Character � (u+fffd)
- Added Format Function
- Added System.detached_parts Table Containing Information About Detached Parts of Mergetree Tables
- Added Ngramsearch Function to Calculate the Non-symmetric Difference Between Needle and Haystack
- Implementation of Basic Machine Learning Methods (stochastic Linear Regression and Logistic Regression) Using Aggregate Functions Interface
- Implementation of Geohashencode and Geohashdecode Functions
- Added Aggregate Function Timeseriesgroupsum, Which Can Aggregate Different Time Series That Sample Timestamp Not Alignment
- Added Functions Ipv4cidrtoipv4range and Ipv6cidrtoipv6range to Calculate the Lower and Higher Bounds for an IP in the Subnet Using a CIDR
- Add a X-clickhouse-summary Header When We Send a Query Using HTTP with Enabled Setting Send_progress_in_http_headers
Performance Improvements
8- Parallelize Processing of Parts of Non-replicated Mergetree Tables in ALTER MODIFY Query
- Optimizations in Regular Expressions Extraction
- Do Not Add Right Join Key Column to Join Result If It's Used Only in Join on Section
- Freeze the Kafka Buffer After First Empty Response
- Concat Function Optimization for Multiple Arguments
- Query Optimisation
- Upgrade Our LZ4 Implementation with Reference One to Have Faster Decompression
- Implemented MSD Radix Sort (based on Kxsort), and Partial Sorting