Project: ClickHouse (App Definition and Development / Database)
File: v20.9.2.20-stable.md

Add table function `view` which turns an subquery into a table object. This helps passing queries around. For instance, it can be used in remote/cluster table functions. (). Now we can write `select apply(length) apply(max) from widestringtable` to find out the maxium length of all string columns. And the follow two variants are provided too:. (). Added an aggregate function RankCorrelationSpearman which simply computes a rank correlation coefficient. Continuation of . (). Added database generation by query util. Continuation of . (). Optimize queries with LIMIT/LIMIT BY/ORDER BY for distributed with GROUP BY shardingkey (under optimizeskipunusedshards and optimizedistributedgroupbysharding_key). (). Improvements in StorageRabbitMQ: Added connection and channels failure handling, proper commits, insert failures handling, better exchanges, queue durability and queue resume opportunity, new queue settings. Fixed tests. (). Added Redis requirepass authorization. (). Add precision argument for DateTime type. (). Improve the Kafka engine performance by providing independent thread for each consumer. Separate thread pool for streaming engines (like Kafka). (). Add default compression codec for parts in `system.partlog` with name `defaultcompression_codec`. (). Replace wide integers from boost multiprecision with implementation from https://github.com/cerevra/int. (). Implicitly convert primary key to not null in MaterializeMySQL(Same as MySQL). Fixes . (). Added new setting systemeventsshowzerovalues as proposed in . (). Now obfuscator supports UUID type as proposed in . (). Creating sets for multiple `JOIN` and `IN` in parallel. It may slightly improve performance for queries with several different `IN subquery` expressions. (). Now TTLs will be applied during merge if they were not previously materialized. (). MySQL handler returns `OK` for queries like `SET @@var = value`. Such statement is ignored. It is needed because some MySQL drivers send `SET @@` query for setup after handshake #issuecomment-686222422 . (). Disallow empty time_zone argument in `toStartOf` type of functions. (). ... (). Backported in : Allow using multi-volume storage configuration in storage Distributed. (). Fix arrayJoin() capturing in lambda (LOGICAL_ERROR). (). Fix GRANT ALL statement when executed on a non-global level. (). Disallows `CODEC` on `ALIAS` column type. Fixes . (). Better check for tuple size in SSD cache complex key external dictionaries. This fixes . (). Fix QueryPlan lifetime (for EXPLAIN PIPELINE graph=1) for queries with nested interpreter. (). Fix exception during ALTER LIVE VIEW query with REFRESH command. (). Fix crash during `ALTER` query for table which was created `AS table_function`. Fixes . (). Stop query execution if exception happened in `PipelineExecutor` itself. This could prevent rare possible query hung. (). Stop query execution if exception happened in `PipelineExecutor` itself. This could prevent rare possible query hung. Continuation of . (). Fix bug which leads to wrong merges assignment if table has partitions with a single part. (). Proxy restart/start/stop/reload of SysVinit to systemd (if it is used). (). Check for array size overflow in `topK` aggregate

Without this check the user may send a query with carefully crafter parameters that will lead to server crash. This closes . (). Backported in : Fixed the incorrect sorting order of `Nullable` column. This fixes . (). Backported in : Fix rare segfaults in functions with combinator -Resample, which could appear in result of overflow with very large parameters. (). Backported in : Cleanup data directory after Zookeeper exceptions during CreateQuery for StorageReplicatedMergeTree Engine. (). Backported in : Added the checker as neither calling `lc->isNullable()` nor calling `ls->getDictionaryPtr()->isNullable()` would return the correct result. (). Backported in : Fix wrong Decimal multiplication result caused wrong decimal scale of result column. (). Backported in : Stuff the query into ASTFunction's argument list so that we don't break the presumptions of some AST visitors. This fixes . (). Backported in : Fix bug when `ALTER UPDATE` mutation with Nullable column in assignment expression and constant value (like `UPDATE x = 42`) leads to incorrect value in column or segfault. Fixes , . (). Backported in : Fixed missed default database name in metadata of materialized view when executing `ALTER ... MODIFY QUERY`. (). Backported in : Replace column transformer should replace identifiers with cloned ASTs. This fixes . (). Backported in : Fix wrong monotonicity detection for shrunk `Int -> Int` cast of signed types. It might lead to incorrect query result. This bug is unveiled in . (). Backported in : Fix SIGSEGV for an attempt to INSERT into StorageFile(fd). (). Backported in : Fix the issue when some invocations of `extractAllGroups` function may trigger "Memory limit exceeded" error. This fixes . (). Backported in : Fixed `.metadata.tmp File exists` error when using `MaterializeMySQL` database engine. (). Backported in : Publish CPU frequencies per logical core in `system.asynchronous_metrics`. This fixes . (). Backported in : Now settings `numberoffreeentriesinpooltoexecutemutation` and `numberoffreeentriesinpooltolowermaxsizeofmerge` can be equal to `backgroundpool_size`. (). Backported in : Fix crash in RIGHT or FULL JOIN with join_algorith='auto' when memory limit exceeded and we should change HashJoin with MergeJoin. (). Backported in : If function `bar` was called with specifically crafted arguments, buffer overflow was possible. This closes . (). Backported in : We already use padded comparison between String and FixedString (https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h#L333). This PR applies the same logic to field comparison which corrects the usage of FixedString as primary keys. This fixes . (). Integration tests use default base config. All config changes are explicit with mainconfigs, userconfigs and dictionaries parameters for instance. (). ... (). Fix the logic in backport script. In previous versions it was triggered for any labels of 100% red color. It was strange. (). Fix missed `#include <atomic>`. (). Prepare for build with clang 11. (). Lower binary size in debug build by removing debug info from `Functions`. This is needed only for one internal project in Yandex who is using very old linker. (). Changelog for 20.7 . (). NO CL ENTRY: 'Revert "Less number of threads in builder"'. ().