ClickHouse/docs/changelogs/v24.9.1.3278-stable.md

96 KiB
Raw Blame History

sidebar_position sidebar_label
1 2024

2024 Changelog

ClickHouse release v24.9.1.3278-stable (6d058d82a8) FIXME as compared to v24.9.1.1-new (e02b434d2f)

Backward Incompatible Change

  • Allow to write SETTINGS before FORMAT in a chain of queries with UNION when subqueries are inside parentheses. This closes #39712. Change the behavior when a query has the SETTINGS clause specified twice in a sequence. The closest SETTINGS clause will have a preference for the corresponding subquery. In the previous versions, the outermost SETTINGS clause could take a preference over the inner one. #60197 (Alexey Milovidov).
  • Do not allow explicitly specifying UUID when creating a table in Replicated database. Also, do not allow explicitly specifying ZooKeeper path and replica name for *MergeTree tables in Replicated databases. #66104 (Alexander Tokmakov).
  • Reimplement Dynamic type. Now when the limit of dynamic data types is reached new types are not cast to String but stored in a special data structure in binary format with binary encoded data type. Now any type ever inserted into Dynamic column can be read from it as subcolumn. #68132 (Pavel Kruglov).
  • Expressions like a[b].c are supported for named tuples, as well as named subscripts from arbitrary expressions, e.g., expr().name. This is useful for processing JSON. This closes #54965. In previous versions, an expression of form expr().name was parsed as tupleElement(expr(), name), and the query analyzer was searching for a column name rather than for the corresponding tuple element; while in the new version, it is changed to tupleElement(expr(), 'name'). In most cases, the previous version was not working, but it is possible to imagine a very unusual scenario when this change could lead to incompatibility: if you stored names of tuple elements in a column or an alias, that was named differently than the tuple element's name: SELECT 'b' AS a, CAST([tuple(123)] AS 'Array(Tuple(b UInt8))') AS t, t[1].a. It is very unlikely that you used such queries, but we still have to mark this change as potentially backward incompatible. #68435 (Alexey Milovidov).
  • When the setting print_pretty_type_names is enabled, it will print Tuple data type in a pretty form in SHOW CREATE TABLE statements, formatQuery function, and in the interactive mode in clickhouse-client and clickhouse-local. In previous versions, this setting was only applied to DESCRIBE queries and toTypeName. This closes #65753. #68492 (Alexey Milovidov).

New Feature

  • Function toStartOfInterval() now has a new overload which emulates TimescaleDB's time_bucket() function, respectively PostgreSQL's date_bin() function. (#55619). It allows to align date or timestamp values to multiples of a given interval from an arbitrary origin (instead of 0000-01-01 00:00:00.000 as fixed origin). For example, SELECT toStartOfInterval(toDateTime('2023-01-01 14:45:00'), INTERVAL 1 MINUTE, toDateTime('2023-01-01 14:35:30')); returns 2023-01-01 14:44:30 which is a multiple of 1 minute intervals, starting from origin 2023-01-01 14:35:30. #56738 (Yarik Briukhovetskyi).
  • Add support for ATTACH PARTITION ALL FROM. #61987 (Kirill Nikiforov).
  • Adds a setting input_format_try_infer_variants which allows Variant type to be inferred during schema inference for text formats when there is more than one possible type for column/array elements. #63798 (Shaun Struwig).
  • Introduced JSONCompactWithProgress format where ClickHouse outputs each row as a newline-delimited JSON object, including metadata, data, progress, totals, and statistics. #66205 (Alexey Korepanov).
  • Implement new JSON data type. #66444 (Pavel Kruglov).
  • Add the input_format_json_empty_as_default setting which, when enabled, treats empty fields in JSON inputs as default values. Closes #59339. #66782 (Alexis Arnaud).
  • Added functions overlay and overlayUTF8 which replace parts of a string by another string. Example: SELECT overlay('Hello New York', 'Jersey', 11) returns Hello New Jersey. #66933 (李扬).
  • Add new Command, Lightweight Delete In Partition DELETE FROM [db.]table [ON CLUSTER cluster] [IN PARTITION partition_expr] WHERE expr; ``` VM-114-29-tos :) select * from ads_app_poster_ip_source_channel_di_replicated_local;. #67805 (sunny).
  • Implemented comparison for Interval data type values so they are converting now to the least supertype. #68057 (Yarik Briukhovetskyi).
  • Add create_if_not_exists setting to default to IF NOT EXISTS behavior during CREATE statements. #68164 (Peter Nguyen).
  • Makes possible to read Iceberg tables in Azure and locally. #68210 (Daniil Ivanik).
  • Add aggregate functions distinctDynamicTypes/distinctJSONPaths/distinctJSONPathsAndTypes for better introspection of JSON column type content. #68463 (Pavel Kruglov).
  • Query cache entries can now be dropped by tag. For example, the query cache entry created by SELECT 1 SETTINGS use_query_cache = true, query_cache_tag = 'abc' can now be dropped by SYSTEM DROP QUERY CACHE TAG 'abc' (or of course just: SYSTEM DROP QUERY CACHE which will clear the entire query cache). #68477 (Michał Tabaszewski).
  • Add storage encryption for named collections. #68615 (Pablo Marcos).
  • Added ripeMD160 function, which computes the RIPEMD-160 cryptographic hash of a string. Example: SELECT hex(ripeMD160('The quick brown fox jumps over the lazy dog')) returns 37F332F68DB77BD9D7EDD4969571AD671CF9DD3B. #68639 (Dergousov Maxim).
  • Add virtual column _headers for url table engine. Closes #65026. #68867 (flynn).
  • Adding system.projections table to track available projections. #68901 (Jordi Villar).
  • Add new function arrayZipUnaligned for spark compatiablity(arrays_zip), which allowed unaligned arrays based on original arrayZip. ``` sql SELECT arrayZipUnaligned([1], [1, 2, 3]). #69030 (李扬).
  • Adding RealTimeMicroseconds metric in the HTTP Header X-ClickHouse-Summary. This way we can know the CPU time of a request without having to go to check it in system.query_log. #69032 (Alejandro).
  • Added cp/mv commands for keeper client which atomically copies/moves node. #69034 (Mikhail Artemenko).
  • Adds argument scale (default: true) to function arrayAUC which allows to skip the normalization step (issue #69609). #69717 (gabrielmcg44).

Performance Improvement

  • Improve the join performance by rerange the right table by keys while the table keys are dense in left or inner hash join. #60341 (kevinyhzou).
  • Improve all join perfromance by append RowRefList or RowRef to AddedColumns for lazy output, while buildOutput, we use RowRefList/RowRef for output, and remove is_join_get condition from buildOutput for loop. #63677 (kevinyhzou).
  • Load filesystem cache metadata asynchronously to boot process, in order to make restarts faster. #65736 (Daniel Pozo Escalona).
  • Functions array and map were optimized to process certain common cases much faster. #67707 (李扬).
  • Trivial optimize on orc string reading especially when column contains no NULLs. #67794 (李扬).
  • Improved overall performance of merges by reducing the overhead of scheduling steps of merges. #68016 (Anton Popov).
  • Speed up requests to S3 when a profile is not set, credentials are not set, and IMDS is not available (for example, when you are querying a public bucket on a machine outside of a cloud). This closes #52771. #68082 (Alexey Milovidov).
  • New algorithm to determine the unit of marks distribution between replicas by consistent hash. Different numbers of marks chosen for different read patterns to improve performance. #68424 (Nikita Taranov).
  • Try to devirtualize format reader in RowInputFormatWithNamesAndTypes, and see if it could bring some performance improvement. #68437 (李扬).
  • Add the parallel merge with key implementation to maximize the CPU utilization. #68441 (Jiebin Sun).
  • Add settings output_format_orc_dictionary_key_size_threshold to allow user to enable dict encoding for string column in ORC output format. It helps reduce the output orc file size and improve reading performance significantly. #68591 (李扬).
  • Implemented reading of required files only during hive partitioning. #68963 (Yarik Briukhovetskyi).
  • Introduce new Keeper request RemoveRecursive which removes node with all it's subtree. #69332 (Mikhail Artemenko).
  • Speedup insert performance with vector similarity index by adding data to vector index parallel. #69493 (flynn).
  • Previously the algorithmic complexity of part deduplication logic in parallel replica announcement handling was O(n^2) which could take noticeable time for tables with many part (or partitions). This change makes the complexity O(n*log(n)). #69596 (Alexander Gololobov).

Improvement

  • Hardened parts of the codebase related to parsing of small entities. The following (minor) bugs were found and fixed: - if a DeltaLake table is partitioned by Bool, the partition value is always interpreted as false; - ExternalDistributed table was using only a single shard in the provided addresses; the value of max_threads setting and similar were printed as 'auto(N)' instead of auto(N). #52503 (Alexey Milovidov).
  • Refreshable materialized view improvements: append mode (... REFRESH EVERY 1 MINUTE APPEND ...) to add rows to existing table instead of overwriting the whole table, retries (disabled by default, configured in SETTINGS section of the query), SYSTEM WAIT VIEW <name> query that waits for the currently running refresh, some fixes. #58934 (Michael Kolupaev).
  • Use cgroup-specific metrics for CPU usage accounting instead of system-wide metrics. #62003 (Nikita Taranov).
  • IO scheduling for remote S3 disks is now done on the level of HTTP socket streams (instead of the whole S3 requests) to resolve bandwidth_limit throttling issues. #65182 (Sergei Trifonov).
  • Allow a user to have multiple authentication methods instead of only one. Allow authentication methods to be reset to most recently added method. If you want to run instances on 24.8 and one on 24.9 for some time, it's better to set max_authentication_methods_per_user = 1 for that period to avoid potential errors. #65277 (Arthur Passos).
  • Functions upperUTF8 and lowerUTF8 were previously only able to uppercase / lowercase Cyrillic characters. This limitation is now removed and characters in arbitrary languages are uppercased/lowercased. Example: SELECT upperUTF8('Süden') now returns SÜDEN. #65761 (李扬).
  • When lightweight delete happens on a table with projection(s), despite users have choices either throw an exception (by default) or drop the projection lightweight delete would happen, now the third option is to still have lightweight delete and then rebuild projection(s). #66169 (Shichao).
  • Two options (dns_allow_resolve_names_to_ipv4 and dns_allow_resolve_names_to_ipv6) have been added, to allow block connections ip family. #66895 (MikhailBurdukov).
  • Added min_maxas a new type of (experimental) statistics. It supports estimating range predicates over numeric columns, e.g. x < 100. #67013 (JackyWoo).
  • Make C-z ignorance configurable (ignore_shell_suspend) in clickhouse-client. #67134 (Azat Khuzhin).
  • Improve castOrDefault from Variant/Dynamic columns so it works when inner types are not convertable at all. #67150 (Pavel Kruglov).
  • Improve unicode encoding in JSON output formats. Ensures that valid JSON is generated in the case of certain byte sequences in the result data. #67938 (mwoenker).
  • Added profile events for merges and mutations for better introspection. #68015 (Anton Popov).
  • Odbc: get http_max_tries from server configuration. #68128 (Rodolphe Dugé de Bernonville).
  • Add wildcard support for user identification in x509 SubjectAltName extension. #68236 (Marco Vilas Boas).
  • Improve schema inference of date times. Now DateTime64 used only when date time has fractional part, otherwise regular DateTime is used. Inference of Date/DateTime is more strict now, especially when date_time_input_format='best_effort' to avoid inferring date times from strings in corner cases. #68382 (Pavel Kruglov).
  • Delete old code of named collections from dictionaries and substitute it to the new, which allows to use DDL created named collections in dictionaries. Closes #60936, closes #36890. #68412 (Kseniia Sumarokova).
  • Use HTTP/1.1 instead of HTTP/1.0 (set by default) for external HTTP authentication. #68456 (Aleksei Filatov).
  • Functions upperUTF8 and lowerUTF8 were previously only able to uppercase / lowercase Cyrillic characters. This limitation is now removed and arbitrary characters are uppercased/lowercased. Example: SELECT upperUTF8('Süden') now returns SÜDEN. #68523 (Robert Schulze).
  • Added a new set of metrics for Thread Pool introspection, providing deeper insights into thread pool performance and behavior. #68674 (filimonov).
  • Support query parameters in async inserts with format Values. #68741 (Anton Popov).
  • Support Date32 on dateTrunc and toStartOfInterval. #68874 (LiuNeng).
  • Add a new setting: output_format_always_quote_identifiers to always quote identifiers if it is enabled. - Add a new setting: output_format_identifier_quoting_style to set the identifier quoting style. Applicable values: 'None', 'Backticks' (default), 'DoubleQuotes', 'BackticksMySQL'. #68896 (tuanpach).
  • Add plan_step_name and plan_step_description columns to system.processors_profile_log. #68954 (Alexander Gololobov).
  • Support for the Spanish language in the embedded dictionaries. #69035 (Vasily Okunev).
  • Add CPU arch to short fault info. #69037 (Konstantin Bogdanov).
  • CREATE TABLE AS copy PRIMARY KEY, ORDER BY, and similar clauses. Now it supports only for MergeTree family of table engines. #69076 (sakulali).
  • Replication of subset of columns is now available through MaterializedPostgreSQL. Closes #33748. #69092 (Kruglov Kirill).
  • Add std::string getHost(const std::string & key) const; method to "base/poco/Util/include/Poco/Util/AbstractConfiguration.h" which does the same as Poco::Util::AbstractConfiguration::getString method but additionally does validity check to make sure value is a correct IP address or domain name. #69130 (Maxim).
  • Do not block retries when establishing a new keeper connection. #69148 (Raúl Marín).
  • Update DatabaseFactory so it would be possible for user defined database engines to have arguments, settings and table overrides (similar to StorageFactory). #69201 (Барыкин Никита Олегович).
  • Restore mode that replaces all external table engines and functions to Null (restore_replace_external_engines_to_null, restore_replace_external_table_functions_to_null settings) was failing if table had SETTINGS. Now it removes settings from table definition in this case and allows to restore such tables. #69253 (Ilya Yatsishin).
  • Reduce memory usage of inserts to JSON by using adaptive write buffer size. A lot of files created by JSON column in wide part contains small amount of data and it doesn't make sense to allocate 1MB buffer for them. #69272 (Pavel Kruglov).
  • CLICKHOUSE_PASSWORD is escaped for XML in clickhouse image's entrypoint. #69301 (aohoyd).
  • Added user-level settings min_free_disk_bytes_to_perform_insert and min_free_disk_ratio_to_perform_insert to prevent insertions on disks that are almost full. #69376 (Marco Vilas Boas).
  • Not retaining thread in concurrent hash join threadpool to avoid query excessively spawn threads. #69406 (Duc Canh Le).
  • Allow empty arguments for arrayZip/arrayZipUnaligned, as concat did in https://github.com/ClickHouse/ClickHouse/pull/65887. It is for spark compatiability in Gluten CH Backend. #69576 (李扬).
  • Support more advanced SSL options for Keeper's internal communication (e.g. private keys with passphrase). #69582 (Antonio Andelic).
  • Sleep for 10ms before retrying to acquire a lock in databasereplicatedddlworker::enqueuequeryimpl. #69588 (Miсhael Stetsyuk).
  • Index analysis can take noticeable time for big tables with many parts or partitions. This change should enable killing a heavy query at that stage. #69606 (Alexander Gololobov).
  • Masking sensitive info in gcs() table function. #69611 (Vitaly Baranov).
  • Sync changes to interpreterdropquery::executetodatabaseimpl from the private fork. #69670 (Miсhael Stetsyuk).
  • Backported in #69905: Change the join to sort settings type to unsigned int. #69886 (kevinyhzou).

Bug Fix (user-visible misbehavior in an official stable release)

  • Rebuild projection for merges that reduce number of rows. #62364 (cangyin).
  • Fix attaching table when pg dbname contains "-" in MaterializedPostgreSQL. #62730 (takakawa).
  • Storage Join support for nullable columns in left table, close #61247. #66926 (vdimir).
  • Incorrect query result with parallel replicas (distribute queries as well) when IN operator contains conversion to Decimal(). The bug was introduced with the new analyzer. #67234 (Igor Nikonov).
  • Fix the problem that alter modfiy order by causes inconsistent metadata. #67436 (iceFireser).
  • Fix the upper bound of the function fromModifiedJulianDay. It was supposed to be 9999-12-31 but was mistakenly set to 9999-01-01. #67583 (PHO).
  • Fix when the index is not at the beginning of the tuple during IN query. #67626 (Yarik Briukhovetskyi).
  • Fixed error on generated columns in MaterializedPostgreSQL when adnum ordering is broken #63161. Fixed error on id column with nextval expression as default MaterializedPostgreSQL when there are generated columns in table. Fixed error on dropping publication with symbols except [a-z1-9-]. #67664 (Kruglov Kirill).
  • Fix expiration in RoleCache. #67748 (Vitaly Baranov).
  • Fix window view missing blocks due to slow flush to view. #67983 (Raúl Marín).
  • Fix MSAN issue caused by incorrect date format. #68105 (JackyWoo).
  • Fixed crash in Parquet filtering when data types in the file substantially differ from requested types (e.g. ... FROM file('a.parquet', Parquet, 'x String'), but the file has x Int64). Without this fix, use input_format_parquet_filter_push_down = 0 as a workaround. #68131 (Michael Kolupaev).
  • Fix crash in lag/lead which is introduced in #67091. #68262 (lgbo).
  • Try fix postgres crash when query is cancelled. #68288 (Kseniia Sumarokova).
  • After https://github.com/ClickHouse/ClickHouse/pull/61984 schema_inference_make_columns_nullable=0 still can make columns Nullable in Parquet/Arrow formats. The change was backward incompatible and users noticed the changes in the behaviour. This PR makes schema_inference_make_columns_nullable=0 to work as before (no Nullable columns will be inferred) and introduces new value auto for this setting that will make columns Nullable only if data has information about nullability. #68298 (Pavel Kruglov).
  • Fixes #50868. Small DateTime64 constant values returned by a nested subquery inside a distributed query were wrongly transformed to Nulls, thus causing errors and possible incorrect query results. #68323 (Shankar).
  • Fix missing sync replica mode in query SYSTEM SYNC REPLICA. #68326 (Duc Canh Le).
  • Fix bug in key condition. #68354 (Han Fei).
  • Fix crash on drop or rename a role that is used in LDAP external user directory. #68355 (Andrey Zvonov).
  • Fix Progress column value of system.view_refreshes greater than 1 #68377. #68378 (megao).
  • Process regexp flags correctly. #68389 (Han Fei).
  • PostgreSQL-style cast operator (::) works correctly even for SQL-style hex and binary string literals (e.g., SELECT x'414243'::String). This closes #68324. #68482 (Alexey Milovidov).
  • Minor patch for https://github.com/ClickHouse/ClickHouse/pull/68131. #68494 (Chang chen).
  • Fix #68239 SAMPLE n where n is an integer. #68499 (Denis Hananein).
  • Fix bug in mann-whitney-utest when the size of two districutions are not equal. #68556 (Han Fei).
  • After unexpected restart, fail to start replication of ReplicatedMergeTree due to abnormal handling of covered-by-broken part. #68584 (baolin).
  • Fix LOGICAL_ERRORs when functions sipHash64Keyed, sipHash128Keyed, or sipHash128ReferenceKeyed are applied to empty arrays or tuples. #68630 (Robert Schulze).
  • Full text index may filter out wrong columns when index multiple columns, it didn't reset row_id between different columns, the reproduce procedure is in tests/queries/0_stateless/03228_full_text_with_multi_col.sql. Without this. #68644 (siyuan).
  • Fix invalid character '\t' and '\n' in replica_name when creating a Replicated table, which causes incorrect parsing of 'source replica' in LogEntry. Mentioned in issue #68640. #68645 (Zhigao Hong).
  • Added back virtual columns _table and _database to distributed tables. They were available until version 24.3. #68672 (Anton Popov).
  • Fix possible error Size of permutation (0) is less than required (...) during Variant column permutation. #68681 (Pavel Kruglov).
  • Fix possible error DB::Exception: Block structure mismatch in joined block stream: different columns: with new JSON column. #68686 (Pavel Kruglov).
  • Fix issue with materialized constant keys when hashing maps with arrays as keys in functions sipHash(64/128)Keyed. #68731 (Salvatore Mesoraca).
  • Make ColumnsDescription::toString format each column using the same IAST::FormatState object. This results in uniform columns metadata being written to disk and ZooKeeper. #68733 (Miсhael Stetsyuk).
  • Fix merging of aggregated data for grouping sets. #68744 (Nikolai Kochetov).
  • Fix logical error, when we create a replicated merge tree, alter a column and then execute modify statistics. #68820 (Han Fei).
  • Fix resolving dynamic subcolumns from subqueries in analyzer. #68824 (Pavel Kruglov).
  • Fix complex types metadata parsing in DeltaLake. Closes #68739. #68836 (Kseniia Sumarokova).
  • Fixed asynchronous inserts in case when metadata of table is changed (by ALTER ADD/MODIFY COLUMN queries) after insert but before flush to the table. #68837 (Anton Popov).
  • Fix unexpected exception when passing empty tuple in array. This fixes #68618. #68848 (Amos Bird).
  • Fix parsing pure metadata mutations commands. #68935 (János Benjamin Antal).
  • Fix possible wrong result during anyHeavy state merge. #68950 (Raúl Marín).
  • Fixed writing to Materialized Views with enabled setting optimize_functions_to_subcolumns. #68951 (Anton Popov).
  • Don't use serializations cache in const Dynamic column methods. It could let to use-of-unitialized value or even race condition during aggregations. #68953 (Pavel Kruglov).
  • Fix parsing error when null should be inserted as default in some cases during JSON type parsing. #68955 (Pavel Kruglov).
  • Fix Content-Encoding not sent in some compressed responses. #64802. #68975 (Konstantin Bogdanov).
  • There were cases when path was concatenated incorrectly and had the // part in it, solving this problem using path normalization. #69066 (Yarik Briukhovetskyi).
  • Fix logical error when we have empty async insert. #69080 (Han Fei).
  • Fixed data race of progress indication in clickhouse-client during query canceling. #69081 (Sergei Trifonov).
  • Fix a bug that the vector similarity index (currently experimental) was not utilized when used with cosine distance as distance function. #69090 (flynn).
  • This change addresses an issue where attempting to create a Replicated database again after a server failure during the initial creation process could result in error. #69102 (Miсhael Stetsyuk).
  • Don't infer Bool type from String in CSV when input_format_csv_try_infer_numbers_from_strings = 1 because we don't allow reading bool values from strings. #69109 (Pavel Kruglov).
  • Fix explain ast insert queries parsing errors on client when --multiquery is enabled. #69123 (wxybear).
  • UNION clause in subqueries wasn't handled correctly in queries with parallel replicas and lead to LOGICAL_ERROR Duplicate announcement received for replica. #69146 (Igor Nikonov).
  • Fix propogating structure argument in s3Cluster. Previously the DEFAULT expression of the column could be lost when sending the query to the replicas in s3Cluster. #69147 (Pavel Kruglov).
  • Respect format settings in Values format during conversion from expression to the destination type. #69149 (Pavel Kruglov).
  • Fix clickhouse-client --queries-file for readonly users (previously fails with Cannot modify 'log_comment' setting in readonly mode). #69175 (Azat Khuzhin).
  • Fix data race in clickhouse-client when it's piped to a process that terminated early. #69186 (vdimir).
  • Fix incorrect results of Fix uniq and GROUP BY for JSON/Dynamic types. #69203 (Pavel Kruglov).
  • Fix the INFILE format detection for asynchronous inserts. If the format is not explicitly defined in the FORMAT clause, it can be detected from the INFILE file extension. #69237 (Julia Kartseva).
  • After this issue there are quite a few table replicas in production such that their metadata_version node value is both equal to 0 and is different from the respective table's metadata node version. This leads to alter queries failing on such replicas. #69274 (Miсhael Stetsyuk).
  • Backported in #69986: Fix inf loop after restore replica in the replicated merge tree with zero copy. #69293 (MikhailBurdukov).
  • Mark Dynamic type as not safe primary key type to avoid issues with Fields. #69311 (Pavel Kruglov).
  • Improve restoring of access entities' dependencies. #69346 (Vitaly Baranov).
  • Fix undefined behavior when all connection attempts fail getting a connection for insertions. #69390 (Pablo Marcos).
  • Close #69135. If we try to reuse joined data for cross join, but this could not happen in ClickHouse at present. It's better to keep have_compressed in reuseJoinedData. #69404 (lgbo).
  • Make materialize() function return full column when parameter is a sparse column. #69429 (Alexander Gololobov).
  • Fixed a LOGICAL_ERROR with function sqidDecode (#69450). #69451 (Robert Schulze).
  • Quick fix for s3queue problem on 24.6 or create query with database replicated. #69454 (Kseniia Sumarokova).
  • Fixed case when memory consumption was too high because of the squashing in INSERT INTO ... SELECT or CREATE TABLE AS SELECT queries. #69469 (Yarik Briukhovetskyi).
  • Statements SHOW COLUMNS and SHOW INDEX now work properly if the table has dots in its name. #69514 (Salvatore Mesoraca).
  • Usage of the query cache for queries with an overflow mode != 'throw' is now disallowed. This prevents situations where potentially truncated and incorrect query results could be stored in the query cache. (issue #67476). #69549 (Robert Schulze).
  • Keep original order of conditions during move to prewhere. Previously the order could change and it could lead to failing queries when the order is important. #69560 (Pavel Kruglov).
  • Fix Keeper multi-request preprocessing after ZNOAUTH error. #69627 (Antonio Andelic).
  • Fix METADATA_MISMATCH that might have happened due to TTL with a WHERE clause in DatabaseReplicated when creating a new replica. #69736 (Nikolay Degterinsky).
  • Fix StorageS3(Azure)Queue settings tracked_file_ttl_sec. We wrote it to keeper with key tracked_file_ttl_sec, but read as tracked_files_ttl_sec, which was a typo. #69742 (Kseniia Sumarokova).
  • Make getHyperrectangleForRowGroup not throw an exception when the data type in parquet file is not convertable into the requested data type. Solved the user's problem when the Parquet file had Decimal64 data type and the column data type was DateTime. #69745 (Miсhael Stetsyuk).
  • Backported in #70021: Fix analyzer default with old compatibility value. #69895 (Raúl Marín).
  • Backported in #69943: Don't check dependencies during CREATE OR REPLACE VIEW during DROP of old table. Previously CREATE OR REPLACE query failed when there are dependent tables of the recreated view. #69907 (Pavel Kruglov).
  • Backported in #70003: Now SQL security will work with parameterized views correctly. #69984 (pufit).

Build/Testing/Packaging Improvement

  • Allow to specify min and max for random settings in the test after tags in a form setting=(min, max). For some tests really low value of a setting can lead to timeout (for example index_granularity=1) but we still want to randomize this setting in such tests. To avoid timeouts we can specify custom minimum value for this setting. #67875 (Pavel Kruglov).
  • Integration tests flaky check now runs each module(file) as a separate group. It allows to apply timeout per module. Previously slow tests could use all the time and other tests were not run in flaky check with successful result. #68380 (Ilya Yatsishin).
  • Backported in #69980: Makes dbms independent from clickhouse_functions. #69914 (Raúl Marín).

NO CL CATEGORY

NO CL ENTRY

  • NO CL ENTRY: 'Revert "Revert "Fix AWS ECS""'. #65362 (Pavel Kruglov).
  • NO CL ENTRY: 'Revert "[RFC] Fix settings/current_database in system.processes for async BACKUP/RESTORE"'. #68386 (János Benjamin Antal).
  • NO CL ENTRY: 'Revert "Improve compatibility of upper/lowerUTF8 with Spark"'. #68510 (Robert Schulze).
  • NO CL ENTRY: 'Revert "Fix unexpected behavior with FORMAT and SETTINGS parsing"'. #68608 (Alexander Tokmakov).
  • NO CL ENTRY: 'Revert "Fix prewhere without columns and without adaptive index granularity (almost w/o anything)"'. #68897 (Alexander Gololobov).
  • NO CL ENTRY: 'Revert "Speed up some Kafka tests with multiprocessing"'. #69356 (Nikita Mikhaylov).
  • NO CL ENTRY: 'Revert "Remove obsolete --multiquery parameter (follow-up to #63898), pt. V"'. #69393 (Alexander Tokmakov).
  • NO CL ENTRY: 'Revert "Add user-level settings min_free_disk_bytes_to_perform_insert and min_free_disk_ratio_to_perform_insert"'. #69705 (Raúl Marín).
  • NO CL ENTRY: 'Revert "Support more oss endpoints"'. #69779 (Raúl Marín).

NOT FOR CHANGELOG / INSIGNIFICANT