ClickHouse/docs/changelogs/v21.5.1.6601-prestable.md
Alexey Milovidov a433115434 Fix typo
2024-08-04 19:18:00 +02:00

36 KiB

sidebar_position sidebar_label
1 2022

2022 Changelog

ClickHouse release v21.5.1.6601-prestable FIXME as compared to v21.4.1.6422-prestable

Backward Incompatible Change

  • Change comparison of integers and floating point numbers when integer is not exactly representable in the floating point data type. In new version comparison will return false as the rounding error will occur. Example: 9223372036854775808.0 != 9223372036854775808, because the number 9223372036854775808 is not representable as floating point number exactly (and 9223372036854775808.0 is rounded to 9223372036854776000.0). But in previous version the comparison will return as the numbers are equal, because if the floating point number 9223372036854776000.0 get converted back to UInt64, it will yield 9223372036854775808. For the reference, the Python programming language also treats these numbers as equal. But this behaviour was dependend on CPU model (different results on AMD64 and AArch64 for some out-of-range numbers), so we make the comparison more precise. It will treat int and float numbers equal only if int is represented in floating point type exactly. #22595 (Alexey Milovidov).

New Feature

  • Implement function arrayFold(x1,...,xn,accum -> expression, array1,...,arrayn, init_accum) that applies the expression to each element of the array (or set of parallel arrays) and collect result in accumulator. #21589 (Dmitry Krylov).
  • Add a setting max_distributed_depth that limits the depth of recursive queries to Distributed tables. Closes #20229. #21942 (flynn).
  • Table function, which allows to process files from s3 in parallel from many nodes in a specified cluster. #22012 (Nikita Mikhaylov).
  • Support for replicas in MySQL/PostgreSQL table engine / table function. Added wrapper storage over MySQL / PostgreSQL storages to allow shards. Closes #20969. #22217 (Kseniia Sumarokova).
  • Update paths to the catboost model configs in config reloading. #22434 (Kruglov Pavel).
  • Add new setting non_replicated_deduplication_window for non-replicated MergeTree inserts deduplication. #22514 (alesapin).
  • FlatDictionary added initial_array_size, max_array_size options. #22521 (Maksim Kita).
  • Added ALTER TABLE ... FETCH PART ... query. It's similar to FETCH PARTITION, but fetches only one part. #22706 (jasong).
  • Added Decimal256 type support in dictionaries. Closes #20979. #22960 (Maksim Kita).

Performance Improvement

  • Add function alignment for possibly better performance. #21431 (Daniel Kutenin).
  • Exclude values that does not belong to the shard from right part of IN section for distributed queries (under optimize_skip_unused_shards_rewrite_in, enabled by default, since it still requires optimize_skip_unused_shards). #21511 (Azat Khuzhin).
  • Disable compression by default when interacting with localhost (with clickhouse-client or server to server with distributed queries) via native protocol. It may improve performance of some import/export operations. This closes #22234. #22237 (Alexey Milovidov).
  • Improve performance of reading from ArrowStream input format for sources other then local file (e.g. URL). #22673 (nvartolomei).
  • Improve performance of intDiv by dynamic dispatch for AVX2. This closes #22314. #23000 (Alexey Milovidov).

Improvement

  • Support dynamic interserver credentials. #14113 (johnskopis).
  • Add clickhouse-library-bridge for library dictionary source. Closes #9502. #21509 (Kseniia Sumarokova).
  • Allow publishing Kafka errors to a virtual column of Kafka engine, controlled by the kafka_handle_error_mode setting. #21850 (fastio).
  • Use nanodbc instead of Poco::ODBC. Closes #9678. Add support for DateTime64 and Decimal* for ODBC table engine. Closes #21961. Fixed issue with cyrillic text being truncated. Closes #16246. Added connection pools for odbc bridge. #21972 (Kseniia Sumarokova).
  • Speeded up reading subset of columns from File-like table engine with internal file written in column oriented data formats (Parquet, Arrow and ORC) This closes #20129 Done by @keen-wolf. #22299 (Nikita Mikhaylov).
  • Correctly check structure of async distributed blocks. #22325 (Azat Khuzhin).
  • Make round function to behave consistently on non-x86_64 platforms. Rounding half to nearest even (Banker's rounding) is used. #22582 (Alexey Milovidov).
  • Clear the rest of the screen and show cursor in clickhouse-client if previous program has left garbage in terminal. This closes #16518. #22634 (Alexey Milovidov).
  • Allow to use CTE in VIEW definition. This closes #22491. #22657 (Amos Bird).
  • Add metric to track how much time is spend during waiting for Buffer layer lock. #22725 (Azat Khuzhin).
  • Allow RBAC row policy via postgresql protocol. Closes #22658. PostgreSQL protocol is enabled in configuration by default. #22755 (Kseniia Sumarokova).
  • MaterializeMySQL (experimental feature). Make Clickhouse to be able to replicate MySQL databases containing views without failing. This is accomplished by ignoring the views. ... #22760 (Christian Frøystad).
  • dateDiff now works with DateTime64 arguments (even for values outside of DateTime range) ... #22931 (Vasily Nemkov).
  • Set background_fetches_pool_size to 8 that is better for production usage with frequent small insertions or slow ZooKeeper cluster. #22945 (Alexey Milovidov).
  • Fix inactive_parts_to_throw_insert=0 with inactive_parts_to_delay_insert>0. #22947 (Azat Khuzhin).
  • Respect max_part_removal_threads for ReplicatedMergeTree. #22971 (Azat Khuzhin).
  • Fix an error handling in Poco HTTP Client for AWS. #22973 (Ernest Zaslavsky).
  • When selecting from MergeTree table with NULL in WHERE condition, in rare cases, exception was thrown. This closes #20019. #22978 (Alexey Milovidov).
  • Add ability to flush buffer only in background for StorageBuffer. #22986 (Azat Khuzhin).
  • Add ability to run clickhouse-keeper with SSL. Config settings keeper_server.tcp_port_secure can be used for secure interaction between client and keeper-server. keeper_server.raft_configuration.secure can be used to enable internal secure communication between nodes. #22992 (alesapin).
  • Increase max_uri_size (the maximum size of URL in HTTP interface) to 1 MiB by default. This closes #21197. #22997 (Alexey Milovidov).
  • Do not perform optimize_skip_unused_shards for cluster with one node. #22999 (Azat Khuzhin).
  • Raised the threshold on max number of matches in result of the function extractAllGroupsHorizontal. #23036 (Vasily Nemkov).
  • Implement functions arrayHasAny, arrayHasAll, has, indexOf, countEqual for generic case when types of array elements are different. In previous versions the functions arrayHasAny, arrayHasAll returned false and has, indexOf, countEqual thrown exception. Also add support for Decimal and big integer types in functions has and similar. This closes #20272. #23044 (Alexey Milovidov).
  • Fix memory tracking with min_bytes_to_use_mmap_io. #23211 (Azat Khuzhin).
  • Make function unhex case insensitive for compatibility with MySQL. #23229 (Alexey Milovidov).

Bug Fix

Build/Testing/Packaging Improvement

Other

Build/Packaging/Testing Improvement

NO CL ENTRY

NOT FOR CHANGELOG / INSIGNIFICANT