v.19.1
Bug Fixes
54- error `Column ... queried more than once`
- Make Compiled_expression_cache_size Setting Limited by Default to Lower Memory Consumption
- Fix a Bug That Led to Hangups in Threads That Perform Alters of Replicated Tables and in the Thread That Updates Configuration from Zookeeper
- Fixed a Race Condition When Executing a Distributed ALTER Task
- Fix a Bug When From_zk Config Elements Weren't Refreshed After a Request to Zookeeper Timed Out
- Fix Bug with Wrong Prefix for Ipv4 Subnet Masks
- Fixed Crash (std::terminate) in Rare Cases When a New Thread Cannot Be Created Due to Exhausted Resources
- Fix Bug When in Remote Table Function Execution When Wrong Restrictions Were Used for in Getstructureofremotetable
- Fix a Leak of Netlink Sockets
- Fix Bug with Closing /proc/self/fd Directory Earlier Than All Fds Were Read from /proc After Forking Odbc-bridge Subprocess
- Fixed String to Uint Monotonic Conversion in Case of Usage String in Primary Key
- Fixed Error in Calculation of Integer Conversion Function Monotonicity
- Fixed Segfault in Arrayenumerateuniq, Arrayenumeratedense Functions in Case of Some Invalid Arguments
- Fix UB in Storagemerge
- Fixed Segfault in Functions Adddays, Subtractdays
- Fixed Error: Functions Round, Floor, Trunc, Ceil May Return Bogus Result When Executed on Integer Argument and Large Negative Scale
- Fixed a Bug Induced by 'kill Query Sync' Which Leads to a Core Dump
- Fix Bug with Long Delay After Empty Replication Queue
- Fixed Excessive Memory Usage in Case of Inserting into Table with Lowcardinality Primary Key
- Fixed Lowcardinality Serialization for Native Format in Case of Empty Arrays
- Fixed Incorrect Result While Using Distinct by Single Lowcardinality Numeric Column
- Fixed Specialized Aggregation with Lowcardinality Key (in Case When Compile Setting Is Enabled)
- Fix User and Password Forwarding for Replicated Tables Queries
- Fixed Very Rare Race Condition That Can Happen When Listing Tables in Dictionary Database While Reloading Dictionaries
- Fixed Incorrect Result When HAVING Was Used with ROLLUP or CUBE
- Fixed Column Aliases for Query with JOIN ON Syntax and Distributed Tables
- Fixed Error in Internal Implementation of Quantiletdigest (found by Artem Vakhrushev)
- Correctly Return the Right Type and Properly Handle Locks in Joinget Function
- Fixed Error When System Logs Are Tried to Create Again at Server Shutdown
- Fixed Error: If There Is a Database with Dictionary Engine, All Dictionaries Forced to Load at Server Startup, and If There Is a Dictionary with Clickhouse Source from Localhost, the Dictionary Cannot Load
- Fixed a Bug When the Execution of Mutations Containing IN Operators Was Producing Incorrect Results
- Clickhouse-client Can Segfault on Exit While Loading Data for Command Line Suggestions If It Was Run in Interactive Mode
- Fixed Race Condition When Selecting from System.tables May Give Table Does Not Exist Error
- Fixed Deadlock When SELECT from a Table with File Engine Was Retried After No Such File or Directory Error
- Fixed an Issue: Local Clickhouse Dictionaries Are Loaded via Tcp, But Should Load Within Process
- Fixed No Message Received Error When Interacting with Postgresql ODBC Driver Through TLS Connection
- Temporarily Disable Predicate Optimization for ORDER BY
- Fixed Infinite Loop When Selecting from Table Function Numbers(0)
- Fixed Compile_expressions Bug with Comparison of Big (more Than Int16) Dates
- Fixed Segmentation Fault with Uncompressed_cache=1 and Exception with Wrong Uncompressed Size
- Fixed ALL JOIN with Duplicates in Right Table
- Fixed Wrong Behaviour When Doing INSERT ..
- Fixed Aggregate Functions Execution with Array(lowcardinality) Arguments
- Debian Package: Correct /etc/clickhouse-server/preprocessed Link According to Config
- Fixed Fuzz Test Under Undefined Behavior Sanitizer: Added Parameter Type Check for Quantile*weighted Family of Functions
- Make START REPLICATED SENDS Command Start Replicated Sends
- Fixed Not Found Column for Duplicate Columns in JOIN ON Section
- Now /etc/ssl Is Used as Default Directory with SSL Certificates
- Fixed Crash on Dictionary Reload If Dictionary Not Available
- Fixed Bug with Incorrect Date and Datetime Comparison
- Fixed Incorrect Result When Date and Datetime Arguments Are Used in Branches of Conditional Operator (function If)
- Fix Install Package with Missing /etc/clickhouse-server/config.xml
- Fixed Backward Incompatibility with Old Versions Due to Wrong Implementation of Send_logs_level Setting
- Fixed Backward Incompatibility of Table Function Remote Introduced with Column Comments
Backward Incompatible Changes
3Build/Testing/Packaging Improvements
24- Added Support for Powerpc (ppc64le) Build
- Stateful Functional Tests Are Run on Public Available Dataset
- Fixed Error When the Server Cannot Start with the Bash: /usr/bin/clickhouse-extract-from-config: Operation Not Permitted Message Within Docker or Systemd-nspawn
- Updated Rdkafka Library to V1.0.0-rc5
- Updated Mariadb-client Library
- Some Fixes for Ubsan Builds
- Added Per-commit Runs of Tests with Ubsan Build.
- Added Per-commit Runs of Pvs-studio Static Analyzer.
- Fixed Bugs Found by Pvs-studio
- Fixed Glibc Compatibility Issues
- Move Docker Images to 18.10 and Add Compatibility File for Glibc >= 2.28 #3965 (alesapin)
- Add Env Variable If User Do Not Want to Chown Directories in Server Docker Image
- Enabled Most of the Warnings from -weverything in Clang
- Added a Few More Warnings That Are Available Only in Clang 8
- Link to Libllvm Rather Than to Individual LLVM Libs When Using Shared Linking
- Added Sanitizer Variables for Test Images
- Clickhouse-server Debian Package Will Recommend Libcap2-bin Package to Use Setcap Tool for Setting Capabilities
- Improved Compilation Time, Fixed Includes
- Added Performance Tests for Hash Functions
- Fixed Cyclic Library Dependences
- Improved Compilation with Low Available Memory
- Added Test Script to Reproduce Performance Degradation in Jemalloc
- Fixed Misspells in Comments and String Literals Under Dbms
- Fixed Typos in Comments
Experimental Features
1Improvements
12- Support for IF NOT EXISTS in ALTER TABLE ADD COLUMN Statements Along with IF EXISTS in Drop/modify/clear/comment COLUMN
- Function Parsedatetimebesteffort: Support for Formats Dd.mm.yyyy, Dd.mm.yy, Dd-mm-yyyy, Dd-mon-yyyy, Dd/month/yyyy and Similar
- Capnprotoinputstream Now Support Jagged Structures
- Usability Improvement: Added a Check That Server Process Is Started from the Data Directory's Owner
- Better Logic of Checking Required Columns During Analysis of Queries with Joins
- Decreased the Number of Connections in Case of Large Number of Distributed Tables in a Single Server
- Supported Totals Row for WITH TOTALS Query for ODBC Driver
- Allowed to Use Enums as Integers Inside If Function
- Added Low_cardinality_allow_in_native_format Setting
- Removed Some Redundant Objects from Compiled Expressions Cache to Lower Memory Usage
- Add Check That SET Send_logs_level = 'value' Query Accept Appropriate Value
- Fixed Data Type Check in Type Conversion Functions
New Features
14- Custom per Column Compression Codecs for Tables
- Added Compression Codec Delta
- Allow to ALTER Compression Codecs
- Added Functions Left, Right, Trim, Ltrim, Rtrim, Timestampadd, Timestampsub for SQL Standard Compatibility
- Support for Write in HDFS Tables and Hdfs Table Function
- Added Functions to Search for Multiple Constant Strings from Big Haystack: Multiposition, Multisearch ,firstmatch Also with -utf8, -caseinsensitive, and -caseinsensitiveutf8 Variants
- Pruning of Unused Shards If SELECT Query Filters by Sharding Key (setting Optimize_skip_unused_shards)
- Allow Kafka Engine to Ignore Some Number of Parsing Errors per Block
- Added Support for Catboost Multiclass Models Evaluation
- Added Functions Filesystemavailable, Filesystemfree, Filesystemcapacity
- Added Hashing Functions Xxhash64 and Xxhash32
- Added Gccmurmurhash Hashing Function (gcc Flavoured Murmur Hash) Which Uses the Same Hash Seed as Gcc #4000 (sundyli)
- Added Hashing Functions Javahash, Hivehash
- Added Table Function Remotesecure
Performance Improvements
5- Add a Mergetree Setting Use_minimalistic_part_header_in_zookeeper
- Add an Dfa-based Implementation for Functions Sequencematch and Sequencecount in Case Pattern Does Not Contain Time
- Performance Improvement for Integer Numbers Serialization
- Zero Left Padding Podarray So That -1 Element Is Always Valid and Zeroed
- Reverted Jemalloc Version Which Lead to Performance Degradation