ClickHouse v21.9 Release Notes
Release Date: 2021-09-09 // over 2 years ago-
Backward Incompatible Change
- 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). - π Do not allow to apply parametric aggregate function with
-Merge
combinator to aggregate function state if state was produced by aggregate function with different parameters. For example, state offooState(42)(x)
cannot be finalized withfooMerge(s)
orfooMerge(123)(s)
, parameters must be specified explicitly likefooMerge(42)(s)
and must be equal. It does not affect some special aggregate functions likequantile
andsequence*
that use parameters for finalization only. #26847 (tavplubix). - Under clickhouse-local, always treat local addresses with a port as remote. #26736 (RaΓΊl MarΓn).
- β‘οΈ 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). - π Now, scalar subquery always returns
Nullable
result if it's type can beNullable
. It is needed because in case of empty subquery it's result should beNull
. Previously, it was possible to get error about incompatible types (type deduction does not execute scalar subquery, and it could use not-nullable type). Scalar subquery with empty result which can't be converted toNullable
(likeArray
orTuple
) now throws error. Fixes #25411. #26423 (Nikolai Kochetov). - Introduce syntax for here documents. Example
SELECT $doc$ VALUE $doc$
. #26671 (Maksim Kita). This change is backward incompatible if in query there are identifiers that contain$
#28768. - β‘οΈ Now indices can handle Nullable types, including
isNull
andisNotNull
. #12433 and #12455 (Amos Bird) and #27250 (Azat Khuzhin). But this was done with on-disk format changes, and even though new server can read old data, old server cannot. Also, in case you haveMINMAX
data skipping indices, you may getData after mutation/merge is not byte-identical
error, since new index will have.idx2
extension while before it was.idx
. That said, that you should not delay updating all existing replicas, in this case, otherwise, if old replica (<21.9) will download data from new replica with 21.9+ it will not be able to apply index for downloaded part.
π New Feature
- Implementation of short circuit function evaluation, closes #12587. Add settings
short_circuit_function_evaluation
to configure short circuit function evaluation. #23367 (Kruglov Pavel). - β Add support for INTERSECT, EXCEPT, ANY, ALL operators. #24757 (Kirill Ershov). (Kseniia Sumarokova).
- β Add support for encryption at the virtual file system level (data encryption at rest) using AES-CTR algorithm. #24206 (Latysheva Alexandra). (Vitaly Baranov) #26733 #26377 #26465.
- β Added natural language processing (NLP) functions for tokenization, stemming, lemmatizing and search in synonyms extensions. #24997 (Nikolay Degterinsky).
- β Added integration with S2 geometry library. #24980 (Andr0901). (Nikita Mikhaylov).
- β Add SQLite table engine, table function, database engine. #24194 (Arslan Gumerov). (Kseniia Sumarokova).
- β Added support for custom query for
MySQL
,PostgreSQL
,ClickHouse
,JDBC
,Cassandra
dictionary source. Closes #1270. #26995 (Maksim Kita). - β Add shared (replicated) storage of user, roles, row policies, quotas and settings profiles through ZooKeeper. #27426 (Kevin Michel).
- β Add compression for
INTO OUTFILE
that automatically choose compression algorithm. Closes #3473. #27134 (Filatenkov Artur). - β Add
INSERT ... FROM INFILE
similarly toSELECT ... INTO OUTFILE
. #27655 (Filatenkov Artur). - Added
complex_key_range_hashed
dictionary. Closes #22029. #27629 (Maksim Kita). - π Support expressions in JOIN ON section. Close #21868. #24420 (Vladimir C).
- π§ When client connects to server, it receives information about all warnings that are already were collected by server. (It can be disabled by using option
--no-warnings
). Addsystem.warnings
table to collect warnings about server configuration. #26246 (Filatenkov Artur). #26282 (Filatenkov Artur). - π Allow using constant expressions from with and select in aggregate function parameters. Close #10945. #27531 (abel-cheng).
- β Add
tupleToNameValuePairs
, a function that turns a named tuple into an array of pairs. #27505 (Braulio Valdivielso MartΓnez). - β Add support for
bzip2
compression method for import/export. Closes #22428. #27377 (Nikolay Degterinsky). - Added
bitmapSubsetOffsetLimit(bitmap, offset, cardinality_limit)
function. It creates a subset of bitmap limit the results tocardinality_limit
with offset ofoffset
. #27234 (DHBin). - β Add column
default_database
tosystem.users
. #27054 (kevin wan). - π Supported
cluster
macros inside table functions 'cluster' and 'clusterAllReplicas'. #26913 (polyprogrammist). - β Add new functions
currentRoles()
,enabledRoles()
,defaultRoles()
. #26780 (Vitaly Baranov). - π New functions
currentProfiles()
,enabledProfiles()
,defaultProfiles()
. #26714 (Vitaly Baranov). - Add functions that return (initial_)query_id of the current query. This closes #23682. #26410 (Alexey Boykov).
- β Add
REPLACE GRANT
feature. #26384 (Caspian). - π
EXPLAIN
query now hasEXPLAIN ESTIMATE ...
mode that will show information about read rows, marks and parts from MergeTree tables. Closes #23941. #26131 (fastio). - β Added
system.zookeeper_log
table. All actions of ZooKeeper client are logged into this table. Implements #25449. #26129 (tavplubix). - Zero-copy replication for
ReplicatedMergeTree
overHDFS
storage. #25918 (Zhichang Yu). - π Allow to insert Nested type as array of structs in
Arrow
,ORC
andParquet
input format. #25902 (Kruglov Pavel). - β Add a new datatype
Date32
(store data as Int32), support date range same withDateTime64
support load parquet date32 to ClickHouseDate32
Add new functiontoDate32
liketoDate
. #25774 (LiuNeng). - π Allow setting default database for users. #25268. #25687 (kevin wan).
- β Add an optional parameter to
MongoDB
engine to accept connection string options and support SSL connection. Closes #21189. Closes #21041. #22045 (Omar Bazaraa).
Experimental Feature
- Added a compression codec
AES_128_GCM_SIV
which encrypts columns instead of compressing them. #19896 (PHO). Will be rewritten, do not use. - π Rename
MaterializeMySQL
toMaterializedMySQL
. #26822 (tavplubix).
π Performance Improvement
- Improve the performance of fast queries when
max_execution_time = 0
by reducing the number ofclock_gettime
system calls. #27325 (filimonov). - π Specialize date time related comparison to achieve better performance. This fixes #27083 . #27122 (Amos Bird).
- π Share file descriptors in concurrent reads of the same files. There is no noticeable performance difference on Linux. But the number of opened files will be significantly (10..100 times) lower on typical servers and it makes operations easier. See #26214. #26768 (alexey-milovidov).
- π Improve latency of short queries, that require reading from tables with large number of columns. #26371 (Anton Popov).
- π Don't build sets for indices when analyzing a query. #26365 (RaΓΊl MarΓn).
- Vectorize the SUM of Nullable integer types with native representation (David Manzanares, RaΓΊl MarΓn). #26248 (RaΓΊl MarΓn).
- Compile expressions involving columns with
Enum
types. #26237 (Maksim Kita). - Compile aggregate functions
groupBitOr
,groupBitAnd
,groupBitXor
. #26161 (Maksim Kita). - π Improved memory usage with better block size prediction when reading empty DEFAULT columns. Closes #17317. #25917 (Vladimir Chebotarev).
- β¬οΈ Reduce memory usage and number of read rows in queries with
ORDER BY primary_key
. #25721 (Anton Popov). - Enable
distributed_push_down_limit
by default. #27104 (Azat Khuzhin). - π Make
toTimeZone
monotonicity when timeZone is a constant value to support partition puring when use sql like:. #26261 (huangzhaowei).
π Improvement
- Mark window functions as ready for general use. Remove the
allow_experimental_window_functions
setting. #27184 (Alexander Kuzmenkov). - π Improve compatibility with non-whole-minute timezone offsets. #27080 (RaΓΊl MarΓn).
- If file descriptor in
File
table is regular file - allow to read multiple times from it. It allowsclickhouse-local
to read multiple times from stdin (with multiple SELECT queries or subqueries) if stdin is a regular file likeclickhouse-local --query "SELECT * FROM table UNION ALL SELECT * FROM table" ... < file
. This closes #11124. Co-authored with (alexey-milovidov). #25960 (BoloniniD). - β Remove duplicate index analysis and avoid possible invalid limit checks during projection analysis. #27742 (Amos Bird).
- Enable query parameters to be passed in the body of HTTP requests. #27706 (Hermano Lustosa).
- Disallow
arrayJoin
on partition expressions. #27648 (RaΓΊl MarΓn). - π² Log client IP address if authentication fails. #27514 (Misko Lee).
- π Use bytes instead of strings for binary data in the GRPC protocol. #27431 (Vitaly Baranov).
- Send response with error message if HTTP port is not set and user tries to send HTTP request to TCP port. #27385 (Braulio Valdivielso MartΓnez).
- Add
_CAST
function for internal usage, which will not preserve type nullability, but non-internal cast will preserve according to settingcast_keep_nullable
. Closes #12636. #27382 (Kseniia Sumarokova). - Add setting
log_formatted_queries
to log additional formatted query intosystem.query_log
. It's useful for normalized query analysis because functions likenormalizeQuery
andnormalizeQueryKeepNames
don't parse/format queries in order to achieve better performance. #27380 (Amos Bird). - Add two settings
max_hyperscan_regexp_length
andmax_hyperscan_regexp_total_length
to prevent huge regexp being used in hyperscan related functions, such asmultiMatchAny
. #27378 (Amos Bird). - Memory consumed by bitmap aggregate functions now is taken into account for memory limits. This closes #26555. #27252 (alexey-milovidov).
- β Add 10 seconds cache for S3 proxy resolver. #27216 (ianton-ru).
- Split global mutex into individual regexp construction. This helps avoid huge regexp construction blocking other related threads. #27211 (Amos Bird).
- π Support schema for PostgreSQL database engine. Closes #27166. #27198 (Kseniia Sumarokova).
- Track memory usage in clickhouse-client. #27191 (Filatenkov Artur).
- Try recording
query_kind
insystem.query_log
even when query fails to start. #27182 (Amos Bird). - Added columns
replica_is_active
that maps replica name to is replica active status to tablesystem.replicas
. Closes #27138. #27180 (Maksim Kita). - π Allow to pass query settings via server URI in Web UI. #27177 (kolsys).
- β Add a new metric called
MaxPushedDDLEntryID
which is the maximum ddl entry id that current node push to zookeeper. #27174 (Fuwang Hu). - π Improved the existence condition judgment and empty string node judgment when
clickhouse-keeper
creates znode. #27125 (ε°θ·―). - π Merge JOIN correctly handles empty set in the right. #27078 (Vladimir C).
- π Now functions can be shard-level constants, which means if it's executed in the context of some distributed table, it generates a normal column, otherwise it produces a constant value. Notable functions are:
hostName()
,tcpPort()
,version()
,buildId()
,uptime()
, etc. #27020 (Amos Bird). - β‘οΈ Updated
extractAllGroupsHorizontal
- upper limit on the number of matches per row can be set via optional third argument. #26961 (Vasily Nemkov). - π¦ Expose
RocksDB
statistics via system.rocksdb table. Read rocksdb options from ClickHouse config (rocksdb...
keys). NOTE: ClickHouse does not rely on RocksDB, it is just one of the additional integration storage engines. #26821 (Azat Khuzhin). - π Less verbose internal RocksDB logs. NOTE: ClickHouse does not rely on RocksDB, it is just one of the additional integration storage engines. This closes #26252. #26789 (alexey-milovidov).
- 0οΈβ£ Changing default roles affects new sessions only. #26759 (Vitaly Baranov).
- π³ Watchdog is disabled in docker by default. Fix for not handling ctrl+c. #26757 (Mikhail f. Shiryaev).
SET PROFILE
now applies constraints too if they're set for a passed profile. #26730 (Vitaly Baranov).- π Improve handling of
KILL QUERY
requests. #26675 (RaΓΊl MarΓn). - π
mapPopulatesSeries
function supportsMap
type. #26663 (Ildus Kurbangaliev). - Fix excessive (x2) connect attempts with
skip_unavailable_shards
. #26658 (Azat Khuzhin). - Avoid hanging
clickhouse-benchmark
if connection fails (i.e. on EMFILE). #26656 (Azat Khuzhin). - π Allow more threads to be used by the Kafka engine. #26642 (feihengye).
- β Add round-robin support for
clickhouse-benchmark
(it does not differ from the regular multi host/port run except for statistics report). #26607 (Azat Khuzhin). - Executable dictionaries (
executable
,executable_pool
) enable creation with DDL query usingclickhouse-local
. Closes #22355. #26510 (Maksim Kita). - Set client query kind for
mysql
andpostgresql
compatibility protocol handlers. #26498 (anneji-dev). - Apply
LIMIT
on the shards for queries likeSELECT * FROM dist ORDER BY key LIMIT 10
w/distributed_push_down_limit=1
. Avoid runningDistinct
/LIMIT BY
steps for queries likeSELECT DISTINCT shading_key FROM dist ORDER BY key
. Nowdistributed_push_down_limit
is respected byoptimize_distributed_group_by_sharding_key
optimization. #26466 (Azat Khuzhin). - π Updated protobuf to 3.17.3. Changelogs are available on https://github.com/protocolbuffers/protobuf/releases. #26424 (Ilya Yatsishin).
- Enable
use_hedged_requests
setting that allows to mitigate tail latencies on large clusters. #26380 (alexey-milovidov). - π Improve behaviour with non-existing host in user allowed host list. #26368 (ianton-ru).
- Add ability to set
Distributed
directory monitor settings via CREATE TABLE (i.e.CREATE TABLE dist (key Int) Engine=Distributed(cluster, db, table) SETTINGS monitor_batch_inserts=1
and similar). #26336 (Azat Khuzhin). - πΎ Save server address in history URLs in web UI if it differs from the origin of web UI. This closes #26044. #26322 (alexey-milovidov).
- β Add events to profile calls to
sleep
/sleepEachRow
. #26320 (RaΓΊl MarΓn). - π Allow to reuse connections of shards among different clusters. It also avoids creating new connections when using
cluster
table function. #26318 (Amos Bird). - 0οΈβ£ Control the execution period of clear old temporary directories by parameter with default value. #26212. #26313 (fastio).
- Add a setting
function_range_max_elements_in_block
to tune the safety threshold for data volume generated by functionrange
. This closes #26303. #26305 (alexey-milovidov). - π Check hash function at table creation, not at sampling. Add settings for MergeTree, if someone create a table with incorrect sampling column but sampling never be used, disable this settings for starting the server without exception. #26256 (zhaoyu).
- Added
output_format_avro_string_column_pattern
setting to put specified String columns to Avro as string instead of default bytes. Implements #22414. #26245 (Ilya Golshtein). - β Add information about column sizes in
system.columns
table forLog
andTinyLog
tables. This closes #9001. #26241 (Nikolay Degterinsky). - π§ Don't throw exception when querying
system.detached_parts
table if there is custom disk configuration anddetached
directory does not exist on some disks. This closes #26078. #26236 (alexey-milovidov). - Check for non-deterministic functions in keys, including constant expressions like
now()
,today()
. This closes #25875. This closes #11333. #26235 (alexey-milovidov). - convert timestamp and timestamptz data types to
DateTime64
in PostgreSQL table engine. #26234 (jasine). - π Apply aggressive IN index analysis for projections so that better projection candidate can be selected. #26218 (Amos Bird).
- β Remove GLOBAL keyword for IN when scalar function is passed. In previous versions, if user specified
GLOBAL IN f(x)
exception was thrown. #26217 (Amos Bird). - β Add error id (like
BAD_ARGUMENTS
) to exception messages. This closes #25862. #26172 (alexey-milovidov). - π Fix incorrect output with --progress option for clickhouse-local. Progress bar will be cleared once it gets to 100% - same as it is done for clickhouse-client. Closes #17484. #26128 (Kseniia Sumarokova).
- Add
merge_selecting_sleep_ms
setting. #26120 (lthaooo). - Remove complicated usage of Linux AIO with one block readahead and replace it with plain simple synchronous IO with O_DIRECT. In previous versions, the setting
min_bytes_to_use_direct_io
may not work correctly ifmax_threads
is greater than one. Reading with direct IO (that is disabled by default for queries and enabled by default for large merges) will work in less efficient way. This closes #25997. #26003 (alexey-milovidov). - Flush
Distributed
table onREPLACE TABLE
query. Resolves #24566 - Do not replace (or create) table on[CREATE OR] REPLACE TABLE ... AS SELECT
query if insertion into new table fails. Resolves #23175. #25895 (tavplubix). - π² Add
views
column to system.query_log containing the names of the (materialized or live) views executed by the query. Adds a new log table (system.query_views_log
) that contains information about each view executed during a query. Modifies view execution: When an exception is thrown while executing a view, any view that has already startedwill continue running until it finishes. This used to be the behaviour under parallel_view_processing=true and now it's always the same behaviour. - Dependent views now report reading progress to the context. #25714 (RaΓΊl MarΓn). - Do connection draining asynchonously upon finishing executing distributed queries. A new server setting is added
max_threads_for_connection_collector
which specifies the number of workers to recycle connections in background. If the pool is full, connection will be drained synchronously but a bit different than before: It's drained after we send EOS to client, query will succeed immediately after receiving enough data, and any exception will be logged instead of throwing to the client. Added settingdrain_timeout
(3 seconds by default). Connection draining will disconnect upon timeout. #25674 (Amos Bird). - Support for multiple includes in configuration. It is possible to include users configuration, remote servers configuration from multiple sources. Simply place
<include />
element withfrom_zk
,from_env
orincl
attribute and it will be replaced with the substitution. #24404 (nvartolomei). - Fix multiple block insertion into distributed table with
insert_distributed_one_random_shard = 1
. This is a marginal feature. Mark as improvement. #23140 (Amos Bird). - π Support
LowCardinality
andFixedString
keys/values forMap
type. #21543 (hexiaoting). - Enable reloading of local disk config. #19526 (taiyang-li).
π Bug Fix
- π Fix a couple of bugs that may cause replicas to diverge. #27808 (tavplubix).
- π Fix a rare bug in
DROP PART
which can lead to the errorUnexpected merged part intersects drop range
. #27807 (alesapin). - Prevent crashes for some formats when NULL (tombstone) message was coming from Kafka. Closes #19255. #27794 (filimonov).
- π Fix column filtering with union distinct in subquery. Closes #27578. #27689 (Kseniia Sumarokova).
- π 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 postgresql table function resulting in non-closing connections. Closes #26088. #27662 (Kseniia Sumarokova).
- π Fixed another case of
Unexpected merged part ... intersecting drop range ...
error. #27656 (tavplubix). - π Fix an error with aliased column in
Distributed
table. #27652 (Vladimir C). - After setting
max_memory_usage*
to non-zero value it was not possible to reset it back to 0 (unlimited). It's fixed. #27638 (tavplubix). - π Fixed underflow of the time value when constructing it from components. Closes #27193. #27605 (Vasily Nemkov).
- π Fix crash during projection materialization when some parts contain missing columns. This fixes #27512. #27528 (Amos Bird).
- π fix metric
BackgroundMessageBrokerSchedulePoolTask
, maybe mistyped. #27452 (Ben). - π Fix distributed queries with zero shards and aggregation. #27427 (Azat Khuzhin).
- Compatibility when
/proc/meminfo
does not contain KB suffix. #27361 (Mike Kot). - π Fix incorrect result for query with row-level security, PREWHERE and LowCardinality filter. Fixes #27179. #27329 (Nikolai Kochetov).
- π Fixed incorrect validation of partition id for MergeTree tables that created with old syntax. #27328 (tavplubix).
- π Fix MySQL protocol when using parallel formats (CSV / TSV). #27326 (RaΓΊl MarΓn).
- π Fix
Cannot find column
error for queries with sampling. Was introduced in #24574. Fixes #26522. #27301 (Nikolai Kochetov). - π Fix errors like
Expected ColumnLowCardinality, gotUInt8
orBad cast from type DB::ColumnVector<char8_t> to DB::ColumnLowCardinality
for some queries withLowCardinality
inPREWHERE
. And more importantly, fix the lack of whitespace in the error message. Fixes #23515. #27298 (Nikolai Kochetov). - Fix
distributed_group_by_no_merge = 2
withdistributed_push_down_limit = 1
oroptimize_distributed_group_by_sharding_key = 1
withLIMIT BY
andLIMIT OFFSET
. #27249 (Azat Khuzhin). These are obscure combination of settings that no one is using. - π Fix mutation stuck on invalid partitions in non-replicated MergeTree. #27248 (Azat Khuzhin).
- In case of ambiguity, lambda functions prefer its arguments to other aliases or identifiers. #27235 (RaΓΊl MarΓn).
- π Fix column structure in merge join, close #27091. #27217 (Vladimir C).
- π In rare cases
system.detached_parts
table might contain incorrect information for some parts, it's fixed. Fixes #27114. #27183 (tavplubix). - π Fix uninitialized memory in functions
multiSearch*
with empty array, close #27169. #27181 (Vladimir C). - π Fix synchronization in GRPCServer. This PR fixes #27024. #27064 (Vitaly Baranov).
- Fixed
cache
,complex_key_cache
,ssd_cache
,complex_key_ssd_cache
configuration parsing. Optionsallow_read_expired_keys
,max_update_queue_size
,update_queue_push_timeout_milliseconds
,query_wait_timeout_milliseconds
were not parsed for dictionaries with noncache
type. #27032 (Maksim Kita). - π Fix possible mutation stack due to race with DROP_RANGE. #27002 (Azat Khuzhin).
- π Now partition ID in queries like
ALTER TABLE ... PARTITION ID xxx
validates for correctness. Fixes #25718. #26963 (alesapin). - π Fix "Unknown column name" error with multiple JOINs in some cases, close #26899. #26957 (Vladimir C).
- π Fix reading of custom TLDs (stops processing with lower buffer or bigger file). #26948 (Azat Khuzhin).
- π Fix error
Missing columns: 'xxx'
whenDEFAULT
column references other non materialized column withoutDEFAULT
expression. Fixes #26591. #26900 (alesapin). - π Fix loading of dictionary keys in
library-bridge
forlibrary
dictionary source. #26834 (Kseniia Sumarokova). - π Aggregate function parameters might be lost when applying some combinators causing exceptions like
Conversion from AggregateFunction(topKArray, Array(String)) to AggregateFunction(topKArray(10), Array(String)) is not supported
. It's fixed. Fixes #26196 and #26433. #26814 (tavplubix). - Add
event_time_microseconds
value forREMOVE_PART
insystem.part_log
. In previous versions is was not set. #26720 (Azat Khuzhin). - π Do not remove data on ReplicatedMergeTree table shutdown to avoid creating data to metadata inconsistency. #26716 (nvartolomei).
- π Sometimes
SET ROLE
could work incorrectly, this PR fixes that. #26707 (Vitaly Baranov). - π Some fixes for parallel formatting (https://github.com/ClickHouse/ClickHouse/issues/26694). #26703 (RaΓΊl MarΓn).
- π Fix potential nullptr dereference in window functions. This fixes #25276. #26668 (Alexander Kuzmenkov).
- π Fix clickhouse-client history file conversion (when upgrading from the format of 3 years old version of clickhouse-client) if file is empty. #26589 (Azat Khuzhin).
- π Fix incorrect function names of groupBitmapAnd/Or/Xor (can be displayed in some occasions). This fixes. #26557 (Amos Bird).
- β‘οΈ Update
chown
cmd check in clickhouse-server docker entrypoint. It fixes the bug that cluster pod restart failed (or timeout) on kubernetes. #26545 (Ky Li). - π Fix crash in
RabbitMQ
shutdown in caseRabbitMQ
setup was not started. Closes #26504. #26529 (Kseniia Sumarokova). - π Fix issues with
CREATE DICTIONARY
query if dictionary name or database name was quoted. Closes #26491. #26508 (Maksim Kita). - π Fix broken column name resolution after rewriting column aliases. This fixes #26432. #26475 (Amos Bird).
- π Fix some fuzzed msan crash. Fixes #22517. #26428 (Nikolai Kochetov).
- π Fix infinite non joined block stream in
partial_merge_join
close #26325. #26374 (Vladimir C). - π Fix possible crash when login as dropped user. This PR fixes #26073. #26363 (Vitaly Baranov).
- Fix
optimize_distributed_group_by_sharding_key
for multiple columns (leads to incorrect result w/optimize_skip_unused_shards=1
/allow_nondeterministic_optimize_skip_unused_shards=1
and multiple columns in sharding key expression). #26353 (Azat Khuzhin). - π Fixed rare bug in lost replica recovery that may cause replicas to diverge. #26321 (tavplubix).
- π Fix zstd decompression (for import/export in zstd framing format that is unrelated to tables data) in case there are escape sequences at the end of internal buffer. Closes #26013. #26314 (Kseniia Sumarokova).
- π Fix logical error on join with totals, close #26017. #26250 (Vladimir C).
- Remove excessive newline in
thread_name
column insystem.stack_trace
table. This fixes #24124. #26210 (alexey-milovidov). - π Fix potential crash if more than one
untuple
expression is used. #26179 (alexey-milovidov). - π» Don't throw exception in
toString
for Nullable Enum if Enum does not have a value for zero, close #25806. #26123 (Vladimir C). - π Fixed incorrect
sequence_id
in MySQL protocol packets that ClickHouse sends on exception during query execution. It might cause MySQL client to reset connection to ClickHouse server. Fixes #21184. #26051 (tavplubix). - Fix for the case that
cutToFirstSignificantSubdomainCustom()
/cutToFirstSignificantSubdomainCustomWithWWW()
/firstSignificantSubdomainCustom()
returns incorrect type for consts, and henceoptimize_skip_unused_shards
does not work:. #26041 (Azat Khuzhin). - π Fix possible mismatched header when using normal projection with prewhere. This fixes #26020. #26038 (Amos Bird).
- Fix sharding_key from column w/o function for remote() (before
select * from remote('127.1', system.one, dummy)
leads toUnknown column: dummy, there are only columns .
error). #25824 (Azat Khuzhin). - π Fixed
Not found column ...
andMissing column ...
errors when selecting fromMaterializeMySQL
. Fixes #23708, #24830, #25794. #25822 (tavplubix). - Fix
optimize_skip_unused_shards_rewrite_in
for non-UInt64 types (may select incorrect shards eventually or throwCannot infer type of an empty tuple
orFunction tuple requires at least one argument
). #25798 (Azat Khuzhin).
π Build/Testing/Packaging Improvement
- β Now we ran stateful and stateless tests in random timezones. Fixes #12439. Reading String as DateTime and writing DateTime as String in Protobuf format now respect timezone. Reading UInt16 as DateTime in Arrow and Parquet formats now treat it as Date and then converts to DateTime with respect to DateTime's timezone, because Date is serialized in Arrow and Parquet as UInt16. GraphiteMergeTree now respect time zone for rounding of times. Fixes #5098. Author: @alexey-milovidov. #15408 (alesapin).
- β
clickhouse-test
supports SQL tests with Jinja2 templates. #26579 (Vladimir C). - β Add support for build with
clang-13
. This closes #27705. #27714 (alexey-milovidov). #27777 (Sergei Semin) - β Add CMake options to build with or without specific CPU instruction set. This is for #17469 and #27509. #27508 (alexey-milovidov).
- π Fix linking of auxiliar programs when using dynamic libraries. #26958 (RaΓΊl MarΓn).
- β‘οΈ Update RocksDB to
2021-07-16
master. #26411 (alexey-milovidov).
- Do not output trailing zeros in text representation of