ClickHouse v20.4.8.99 Release Notes

Release Date: 2020-08-10 // over 3 years ago
  • ๐Ÿ› Bug Fix

    • ๐Ÿ›  Fixed error in parseDateTimeBestEffort function when unix timestamp was passed as an argument. This fixes #13362. #13441 (alexey-milovidov).
    • ๐Ÿ›  Fixed potentially low performance and slightly incorrect result for uniqExact, topK, sumDistinct and similar aggregate functions called on Float types with NaN values. It also triggered assert in debug build. This fixes #12491. #13254 (alexey-milovidov).
    • ๐Ÿ›  Fixed function if with nullable constexpr as cond that is not literal NULL. Fixes #12463. #13226 (alexey-milovidov).
    • ๐Ÿ›  Fixed assert in arrayElement function in case of array elements are Nullable and array subscript is also Nullable. This fixes #12172. #13224 (alexey-milovidov).
    • ๐Ÿ›  Fixed wrong index analysis with functions. It could lead to pruning wrong parts, while reading from MergeTree tables. Fixes #13060. Fixes #12406. #13081 (Anton Popov).
    • ๐Ÿ›  Fixed unnecessary limiting for the number of threads for selects from local replica. #12840 (Nikolai Kochetov).
    • ๐Ÿ›  Fixed possible extra overflow row in data which could appear for queries WITH TOTALS. #12747 (Nikolai Kochetov).
    • ๐Ÿ›  Fixed performance with large tuples, which are interpreted as functions in IN section. The case when user write WHERE x IN tuple(1, 2, ...) instead of WHERE x IN (1, 2, ...) for some obscure reason. #12700 (Anton Popov).
    • Fixed memory tracking for input_format_parallel_parsing (by attaching thread to group). #12672 (Azat Khuzhin).
    • ๐Ÿ›  Fixed #12293 allow push predicate when subquery contains with clause. #12663 (Winter Zhang).
    • ๐Ÿ›  Fixed #10572 fix bloom filter index with const expression. #12659 (Winter Zhang).
    • ๐Ÿ›  Fixed SIGSEGV in StorageKafka when broker is unavailable (and not only). #12658 (Azat Khuzhin).
    • โž• Added support for function if with Array(UUID) arguments. This fixes #11066. #12648 (alexey-milovidov).
    • ๐Ÿ›  Fixed race condition in external dictionaries with cache layout which can lead server crash. #12566 (alesapin).
    • โœ‚ Removed data for Distributed tables (blocks from async INSERTs) on DROP TABLE. #12556 (Azat Khuzhin).
    • Fixed bug which lead to broken old parts after ALTER DELETE query when enable_mixed_granularity_parts=1. Fixes #12536. #12543 (alesapin).
    • ๐Ÿ‘ Better exception for function in with invalid number of arguments. #12529 (Anton Popov).
    • ๐Ÿ›  Fixed performance issue, while reading from compact parts. #12492 (Anton Popov).
    • ๐Ÿ›  Fixed crash in JOIN with dictionary when we are joining over expression of dictionary key: t JOIN dict ON expr(dict.id) = t.id. Disable dictionary join optimisation for this case. #12458 (Artem Zuikov).
    • ๐Ÿ›  Fixed possible segfault if StorageMerge. Closes #12054. #12401 (tavplubix).
    • ๐Ÿ›  Fixed order of columns in WITH FILL modifier. Previously order of columns of ORDER BY statement wasn't respected. #12306 (Anton Popov).
    • ๐Ÿ”€ Avoid "bad cast" exception when there is an expression that filters data by virtual columns (like _table in Merge tables) or by "index" columns in system tables such as filtering by database name when querying from system.tables, and this expression returns Nullable type. This fixes #12166. #12305 (alexey-milovidov).
    • ๐Ÿ‘‰ Show error after TrieDictionary failed to load. #12290 (Vitaly Baranov).
    • ๐Ÿ›  The function arrayFill worked incorrectly for empty arrays that may lead to crash. This fixes #12263. #12279 (alexey-milovidov).
    • ๐Ÿ›  Implemented conversions to the common type for LowCardinality types. This allows to execute UNION ALL of tables with columns of LowCardinality and other columns. This fixes #8212. This fixes #4342. #12275 (alexey-milovidov).
    • ๐Ÿ›  Fixed the behaviour when during multiple sequential inserts in StorageFile header for some special types was written more than once. This fixed #6155. #12197 (Nikita Mikhaylov).
    • ๐Ÿ›  Fixed logical functions for UInt8 values when they are not equal to 0 or 1. #12196 (Alexander Kazakov).
    • Cap max_memory_usage* limits to the process resident memory. #12182 (Azat Khuzhin).
    • ๐Ÿ›  Fixed dictGet arguments check during GROUP BY injective functions elimination. #12179 (Azat Khuzhin).
    • ๐Ÿ‘ Don't split the dictionary source's table name into schema and table name itself if ODBC connection doesn't support schema. #12165 (Vitaly Baranov).
    • ๐Ÿ›  Fixed wrong logic in ALTER DELETE that leads to deleting of records when condition evaluates to NULL. This fixes #9088. This closes #12106. #12153 (alexey-milovidov).
    • ๐Ÿ›  Fixed transform of query to send to external DBMS (e.g. MySQL, ODBC) in presense of aliases. This fixes #12032. #12151 (alexey-milovidov).
    • ๐Ÿ›  Fixed potential overflow in integer division. This fixes #12119. #12140 (alexey-milovidov).
    • ๐Ÿ›  Fixed potential infinite loop in greatCircleDistance, geoDistance. This fixes #12117. #12137 (alexey-milovidov).
    • ๐Ÿšš Normalize "pid" file handling. In previous versions the server may refuse to start if it was killed without proper shutdown and if there is another process that has the same pid as previously runned server. Also pid file may be removed in unsuccessful server startup even if there is another server running. This fixes #3501. #12133 (alexey-milovidov).
    • ๐Ÿ›  Fixed handling dependency of table with ENGINE=Dictionary on dictionary. This fixes #10994. This fixes #10397. #12116 (Vitaly Baranov).
    • ๐Ÿ›  Fixed performance for selects with UNION caused by wrong limit for the total number of threads. Fixes #12030. #12103 (Nikolai Kochetov).
    • ๐Ÿ›  Fixed segfault with -StateResample combinators. #12092 (Anton Popov).
    • Fixed empty result_rows and result_bytes metrics in system.quey_log for selects. Fixes #11595. #12089 (Nikolai Kochetov).
    • ๐Ÿ›  Fixed unnecessary limiting the number of threads for selects from VIEW. Fixes #11937. #12085 (Nikolai Kochetov).
    • ๐Ÿ›  Fixed possible crash while using wrong type for PREWHERE. Fixes #12053, #12060. #12060 (Nikolai Kochetov).
    • ๐Ÿ›  Fixed error Expected single dictionary argument for function for function defaultValueOfArgumentType with LowCardinality type. Fixes #11808. #12056 (Nikolai Kochetov).
    • ๐Ÿ›  Fixed error Cannot capture column for higher-order functions with Tuple(LowCardinality) argument. Fixes #9766. #12055 (Nikolai Kochetov).
    • ๐Ÿ“‡ Parse tables metadata in parallel when loading database. This fixes slow server startup when there are large number of tables. #12045 (tavplubix).
    • ๐Ÿ›  Make topK aggregate function return Enum for Enum types. This fixes #3740. #12043 (alexey-milovidov).
    • ๐Ÿ›  Fixed constraints check if constraint is a constant expression. This fixes #11360. #12042 (alexey-milovidov).
    • ๐Ÿ›  Fixed incorrect comparison of tuples with Nullable columns. Fixes #11985. #12039 (Nikolai Kochetov).
    • Fixed calculation of access rights when allow_introspection_functions=0. #12031 (Vitaly Baranov).
    • ๐Ÿ›  Fixed wrong result and potential crash when invoking function if with arguments of type FixedString with different sizes. This fixes #11362. #12021 (alexey-milovidov).
    • ๐Ÿ›  A query with function neighbor as the only returned expression may return empty result if the function is called with offset -9223372036854775808. This fixes #11367. #12019 (alexey-milovidov).
    • ๐Ÿ›  Fixed calculation of access rights when allow_ddl=0. #12015 (Vitaly Baranov).
    • ๐Ÿ›  Fixed potential array size overflow in generateRandom that may lead to crash. This fixes #11371. #12013 (alexey-milovidov).
    • ๐Ÿ›  Fixed potential floating point exception. This closes #11378. #12005 (alexey-milovidov).
    • ๐Ÿ›  Fixed wrong setting name in log message at server startup. #11997 (alexey-milovidov).
    • ๐Ÿ›  Fixed Query parameter was not set in Values format. Fixes #11918. #11936 (tavplubix).
    • ๐Ÿ›  Keep aliases for substitutions in query (parametrized queries). This fixes #11914. #11916 (alexey-milovidov).
    • ๐Ÿ›  Fixed bug with no moves when changing storage policy from default one. #11893 (Vladimir Chebotarev).
    • ๐Ÿ›  Fixed potential floating point exception when parsing DateTime64. This fixes #11374. #11875 (alexey-milovidov).
    • Fixed memory accounting via HTTP interface (can be significant with wait_end_of_query=1). #11840 (Azat Khuzhin).
    • ๐Ÿ“‡ Parse metadata stored in zookeeper before checking for equality. #11739 (Azat Khuzhin).

    ๐ŸŽ Performance Improvement

    • ๐ŸŽ Index not used for IN operator with literals", performance regression introduced around v19.3. This fixes "#10574. #12062 (nvartolomei).

    ๐Ÿ— Build/Testing/Packaging Improvement

    • โšก๏ธ Install ca-certificates before the first apt-get update in Dockerfile. #12095 (Ivan Blinkov).