mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-30 03:22:14 +00:00
28 KiB
28 KiB
ClickHouse release v21.10.1.8013-prestable FIXME as compared to v21.9.1.7770-prestable
Backward Incompatible Change
- Fix the issue that in case of some sophisticated query with column aliases identical to the names of expressions, bad cast may happen. This fixes #25447. This fixes #26914. This fix may introduce backward incompatibility: if there are different expressions with identical names, exception will be thrown. It may break some rare cases when
enable_optimize_predicate_expression
is set. #26639 (Alexey Milovidov). - Do not output trailing zeros in text representation of
Decimal
types. Example:1.23
will be printed instead of1.230000
for decimal with scale 6. This closes #15794. It may introduce slight incompatibility if your applications somehow relied on the trailing zeros. Serialization in output formats can be controlled with the settingoutput_format_decimal_trailing_zeros
. Implementation oftoString
and casting to String is changed unconditionally. #27680 (Alexey Milovidov). - Now MergeTreeSettings
replicated_max_parallel_sends
,replicated_max_parallel_sends_for_table
,replicated_max_parallel_fetches
,replicated_max_parallel_fetches_for_table
do nothing. They never worked well and were replaced withmax_replicated_fetches_network_bandwidth
,max_replicated_sends_network_bandwidth
andbackground_fetches_pool_size
. #28404 (alesapin).
New Feature
- Generate a unique server uuid when server starts. #20089 (Bharat Nallan).
- Added new commands BACKUP and RESTORE. #21945 (Vitaly Baranov).
- Partitioned write into s3 table function. #23051 (Vladimir Chebotarev).
- Implementation of short circuit function evaluation, closes #12587. Add settings
short_circuit_function_evaluation
to configure short circuit function evaluation. #23367 (Kruglov Pavel). - Add feature for creating user-defined functions. #23978 (Realist007).
- Add support for INTERSECT, EXCEPT, ANY, ALL operators. #24757 (Kirill Ershov).
- IDisk interface to store data on web server of static files. Closes #23982. #25251 (Kseniia Sumarokova).
- Introduce lz4 compression for import / export. #25310 (Bharat Nallan).
- Support the case when the data is enclosed in array in JSONAsString input format. Closes #25517. #25633 (Kruglov Pavel).
- Add new column
last_queue_update_exception
tosystem.replicas
table. #26843 (nvartolomei). - ALTER TABLE ... MATERIALIZE COLUMN. #27038 (Vladimir Chebotarev).
-
- Add replicated storage of user, roles, row policies, quotas and settings profiles through ZooKeeper (experimental). #27426 (Kevin Michel).
- Allow positional arguments under setting
enable_positional_arguments
. Closes #2592. #27530 (Kseniia Sumarokova). - Added ComplexKeyRangeHashed dictionary. Closes #22029. #27629 (Maksim Kita).
- add conversion functions between snowflake id and dateTime(dateTime64) Close #27058. #27704 (jasine).
- Add feature for creating user-defined functions as lambda expressions. Syntax
CREATE FUNCTION {function_name} as ({parameters}) -> {function core}
. ExampleCREATE FUNCTION plus_one as (a) -> a + 1
. Authors @Realist007. #27796 (Maksim Kita). - Add
getServerPort
function to allow getting server port. When the port is not used by the server, throw an exception. #27900 (Amos Bird). - Accept user settings related to file formats in
SETTINGS
clause inCREATE
query. This closes #27580. #28037 (Nikita Mikhaylov). - Add a system table of table_views, convenient to query the dependency relationship between tables and views. #28082 (zhongyuankai).
- Added
executable
storage engine and table function. Authors @ruct. #28102 (Maksim Kita). - Added
ExecutablePool
storage. #28518 (Maksim Kita).
Performance Improvement
- Introducing two checks in
sequenceMatch
andsequenceCount
that allow for early exit when some deterministic part of the sequence pattern is missing from the events list. This change unlocks many queries that would previously fail due to reaching operations cap, and generally speeds up the pipeline. #27729 (Jakub Kuklis). - Make
hasAll
filter condition leverage bloom filter data-skipping indexes. #27984 (Braulio Valdivielso Martínez). - Speed up sumIf and countIf aggregation functions. #28272 (Raúl Marín).
- Enhance primary key analysis with always monotonic information of binary functions, notably non-zero constant division. #28302 (Amos Bird).
Improvement
- Create virtual projection for
min_max
indices. Now, whenallow_experimental_projection_optimization
is enabled, queries will use minmax index instead of reading a part when possible. #26286 (Amos Bird). - improve Materialize TTL by recalculating ttl.txt only without actual ttl action. #27019 (lthaooo).
- Improved the existence condition judgment and empty string node judgment when clickhouse-keeper creates znode. #27125 (小路).
- Don't silently ignore errors and don't count delays in
ReadBufferFromS3
. #27484 (Vladimir Chebotarev). - Add
log_queries_probability
setting that allows user to write to query_log only a sample of queries. Closes #16609. #27527 (Nikolay Degterinsky). - Disable arrayJoin on partition expressions. #27648 (Raúl Marín).
-
- Add
FROM INFILE
command. #27655 (Filatenkov Artur).
- Add
- Enables query parameters to be passed in the body of http requests. #27706 (Hermano Lustosa).
- Remove duplicate index analysis and avoid possible invalid limit checks during projection analysis. #27742 (Amos Bird).
- Add aggregate function
quantileBFloat16Weighted
similarly to other quantile...Weighted functions. This closes #27745. #27758 (Ivan Novitskiy). - Now
ALTER MODIFY COLUM
DataType toNullable(DataType)
doesn't require mutation. #27787 (victorgao). - Allow symlinks for library dictionaty path. #27815 (Kseniia Sumarokova).
- Add function
SHA512
. #27830 (zhanglistar). - Use Multipart copy upload for large S3 objects. #27858 (ianton-ru).
- Improve remote query cancelation (in case of remote server abnormaly terminated). #27881 (Azat Khuzhin).
- Enable tcp_keep_alive_timeout by default. #27882 (Azat Khuzhin).
- Fix incorrect assertion during writing to StorageKafka. #27885 (Azat Khuzhin).
- Support lambda argument for APPLY column transformer which allows applying functions with more than one argument. This is for #27877. #27901 (Amos Bird).
- Add interactive documentation in
clickhouse-client
about how to reset the password. This is useful in scenario when user has installed ClickHouse, set up the password and instantly forget it. See #27750. #27903 (Alexey Milovidov). - Allow to create dictionaries with empty attributes list. #27905 (Maksim Kita).
- Added
replication_wait_for_inactive_replica_timeout
setting. It allows to specify how long to wait for inactive replicas to executeALTER
/OPTIMZE
/TRUNCATE
query (default is 120 seconds). Ifreplication_alter_partitions_sync
is 2 and some replicas are not active for more thanreplication_wait_for_inactive_replica_timeout
seconds, thenUNFINISHED
will be thrown. #27931 (Alexander Tokmakov). - Add a setting
empty_result_for_aggregation_by_constant_keys_on_empty_set
to control the behavior of grouping by constant keys on empty set. This is to bring back the old baviour of #6842. #27932 (Amos Bird). - Lower restrictions for Enum data type to allow attaching compatible data. Closes #26672. #28028 (Dmitry Novik).
- Support ON CONFLICT clause when inserting into PostgreSQL table engine or table function. Closes #27727. #28081 (Kseniia Sumarokova).
- Support implicit conversions between index in operator
[]
and key of typeMap
(e.g. differentInt
types,String
andFixedString
). #28096 (Anton Popov). - Enable optimize_distributed_group_by_sharding_key by default. #28105 (Azat Khuzhin).
- Fix
zookeeper_log.address
(before the first patch in this PR the address was always::
) and reduce number of callsgetpeername(2)
for this column (since each time entry forzookeeper_log
is addedgetpeername()
is called, cache this address in the zookeeper client to avoid this). #28212 (Azat Khuzhin). - Fix removing of parts in a Temporary state which can lead to an unexpected exception (
Part %name% doesn't exist
). Fixes #23661. #28221 (Azat Khuzhin). - Added libhdfs3_conf in server config instead of export env LIBHDFS3_CONF in clickhouse-server.service. #28268 (Zhichang Yu).
- Use real tmp file instead of predefined "rows_sources" for vertical merges. This avoids generating garbage directories in tmp disks. #28299 (Amos Bird).
- Speed up data parts loading by delaying table startup process. #28313 (Amos Bird).
- Allow ssl connection for RabbitMQ engine. #28365 (Kseniia Sumarokova).
- Fix removing of parts in a Temporary state (follow up for #28221). #28366 (Azat Khuzhin).
- Do not allow creating StorageMaterializedPostgreSQL with bad arguments. Closes #28423. #28430 (Kseniia Sumarokova).
- Introduce
connection_wait_timeout
(default to 5 seconds, 0 - do not wait) setting for MySQL engine. #28474 (Azat Khuzhin). - Fix strange sessions expiration logic in Keeper. Probably it should help in CI: https://clickhouse-test-reports.s3.yandex.net/0/6bd9b82141c98dcd7796fd9d08326831095ba519/stress_test_(debug).html#fail1. #28519 (alesapin).
- To be added. Closes #28529. #28614 (Kseniia Sumarokova).
Bug Fix
- Bugfix for windowFunnel's "strict" mode. This fixes #27469. #27563 (achimbab).
-
- Fix bug with aliased column in
Distributed
table. #27652 (Vladimir C).
- Fix bug with aliased column in
- Fixed another case of
Unexpected merged part ... intersecting drop range ...
error. #27656 (Alexander Tokmakov). - Fix bad type cast when functions like
arrayHas
are applied to arrays of LowCardinality of Nullable of different non-numeric types likeDateTime
andDateTime64
. In previous versions bad cast occurs. In new version it will lead to exception. This closes #26330. #27682 (Alexey Milovidov). - Fix column filtering with union distinct in subquery. Closes #27578. #27689 (Kseniia Sumarokova).
- After https://github.com/ClickHouse/ClickHouse/pull/26384. To execute
GRANT WITH REPLACE OPTION
now the current user should haveGRANT OPTION
for access rights it's going to grant AND for access rights it's going to revoke. #27701 (Vitaly Baranov). - After https://github.com/ClickHouse/ClickHouse/pull/25687. Add backquotes for the default database shown in CREATE USER. #27702 (Vitaly Baranov).
- Remove duplicated source files in CMakeLists.txt in arrow-cmake. #27736 (李扬).
- Fix possible crash when asynchronous connection draining is enabled and hedged connection is disabled. #27774 (Amos Bird).
- Prevent crashes for some formats when NULL (tombstone) message was coming from Kafka. Closes #19255. #27794 (filimonov).
- Fix a rare bug in
DROP PART
which can lead to the errorUnexpected merged part intersects drop range
. #27807 (alesapin). - Fix a couple of bugs that may cause replicas to diverge. #27808 (Alexander Tokmakov).
- After https://github.com/ClickHouse/ClickHouse/pull/26864. Fix shutdown of
NamedSessionStorage
: session contexts stored inNamedSessionStorage
are now destroyed before destroying the global context. #27875 (Vitaly Baranov). - Fix PostgreSQL-style cast (
::
operator) with negative numbers. #27876 (Anton Popov). - Fix selecting with extremes from a column of the type
LowCardinality(UUID)
. #27918 (Vitaly Baranov). - Check cluster name before creating Distributed table, do not allow to create a table with incorrect cluster name. Fixes #27832. #27927 (Alexander Tokmakov).
- Fix checking access grants when executing GRANT WITH REPLACE statement with ON CLUSTER clause. This PR improves fix https://github.com/ClickHouse/ClickHouse/pull/27701. #27983 (Vitaly Baranov).
- Fix cases, when read buffer fails with 'attempt to read after end of file'. Closes #26149. #28150 (Filatenkov Artur).
Build/Testing/Packaging Improvement
- Enable Thread Fuzzer in Stress Test. Thread Fuzzer is ClickHouse feature that allows to test more permutations of thread scheduling and discover more potential issues. This closes #9813. This closes #9814. This closes #9515. This closes #9516. #27538 (Alexey Milovidov).
- Add support for build with
clang-13
. This closes #27705. #27714 (Alexey Milovidov). - Improve support for build with
clang-13
. #27777 (Sergei Semin). - Temporarily switched ubuntu apt repository to mirror ru.archive.ubuntu.com as default one(archive.ubuntu.com) is not responding from our CI. #28016 (Ilya Yatsishin).
- Print out git status information at CMake configure stage. #28047 (Braulio Valdivielso Martínez).
- Add new log level
<test>
for testing environments. #28559 (alesapin).
Bug Fix (user-visible misbehaviour in official stable or prestable release)
- Fix handling null value with type of Nullable(String) in function JSONExtract. This fixes #27929 and #27930 . This was introduced in https://github.com/ClickHouse/ClickHouse/pull/25452 . #27939 (Amos Bird).
- Fix extremely rare segfaults on shutdown due to incorrect order of context/config reloader shutdown. #28088 (nvartolomei).
- Fixed possible excessive number of conditions moved from
WHERE
toPREWHERE
(optimization controlled by settingsoptimize_move_to_prewhere
). #28139 (lthaooo). - Fix bug in clickhouse-keeper which can lead to endless logs when
rotate_logs_interval
decreased. #28152 (alesapin). - Multiple small fixes for projections. See detailed description in pr. #28178 (Amos Bird).
- Fix incorrect behavior in
clickhouse-keeper
when list watches (getChildren
) triggered withset
requests for children. #28190 (alesapin). - Fix a rare bug in
clickhouse-keeper
when the client can receive a watch response before request-response. #28197 (alesapin). - Fix possible read of uninitialized memory for queries with
Nullable(LowCardinality)
type and extremes. Fixes #28165. #28205 (Nikolai Kochetov). - Fix reading of custom TLD w/o new line at EOF. #28213 (Azat Khuzhin).
- Fix inconsistent result in queries with
ORDER BY
andMerge
tables with enabled settingoptimize_read_in_order
. #28266 (Anton Popov). - Fix intersecting parts due to new part had been replaced with an empty part. #28310 (Azat Khuzhin).
- Fix NOT-IN index optimization when not all key columns are used. This fixes #28120. #28315 (Amos Bird).
- Fix non joined rows from nullable column. Close #27691. #28349 (Vladimir C).
- Fix rare case when changes of
clickhouse-keeper
settings may lead to lost logs and server hung. #28360 (alesapin). - Fix lack of quotes for table names in MaterializedPostgreSQL engine. Closes #28316. #28433 (Kseniia Sumarokova).
- Fixed possible ZooKeeper watches leak on background processing of distributed DDL queue. Closes #26036. #28446 (Alexander Tokmakov).
- Fix bug which can lead to error
Existing table metadata in ZooKeeper differs in sorting key expression.
after alter ofReplicatedVersionedCollapsingMergeTree
. Fixes #28515. #28528 (alesapin). - Fix
There is no subcolumn
error, while select from tables, which haveNested
columns and scalar columns with dot in name and the same prefix asNested
(e.g.n.id UInt32, n.arr1 Array(UInt64), n.arr2 Array(UInt64)
). #28531 (Anton Popov). - Fix UUID overlap in DROP TABLE for internal DDL from MaterializeMySQL. #28533 (Azat Khuzhin).
- Fix endless loop for truncated bzip2 archive. #28543 (Azat Khuzhin).
NO CL ENTRY
- NO CL ENTRY: 'Add executable table function'. #23192 (ruct).
- NO CL ENTRY: 'DOCSUP-12413: macros support in functions cluster and clusterAllReplicas'. #27759 (olgarev).
- NO CL ENTRY: 'Revert "less sys calls #2: make vdso work again"'. #27829 (Alexey Milovidov).
- NO CL ENTRY: 'Revert "Do not miss exceptions from the ThreadPool"'. #27844 (Alexey Milovidov).
- NO CL ENTRY: 'Revert "Improve 01730_distributed_group_by_no_merge_order_by_long"'. #28128 (alesapin).
- NO CL ENTRY: 'Revert "Revert "less sys calls #2: make vdso work again""'. #28132 (Alexey Milovidov).
- NO CL ENTRY: 'Update src/Functions/GatherUtils/Sources.h'. #28186 (sdk2).
- NO CL ENTRY: 'Revert "Add test for #13398"'. #28274 (Alexander Tokmakov).
- NO CL ENTRY: 'fix minor typo'. #28629 (flynn).