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

Accept user settings related to file formats (e.g. `formatcsvdelimiter`) in the `SETTINGS` clause when creating a table that uses `File` engine, and use these settings in all `INSERT`s and `SELECT`s. The file format settings changed in the current user session, or in the `SETTINGS` clause of a DML query itself, no longer affect the query. (). Enable `usecompactformatindistributedpartsnames` by default (see the documentation for the reference). (). Added new ALTER UPDATE/DELETE IN PARTITION syntax. (). Add StorageEmbeddedRocksdb Engine. (). Introduce the query `ALTER TABLE ... DROP|DETACH PART 'part_name'`. (). Make it possible to change the path to history file in `clickhouse-client` using the `--history_file` parameter. (). Updated DateTime, DateTime64 formatting to accept string Date literal format. (). Add setting `aggregatefunctionsnullforempty`, this option will rewrite all aggregate functions in a query, adding -OrNull suffix to them. fix . (). Add COLLATE support for Nullable, LowCardinality, Array and Tuple, where nested type is String. Also refactor the code associated with collations in ColumnString.cpp. (). Possibility to distribute the merges between different replicas. Introduces the `executemergesonsinglereplicatimethreshold` mergetree setting. (). add `.xz` compression/decompression support.It enables using `*.xz` in `file()` function.This closes . (). Add new `cmath` functions: - acosh - asinh - atan2 - atanh - cosh - hypot - log1p - sinh. (). Add a possibility to input enum value as it's id in TSV and CSV formats by default. (). New tcpPort() function returns TCP port listened by this server. (). Now we can safely prune partitions with exact match. Useful case: Suppose table is partitioned by intHash64(x) % 100 and the query has condition on intHash64(x) % 100 verbatim, not on x. (). Use Floyd-Rivest algorithm, it should be the best for the ClickHouse use case of partial sorting. Bechmarks are in https://github.com/danlark1/miniselect and . (). Backported in : Fix performance of reading from `Merge` tables over huge number of `MergeTree` tables. Fixes . (). Add `VIEW` subquery description to `EXPLAIN`. Limit push down optimisation for `VIEW`. Add local replicas of `Distributed` to query plan. (). Made `indexOf()` use BloomFilter. (). Throw exception about right sync privileges when MySQL sync user has error privileges. (). Fix possible stack overflow if a loop of materialized views is created. This closes . (). Support SNI in https connections to remote resources. This will allow to connect to Cloudflare servers that require SNI. This fixes . (). Now `ReplicatedMergeTree` tree engines family uses a separate thread pool for replicated fetches. Size of the pool limited by setting `backgroundfetchespool_size` which can be tuned with a server restart. The default value of the setting is 3 and it means that the maximum amount of parallel fetches is equal to 3 (and it allows to utilize 10G network). Fixes #520. (). Now, `<auxiliary_zookeepers>` configuration can be changed in `config.xml` and reloaded without server startup. (). Allow reinterpret between integers and floats of the same size. fix . (). Workaround for use S3 with nginx server as proxy. Nginx currenty does not accept urls with empty path like `http://domain.com?delete`, but vanilla aws-sdk-cpp produces this kind of urls. This commit uses patched aws-sdk-cpp version, which makes urls with "/" as path in this cases, like `http://domain.com/?delete`. (). Remove empty directories for async INSERT at start of Distributed engine. (). Usability improvement: better suggestions in syntax error message when `CODEC` expression is misplaced in `CREATE TABLE` query. This fixes . (). Better exception message when configuration for distributed DDL is absent. This fixes . (). Apply `usecompactformatindistributedpartsnames` for each INSERT (with internal_replication). (). Server refused to startup with exception message if wrong config is given

is missing). (). Add cutToFirstSignificantSubdomainWithWWW(). (). Throw an informative error message when doing ATTACH/DETACH TABLE <DICTIONARY>. Before this PR, `detach table <dict>` works but leads to an ill-formed in-memory metadata. (). Remove empty parts after they were pruned by TTL, mutation, or collapsing merge algorithm. (). Make it possible to connect to `clickhouse-server` secure endpoint which requires SNI. This is possible when `clickhouse-server` is hosted behind TLS proxy. (). Set default `host` and `port` parameters for `SOURCE(CLICKHOUSE(...))` to current instance and set default `user` value to `'default'`. (). Add ability to output all rows as a JSON array in the `JSONEachRow` format, controlled by the `outputformatjsonarrayof_rows` setting. (). Allow formatting named tuples as JSON objects when using JSON input/output formats, controlled by the `outputformatjsonnamedtuplesasobjects` setting, disabled by default. (). Correct grammar in error message in JSONEachRow, JSONCompactEachRow, and RegexpRow input formats. (). Backported in : Throw error when use ColumnTransformer replace non exist column. (). fixes fixes fix remote query failure when using 'if' suffix aggregate function. (). Fixed . (). This will fix optimizereadinorder/optimizeaggregationinorder with max_threads>0 and expression in ORDER BY. (). Fixed uncontrolled growth of TDigest. (). Backported in : Return number of affected rows for INSERT queries via MySQL protocol. Previously ClickHouse used to always return 0, it's fixed. Fixes . (). Turn off parallel parsing when there is no enough memory for all threads to work simultaneously. Also there could be exceptions like "Memory limit exceeded" when somebody will try to insert extremely huge rows (> minchunkbytesforparallel_parsing), because each piece to parse has to be independent set of strings (one or more). (). Fix `IN` operator over several columns and tuples with enabled `transformnullin` setting. Fixes . (). Mask password in datapath in the system.distributionqueue. (). Not for changelog. (). Backported in : Fix optimizetrivialcount_query with partition predicate. (). If no memory can be allocated while writing table metadata on disk, broken metadata file can be written. (). Fix crash when using `any` without any arguments. This is for . cc @azat. (). Abort multipart upload if no data was written to WriteBufferFromS3. (). Fix rare silent crashes when query profiler is on and ClickHouse is installed on OS with glibc version that has (supposedly) broken asynchronous unwind tables for some functions. This fixes . This fixes . (). Prevent clickhouse server crashes when using TimeSeriesGroupSum. (). Backported in : TODO. (). Fix possible error `Illegal type of argument` for queries with `ORDER BY`. Fixes . (). Install script should always create subdirs in config folders. This is only relevant for Docker build with custom config. (). Backported in : Fix optimization of group by with enabled setting `optimizeaggregatorsofgroupby_keys` and joins. Fixes . (). Backported in : Fix order by optimization with monotonous functions. Fixes . (). Blame info was not calculated correctly in `clickhouse-git-import`. (). Fix possible server crash after `ALTER TABLE ... MODIFY COLUMN ... NewType` when `SELECT` have `WHERE` expression on altering column and alter doesn't finished yet. (). Reresolve the IP of the `formatavroschemaregistryurl` in case of errors. (). Fixed wrong result in big integers (128, 256 bit) when casting from double. (). Backported in : Fix Merge(Distributed()) with JOIN. (). Backported in : - Fix optimizedistributedgroupbysharding_key for query with OFFSET only. (). Avoid unnecessary network errors for remote queries which may be cancelled while execution, like queries with `LIMIT`. (). Fix LLVM's libunwind in the case when CFA register is RAX. This is the in . We already have workarounds for this bug. (). Backported in : Bug fix for funciton fuzzBits, related issue: .

Fixed crash on `CREATE TABLE ... AS sometable` query when `sometable` was created `AS table_function()` Fixes . (). Fix bug when `ON CLUSTER` queries may hang forever for non-leader ReplicatedMergeTreeTables. (). fixes fixes Fix MaterializeMySQL SYNC failure when the modify MySQL binlog_checksum. (). Improve adaptive index granularity calculation when incoming blocks of data differ in bytes size a lot. (). Fix ColumnConst comparison which leads to crash. This fixed . (). Backported in : Fix possible wrong index analysis when the types of the index comparison are different. This fixes . (). Backported in : Fix . When clickhouse-copier handle non-partitioned table, throws segfault error. (). Backported in : Fix set index invalidation when there are const columns in the subquery. This fixes . (). Backported in : Fix possible `Unexpected packet Data received from client` error for Distributed queries with `LIMIT`. (). fix `toInt256(inf)` stack overflow. close . (). Backported in : Fix crash while reading from `JOIN` table with `LowCardinality` types. Fixes . (). Backported in : Fixed high CPU usage in background tasks of MergeTree tables. (). Backported in : Fix duplicates after `DISTINCT` which were possible because of incorrect optimization. Fixes . (). (). Backported in : Fix `ORDER BY` with enabled setting `optimizeredundantfunctionsinorder_by`. (). Backported in : Fix bug when mark cache size was underestimated by clickhouse. It may happen when there are a lot of tiny files with marks. (). Backported in : Fix alter query hang when the corresponding mutation was killed on the different replica. Fixes . (). Backported in : Fix the issue when server can stop accepting connections in very rare cases. (). Backported in : When clickhouse-client is used in interactive mode with multiline queries, single line comment was erronously extended till the end of query. This fixes . (). Backported in : Exception `fmt::v7::format_error` can be logged in background for MergeTree tables. This fixes . (). Backported in : In might be determined incorrectly if cluster is circular- (cross-) replicated or not when executing `ON CLUSTER` query due to race condition when `pool_size` > 1. It's fixed. (). Backported in : Fixed `Function not implemented` error when executing `RENAME` query in `Atomic` database with ClickHouse running on Windows Subsystem for Linux. Fixes . (). Backported in : Fixed problem when ClickHouse fails to resume connection to MySQL servers. (). Backported in : Exception message about max table size to drop was displayed incorrectly. (). Backported in : Do not restore parts from WAL if `inmemorypartsenablewal` is disabled. (). Backported in : fix incorrect initialize `maxcompressblocksize` of MergeTreeWriterSettings with `mincompressblocksize`. (). Fix UBSan report when trying to convert infinite floating point number to integer. This closes . (). Fix UBSan report in cache dictionaries. This closes . (). Do not instrument 3rd-party libraries with UBSan. (). Fix UBSan report in Poco. This closes . (). fix querydbgenerate build error. (). Try fix fasttest submodule clone https://clickhouse-test-reports.s3.yandex.net/16132/ad569f6d1bd2ce545db280daf7fbb9b8335de87b/fast_test.html#fail1. (). Fixing unstable test in tests/testflows/ldap/externaluserdirectory/tests/authentications.py. (). bump up rocksdb version to v6.14.5. (). Update embedded timezone data to version 2020d (also update cctz to the latest master). (). Improvements in coverage building images. (). `std::logic_error` is used at line 294 of `base/common/StringRef.h`, so the appropriate `<stdexcept>` header is required. (). NO CL ENTRY: 'sync MySQL DDL atomicly'. (). NO CL ENTRY: 'RBAC Testflows - Server log intrumentation for debug and new ALTER tests'. (). NO CL ENTRY: 'Enabling existing testflows RBAC tests.'. (). NO CL ENTRY: 'Bump protobuf from 3.13.0 to 3.14.0 in /docs/tools'. (). NO CL ENTRY: 'Fixed a problem with the translation of the document'. ().