v.19.5
Backward Incompatible Change
3- Rename Setting Insert_sample_with_metadata to Setting Input_format_defaults_for_omitted_fields
- Added Setting Max_partitions_per_insert_block (with Value 100 by Default)
- Multi-search Functions Were Renamed (multiposition to Multisearchallpositions, Multisearch to Multisearchany, Firstmatch to Multisearchfirstindex)
Bug Fix
37- Avoid Std::terminate in Case of Memory Allocation Failure
- Fixes Capnproto Reading from Buffer
- Fix Error Unknown Log Entry Type: 0 After OPTIMIZE TABLE FINAL Query
- Wrong Arguments to Hasany or Hasall Functions May Lead to Segfault
- Deadlock May Happen While Executing DROP DATABASE Dictionary Query
- Fix Undefined Behavior in Median and Quantile Functions
- Fix Compression Level Detection When Network_compression_method in Lowercase
- Fixed Ignorance of <timezone>utc</timezone> Setting
- Fix Histogram Function Behaviour with Distributed Tables
- Fixed Tsan Report Destroy of a Locked Mutex
- Fixed Tsan Report on Shutdown Due to Race Condition in System Logs Usage
- Fix Recheck Parts in Replicatedmergetreealterthread in Case of Error
- Arithmetic Operations on Intermediate Aggregate Function States Were Not Working for Constant Arguments (such as Subquery Results)
- Always Backquote Column Names in Metadata
- Fix Crash in ALTER ..
- Fix Segfault in JOIN ON with Enabled Enable_optimize_predicate_expression
- Fix Bug with Adding an Extraneous Row After Consuming a Protobuf Message from Kafka
- Fix Crash of JOIN on Not-nullable Vs Nullable Column
- Fix Segmentation Fault in Clickhouse-copier
- Fixed Race Condition in SELECT from System.tables If the Table Is Renamed or Altered Concurrently
- Fixed Data Race When Fetching Data Part That Is Already Obsolete
- Fixed Rare Data Race That Can Happen During RENAME Table of Mergetree Family
- Fixed Segmentation Fault in Function Arrayintersect
- Fixed Reading from Array(lowcardinality) Column in Rare Case When Column Contained a Long Sequence of Empty Arrays
- Fix Crash in Full/right JOIN When We Joining on Nullable Vs Not Nullable
- Fix No Message Received Exception While Fetching Parts Between Replicas
- Fixed Arrayintersect Function Wrong Result in Case of Several Repeated Values in Single Array
- Fix a Race Condition During Concurrent ALTER COLUMN Queries That Could Lead to a Server Crash
- Fix Incorrect Result in Full/right JOIN with Const Column
- Fix Duplicates in GLOBAL JOIN with Asterisk
- Fix Parameter Deduction in ALTER MODIFY of Column CODEC When Column Type Is Not Specified
- Functions Cutquerystringandfragment() and Querystringandfragment() Now Works Correctly When URL Contains a Fragment and No Query
- Fix Rare Bug When Setting Min_bytes_to_use_direct_io Is Greater Than Zero, Which Occures When Thread Have to Seek Backward in Column File
- Fix Wrong Argument Types for Aggregate Functions with Lowcardinality Arguments
- Fix Wrong Name Qualification in GLOBAL JOIN
- Fix Function Toisoweek Result for Year 1970
- Fix Drop, TRUNCATE and OPTIMIZE Queries Duplication, When Executed on ON CLUSTER for Replicatedmergetree* Tables Family
Build/Testing/Packaging Improvement
12- Hardening Debug Build: More Granular Memory Mappings and Aslr; Add Memory Protection for Mark Cache and Index
- Add Support for Cmake Variables Enable_protobuf, Enable_parquet and Enable_brotli Which Allows to Enable/disable the Above Features (same as We Can Do for Librdkafka, Mysql, Etc)
- Add Ability to Print Process List and Stacktraces of All Threads If Some Queries Are Hung After Test Run
- Add Retries on Connection Loss Error in Clickhouse-test
- Add Freebsd Build with Vagrant and Build with Thread Sanitizer to Packager Script
- Now User Asked for Password for User 'default' During Installation
- Suppress Warning in Rdkafka Library
- Allow Ability to Build Without Ssl
- Add a Way to Launch Clickhouse-server Image from a Custom User
- Upgrade Contrib Boost to 1.69
- Disable Usage of Mremap When Compiled with Thread Sanitizer
- Add Test Checking Using Format Schema via HTTP Interface
Improvement
14- Topk and Topkweighted Now Supports Custom Loadfactor
- Allow to Use Parallel_replicas_count > 1 Even for Tables Without Sampling (the Setting Is Simply Ignored for Them)
- Support for CREATE OR REPLACE VIEW
- Buffer Table Engine Now Supports PREWHERE
- Add Ability to Start Replicated Table Without Metadata in Zookeeper in Readonly Mode
- Fixed Flicker of Progress Bar in Clickhouse-client
- Allow to Disable Functions with Hyperscan Library on per User Basis to Limit Potentially Excessive and Uncontrolled Resource Usage
- Add Version Number Logging in All Errors
- Added Restriction to the Multimatch Functions Which Requires String Size to Fit into Unsigned Int
- Improved Usage of Scratch Space and Error Handling in Hyperscan
- Fill System.graphite_detentions from a Table Config of *graphitemergetree Engine Tables
- Rename Trigramdistance Function to Ngramdistance and Add More Functions with Caseinsensitive and UTF
- Improved Data Skipping Indices Calculation
- Keep Ordinary, Default, MATERIALIZED and ALIAS Columns in a Single List
New Features
6- Hyperscan Multiple Regular Expression Matching Was Added (functions Multimatchany, Multimatchanyindex, Multifuzzymatchany, Multifuzzymatchanyindex)
- Multisearchfirstposition Function Was Added
- Implement the Predefined Expression Filter per Row for Tables
- A New Type of Data Skipping Indices Based on Bloom Filters (can Be Used for Equal, in and Like Functions)
- Added ASOF JOIN Which Allows to Run Queries That Join to the Most Recent Value Known
- Rewrite Multiple COMMA JOIN to CROSS JOIN
Performance Improvement
2Bug Fixes
5- Fixed Type of Setting Max_partitions_per_insert_block from Boolean to Uint64
- Fixed Possible Crash in Bitmap* Functions #5220 #5228 (andy Yang)
- Fixed Very Rare Data Race Condition That Could Happen When Executing a Query with UNION ALL Involving at Least Two Selects from System.columns, System.tables, System.parts, System.parts_tables or Tables of Merge Family and Performing ALTER of Columns of the Related Tables Concurrently
- Fixed Error Set for IN Is Not Created Yet in Case of Using Single Lowcardinality Column in the Left Part of IN
- Modification of Retention Function: If a Row Satisfies Both the First and NTH Condition, Only the First Satisfied Condition Is Added to the Data State