ClickHouse v19.17.4.11 Release Notes
Release Date: 2019-11-22 // over 4 years ago-
Backward Incompatible Change
- Using column instead of AST to store scalar subquery results for better performance. Setting
enable_scalar_subquery_optimization
was added in 19.17 and it was enabled by default. It leads to errors like this during upgrade to 19.17.2 or 19.17.3 from previous versions. This setting was disabled by default in 19.17.4, to make possible upgrading from 19.16 and older versions without errors. #7392 (Amos Bird)
🆕 New Feature
- ➕ Add the ability to create dictionaries with DDL queries. #7360 (alesapin)
- 👍 Authentication in S3 table function and storage. Now we have complete support for S3 import/export. #7623 (Vladimir Chebotarev)
- 👉 Make
bloom_filter
type of index supportingLowCardinality
andNullable
#7363 #7561 (Nikolai Kochetov) - ➕ Add function
isValidJSON
to check that passed string is a valid json. #5910 #7293 (Vdimir) - Implement
arrayCompact
function #7328 (Memo) - Created function
hex
for Decimal numbers. It works likehex(reinterpretAsString())
, but doesn't delete last zero bytes. #7355 (Mikhail Korotov) - ➕ Add
arrayFill
andarrayReverseFill
functions, which replace elements by other elements in front/back of them in the array. #7380 (hcz) - Up precision of
avg
aggregate function result to max ofDecimal
type #7446 (Andrey Konyaev) - ➕ Add
CRC32IEEE()
/CRC64()
support #7480 (Azat Khuzhin) - Implement
char
function similar to one in mysql #7486 (sundyli) - ➕ Add
bitmapTransform
function. It transforms an array of values in a bitmap to another array of values, the result is a new bitmap #7598 (Zhichang Yu) - Implemented
javaHashUTF16LE()
function #7651 (achimbab) - Add
_shard_num
virtual column for the Distributed engine #7624 (Azat Khuzhin)
Experimental Feature
- 👌 Support for processors (new query execution pipeline) in
MergeTree
. #7181 (Nikolai Kochetov)
🐛 Bug Fix
- 🛠 Fix incorrect float parsing in
Values
#7817 #7870 (tavplubix) - 🛠 Fix rare deadlock which can happen when trace_log is enabled. #7838 (filimonov)
- Prevent message duplication when producing Kafka table has any MVs selecting from it #7265 (Ivan)
- 👌 Support for
Array(LowCardinality(Nullable(String)))
inIN
. Resolves #7364 #7366 (achimbab) - Add handling of
SQL_TINYINT
andSQL_BIGINT
, and fix handling ofSQL_FLOAT
data source types in ODBC Bridge. #7491 (Denis Glazachev) - 🛠 Fix aggregation (
avg
and quantiles) over empty decimal columns #7431 (Andrey Konyaev) - 🛠 Fix
INSERT
into Distributed withMATERIALIZED
columns #7377 (Azat Khuzhin) - 🚚 Make
MOVE PARTITION
work if some parts of partition are already on destination disk or volume #7434 (Vladimir Chebotarev) - 🛠 Fixed bug with hardlinks failing to be created during mutations in
ReplicatedMergeTree
in multi-disk configurations. #7558 (Vladimir Chebotarev) - 🛠 Fixed a bug with a mutation on a MergeTree when whole part remains unchanged and best space is being found on another disk #7602 (Vladimir Chebotarev)
- 🆓 Fixed bug with
keep_free_space_ratio
not being read from disks configuration #7645 (Vladimir Chebotarev) - 🛠 Fix bug with table contains only
Tuple
columns or columns with complex paths. Fixes 7541. #7545 (alesapin) - Do not account memory for Buffer engine in max_memory_usage limit #7552 (Azat Khuzhin)
- 🛠 Fix final mark usage in
MergeTree
tables ordered bytuple()
. In rare cases it could lead toCan't adjust last granule
error while select. #7639 (Anton Popov) - 🛠 Fix bug in mutations that have predicate with actions that require context (for example functions for json), which may lead to crashes or strange exceptions. #7664 (alesapin)
- 🛠 Fix mismatch of database and table names escaping in
data/
andshadow/
directories #7575 (Alexander Burmak) - 👌 Support duplicated keys in RIGHT|FULL JOINs, e.g.
ON t.x = u.x AND t.x = u.y
. Fix crash in this case. #7586 (Artem Zuikov) - 🛠 Fix
Not found column <expression> in block
when joining on expression with RIGHT or FULL JOIN. #7641 (Artem Zuikov) - One more attempt to fix infinite loop in
PrettySpace
format #7591 (Olga Khvostikova) - 🛠 Fix bug in
concat
function when all arguments wereFixedString
of the same size. #7635 (alesapin) - 🛠 Fixed exception in case of using 1 argument while defining S3, URL and HDFS storages. #7618 (Vladimir Chebotarev)
- 🛠 Fix scope of the InterpreterSelectQuery for views with query #7601 (Azat Khuzhin)
👌 Improvement
Nullable
columns recognized and NULL-values handled correctly by ODBC-bridge #7402 (Vasily Nemkov)- Write current batch for distributed send atomically #7600 (Azat Khuzhin)
- 👻 Throw an exception if we cannot detect table for column name in query. #7358 (Artem Zuikov)
- Add
merge_max_block_size
setting toMergeTreeSettings
#7412 (Artem Zuikov) - Queries with
HAVING
and withoutGROUP BY
assume group by constant. So,SELECT 1 HAVING 1
now returns a result. #7496 (Amos Bird) - 👌 Support parsing
(X,)
as tuple similar to python. #7501, #7562 (Amos Bird) - 👉 Make
range
function behaviors almost like pythonic one. #7518 (sundyli) - ➕ Add
constraints
columns to tablesystem.settings
#7553 (Vitaly Baranov) - 👍 Better Null format for tcp handler, so that it's possible to use
select ignore(<expression>) from table format Null
for perf measure via clickhouse-client #7606 (Amos Bird) - 📜 Queries like
CREATE TABLE ... AS (SELECT (1, 2))
are parsed correctly #7542 (hcz)
🐎 Performance Improvement
- 🐎 The performance of aggregation over short string keys is improved. #6243 (Alexander Kuzmenkov, Amos Bird)
- ⚙ Run another pass of syntax/expression analysis to get potential optimizations after constant predicates are folded. #7497 (Amos Bird)
- 👉 Use storage meta info to evaluate trivial
SELECT count() FROM table;
#7510 (Amos Bird, alexey-milovidov) - Vectorize processing
arrayReduce
similar to AggregatoraddBatch
. #7608 (Amos Bird) - 🐎 Minor improvements in performance of
Kafka
consumption #7475 (Ivan)
🏗 Build/Testing/Packaging Improvement
- ➕ Add support for cross-compiling to the CPU architecture AARCH64. Refactor packager script. #7370 #7539 (Ivan)
- 🐧 Unpack darwin-x86_64 and linux-aarch64 toolchains into mounted Docker volume when building packages #7534 (Ivan)
- ⚡️ Update Docker Image for Binary Packager #7474 (Ivan)
- 🛠 Fixed compile errors on MacOS Catalina #7585 (Ernest Poletaev)
- 🔨 Some refactoring in query analysis logic: split complex class into several simple ones. #7454 (Artem Zuikov)
- 🛠 Fix build without submodules #7295 (proller)
- 👍 Better
add_globs
in CMake files #7418 (Amos Bird) - ✂ Remove hardcoded paths in
unwind
target #7460 (Konstantin Podshumok) - 👍 Allow to use mysql format without ssl #7524 (proller)
Other
- ➕ Added ANTLR4 grammar for ClickHouse SQL dialect #7595 #7596 (alexey-milovidov)
- Using column instead of AST to store scalar subquery results for better performance. Setting