docs/changelogs/v25.10.1.3832-stable.md
schema_inference_make_columns_nullable setting to respect column Nullable-ness information from Parquet/ORC/Arrow metadata, instead of making everything Nullable. No change for text formats. #71499 (Michael Kolupaev).log_comment setting, so that changing only the log_comment on a query no longer forces a cache miss. There is a small chance users intentionally segmented their cache by varying log_comment. This change alters that behavior and is therefore backward incompatible. Please use setting query_cache_tag for this purpose. #79878 (filimonov).clickhouse-format, formatQuery, and similar will not format functions as operators if the query contained them in a functional form. #82825 (Alexey Milovidov).query_plan_use_new_logical_join_step to query_plan_use_logical_join_step. #87679 (Vladimir Cherkasov).searchAny and searchAll to hasAnyTokens and hasAllTokens for better consistency with existing function hasToken. #88109 (Robert Schulze).cache_hits_threshold from filesystem cache. This feature was added by an external contributor before we had SLRU cache policy, and now that we have it - it does not make sense to support both. #88344 (Kseniia Sumarokova).min_free_disk_ratio_to_perform_insert and min_free_disk_bytes_to_perform_insert settings work: - use unreserved instead of available bytes to determine if an insert should be rejected. This is probably not crucial if the reservations for background merges and mutations are small compared to the configured thresholds, but it seems more correct. - Don't apply these settings to system tables. The reasoning for this is that we still want tables like query_log to be updated. This helps a lot with debugging. Data written to system tables is usually small compared to actual data, so they should be able to continue for much longer with a reasonable min_free_disk_ratio_to_perform_insert threshold. #88468 (c-end).keeper_server.coordination_settings.async_replication to 0 before update and enable it after update is done. #88515 (Antonio Andelic).naiveBayesClassifier function to classify text using Naive Bayes based on ngrams. #78700 (Nihal Z. Miaji).--login. #82753 (Krishna Mannem).conv function for converting numbers between bases, currently supports bases from 2-36. #83058 (hp).LIMIT BY ALL syntax support. Similar to GROUP BY ALL and ORDER BY ALL, LIMIT BY ALL automatically expands to use all non-aggregate expressions from the SELECT clause as LIMIT BY keys. For example, SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY ALL is equivalent to SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY id, name. This feature simplifies queries when you want to limit by all selected non-aggregate columns without explicitly listing them. Closes #59152. #84079 (Surya Kant Ranjan).studentTTestOneSample aggregate function. #85436 (Dylan).quantilePrometheusHistogram, which accepts the upper bounds and cumulative values of histogram buckets as arguments, and performs a linear interpolation between the upper and lower bounds of the bucket in which the quantile position is found. Behaves similarly to the PromQL histogram_quantile() function on classic histograms. #86294 (Stephen Chi).MergeTree tables. Added table-level setting auto_statistics_types which stores comma-separated types of statistics to create (e.g. auto_statistics_types = 'minmax, uniq, countmin'). #87241 (Anton Popov).max_named_collection_num_to_warn and max_named_collection_num_to_throw. Add new metric NamedCollection and error TOO_MANY_NAMED_COLLECTIONS. #87343 (Pablo Marcos).startsWith and endsWith functions: startsWithCaseInsensitive, endsWithCaseInsensitive, startsWithCaseInsensitiveUTF8, and endsWithCaseInsensitiveUTF8. #87374 (Guang Zhao).Alias engine creates a proxy to another table. All read and write operations are forwarded to the target table, while the alias itself stores no data and only maintains a reference to the target table. #87965 (Kai Zhu).--semicolons_inline option to format queries so that semicolons are placed on the last line instead of on a new line. #88018 (Jan Rada).min_level_for_wide_part that allows specifying the minimum level for a part to be created as a wide part. #88179 (Christoph Wurm).LIMIT and negative OFFSET. Closes #28913. #88411 (Nihal Z. Miaji).cp-cpr and mv-mvr commands in Keeper client. #88570 (Mikhail Artemenko).searchAll and searchAny now work on top of columns without text columns. In those cases, they use the default tokenizer. #87722 (Jimmy Aguilar Mena).QBit data type that stores vectors in bit-sliced format and L2DistanceTransposed function that allows approximate vector search where precision-speed trade-off is controlled by a parameter. #87922 (Raufs Dunamalijevs)..size subcolumn serialization for top-level String columns in MergeTree tables to improve compression and enable efficient subcolumn access. Introduce new MergeTree settings for serialization version control and expression optimization for empty strings. #82850 (Amos Bird).WHERE URL LIKE '%google%') by using the StringZilla library, using SIMD CPU instructions when available. #84161 (Raúl Marín).SimpleAggregateFunction(anyLast). #84428 (Duc Canh Le).(n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') OR (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE') we extract separate partial filters for each table n1.n_name = 'FRANCE' OR n1.n_name = 'GERMANY' for n1 and n2.n_name = 'GERMANY' OR n2.n_name = 'FRANCE' for n2. #84735 (Yarik Briukhovetskyi).LIKE with prefix or suffix by using the new default setting optimize_rewrite_like_perfect_affix. #85920 (Guang Zhao).JoinOptimizeMicroseconds and QueryPlanOptimizeMicroseconds. #87683 (Vladimir Cherkasov).FINAL clause on.a ReplacingMergeTree table with the is_deleted column now executes faster because of improved parallelization from 2 existing optimizations : 1) do_not_merge_across_partitions_select_final optimization for partitions of the table that have only a single part 2) Split other selected ranges of the table into intersecting / non-intersecting and only intersecting ranges have to pass through FINAL merging transform. #88090 (Shankar Iyer).system.tables with filter by uuid (Can be useful if you have only UUID from logs or zookeeper path). #88379 (Azat Khuzhin).tokens, hasAllTokens, hasAnyTokens. #88416 (Anton Popov).AddedColumns::appendFromBlock for slightly better join performance in some cases. #88455 (Nikita Taranov).mannWhitneyUTest no longer throws an exception when both samples contain only identical values. Now returns a valid result, consistent with SciPy. This closes: #79814. #80009 (DeanNeaht).X-ClickHouse-100-Continue: defer in addition to Expect: 100-continue, ClickHouse doesn't send send a 100 Continue response to the client until after quota validation passes, preventing waste of network bandwidth from transmitting request bodies that will be thrown away anyways. This is relevant for INSERT queries where the query can be sent in the URL query string and the data is sent in the request body. Aborting a request without sending the full body prevents connection reuse with HTTP/1.1, but the additional latency introduced by opening new connections is usually insignificant compared to total INSERT duration with large amounts of data. #84304 (c-end).system.completions rather than issuing multiple system-table queries. #84694 (|2ustam).SELECT avg(o_totalprice) FROM orders, customer, nation WHERE c_custkey = o_custkey AND c_nationkey=n_nationkey AND n_name = 'FRANCE'. #84772 (Alexander Gololobov).materialize function. Closes #82828. #85749 (Alexey Milovidov).use_persistent_processing_nodes = 1. Add keeper fault injection in tests. #86628 (Kseniia Sumarokova).dictionary_block_frontcoding_compression text index parameter to control the dictionary compression. By default, it is enabled to use the front-coding compression. #87175 (Elmi Ahmadov).s3_slow_all_threads_after_retryable_error by default. #87198 (Nikita Mikhaylov).arrowflight to arrowFlight. #87249 (Vitaly Baranov).clickhouse-benchmark to accept using - if in place of _ in its cli flags. #87251 (Ahmed Gouda).exclude_materialize_skip_indexes_on_insert). Added merge tree table setting to exclude list of skip indexes from materialization during merge (exclude_materialize_skip_indexes_on_merge). #87252 (George Larionov).system.crash_log in signal handling synchronous. #87253 (Miсhael Stetsyuk).inject_random_order_for_select_without_order_by which injects ORDER BY rand() into top-level SELECT queries without ORDER BY clause. #87261 (Rui Zhang).join_keys is not the same as the number of right_table_keys. #87279 (Isak Ellmer).min_insert_block_size_rows_for_materialized_views and min_insert_block_size_bytes_for_materialized_views. Previously, if parallel_view_processing was enabled, each thread inserting to a specific materailized view would squash insert independently which could lead to higher number of generated parts. #87280 (Antonio Andelic).keeper_server.tcp_nodelay configuration parameter that allows disabling TCP_NODELAY for Keeper. #87363 (Copilot).--connection in clickhouse-benchmarks. It is the same as supported by clickhouse-client, you can specify predefined connections in client config.xml/config.yaml under connections_credentials path, to avoid explicitly specifying user/password via command line arguments. Add support for --accept-invalid-certificate into clickhouse-benchmark. #87370 (Azat Khuzhin).max_insert_threads will take effect on Iceberg tables. #87407 (alesapin).PrometheusMetricsWriter. This way, the PrometheusRequestHandler handler will have all the essential metrics and can be used for reliable and low-overhead metric collection in the cloud. #87521 (Miсhael Stetsyuk).hasToken now returns zero matches for the empty token (whereas this previously threw an exception). #87564 (Jimmy Aguilar Mena).Array and Map (mapKeys and mapValues) values. The supported functions are mapContainsKey and has. #87602 (Elmi Ahmadov).ZooKeeperSessionExpired metric which indicates the number of expired global ZooKeeper sessions. #87613 (Miсhael Stetsyuk).max_joined_block_size_rows and max_joined_block_size_bytes during query plan serialization with experimental make_distributed_plan. #87675 (Vladimir Cherkasov).enable_http_compression is now the default. This means that if a client accepts HTTP compression, the server will use it. However, this change has certain downsides. The client can request a heavy compression method, such as bzip2, which is unreasonable, and it will increase the resource consumption of the server (but this will be visible only when large results are transferred). The client can request gzip, which is not that bad, but suboptimal compared to zstd. Closes #71591. #87703 (Alexey Milovidov).keeper_hosts that exposes the list of [Zoo]Keeper hosts ClickHouse can connect to. #87718 (Nikita Mikhaylov).ALTER TABLE REWRITE PARTS - rewrites the table parts from scratch, by using all new settings (since some, like use_const_adaptive_granularity, will be applied only for new parts). #87774 (Azat Khuzhin).from and to values to the system dashboards to facilitate historical investigations. #87823 (Mikhail f. Shiryaev).joined_block_split_single_row setting to reduce memory usage in hash joins with many matches per key. This allows hash join results to be chunked even within matches for a single left table row, which is particularly useful when one row from the left table matches thousands or millions of rows from the right table. Previously, all matches had to be materialized at once in memory. This reduces peak memory usage but may increase CPU usage. #87913 (Vladimir Cherkasov).Keeper (max_request_size setting, same as jute.maxbuffer for ZooKeeper, default OFF for backward compatibility, will be set in the next releases). #87952 (Azat Khuzhin).clickhouse-benchmark to not include stacktraces in error messages by default. #87954 (Ahmed Gouda).load_marks_asynchronously=1) when marks are in cache (since the pool can be under pressure and queries will pay penalty for this even if the marks already in cache). #87967 (Azat Khuzhin).system.zookeeper_connection_log is enabled by default and it can be used to get information about Keeper sessions. #88011 (János Benjamin Antal).KeeperRequestRejectedDueToSoftMemoryLimitCount keeper profile event, we must add it to KeeperConstants.cpp. #88030 (Miсhael Stetsyuk).Replicated database without arguments. #88044 (Pervakov Grigorii).start_value parameter to generateSerialID function to specify custom starting values for new series. #88085 (Manuel).CROSS JOIN. #88151 (Vladimir Cherkasov).EXCHANGE TABLES operations on tables with the Alias engine. The engine now stores the target table as database and table names instead of a constant storage id, allowing it to correctly resolve the target after table exchanges. #88233 (Kai Zhu).temporary_files_buffer_size to control size of the buffer for temporary files writers. * Optimize memory consumption of scatter operation (used, for example in grace hash join) for LowCardinality columns. #88237 (Vladimir Cherkasov).generateSerialID supports a non-constant argument with the series name. Closes #83750. #88270 (Alexey Milovidov).clickhouse-local to start from the clickhouse-server directory. In previous versions, it produced an error Cannot parse UUID: . Now you can start clickhouse-local and manipulate the server's databases without starting the server. #88383 (Alexey Milovidov).keeper_server.coordination_settings.check_node_acl_on_remove. If enabled, before each delete of a node, ACLs of both the node itself and parent node will be verified. Otherwise, only the ACL of the parent node will be verified. #88513 (Antonio Andelic).JSON columns are now pretty printed when using Vertical format. Closes #81794. #88524 (Frank Rosner).clickhouse-client files (e.g. query history) in places described by XDG Base Directories specification instead of root of home directory. ~/.clickhouse-client-history will still be used if it is already present. #88538 (Konstantin Bogdanov).GLOBAL IN (https://github.com/ClickHouse/ClickHouse/issues/88615). #88617 (pranavmehta94).to_remove_small_parts_at_right will be executed before the calculation of the merge range score. Before that, the merge selector was choosing the wide merge, and after that, it filtered its suffix. Fixes: #85374. #88736 (Mikhail Artemenko).clickhouse-keeper which enables starting on boot. #88746 (YenchangChan).parseDateTime64BestEffort, change{Year,Month,Day} and makeDateTime64. Previously the subsecond part was substracted from seconds instead of adding them. For example parseDateTime64BestEffort('1969-01-01 00:00:00.468') was returning 1968-12-31 23:59:59.532 instead of 1969-01-01 00:00:00.468. #85396 (xiaohuanlin).AggregateFunction(quantileDD) column could cause merges to recurse infinitely. #86560 (Raphaël Thériault).cluster table function. #86821 (Pavel Kruglov).IS NULL behavior on nullable columns in OUTER JOIN with optimize_functions_to_subcolumns, close #78625. #87058 (Vladimir Cherkasov).max_temporary_data_on_disk_size limit tracking, close #87118. #87140 (JIaQi).toDate and toDate32 for all numeric types. Fixes Date32 underflow check during cast from int16. #87176 (Pervakov Grigorii).input_format_try_infer_variants in schema inference cache. #87180 (Pavel Kruglov)._row_number virtual column and iceberg positioned deletes. #87220 (Michael Kolupaev).LOGICAL_ERROR in JOIN due to mixed const and non-const blocks. #87231 (Azat Khuzhin).MergeTree tables. #87285 (Anton Popov).s3_plain_rewritable (which may lead to all sort of troubles). #87426 (Azat Khuzhin).LOGICAL_ERROR. #87622 (Yarik Briukhovetskyi).command_read_timeout for executable dictionaries. #87627 (Azat Khuzhin).Merge over Distributed. #87687 (c-end).timestamp / timestamptz columns in Glue. #87733 (Andrey Zvonov).session_timezone setting in queries. #87987 (Eduard Karacharov).MergeTree tables with set column TTL. #88095 (Anton Popov).system.tables with invalid tables in external databases (PostgreSQL/SQLite/...) attached. #88105 (Azat Khuzhin).mortonEncode and hilbertEncode functions when called with empty tuple argument. #88110 (xiaohuanlin).ON CLUSTER queries will take less time in case of inactive replicas in cluster. #88153 (alesapin).prefix.path objects changed during the execution, not only the root one. #88198 (Mikhail Artemenko).is_shared flag in ColumnLowCardinality. It may lead to a wrong group-by result if a new value is inserted in a column after hash values are already pre-calculated and cached in the ReverseIndex. #88213 (Nikita Taranov).max_cpu_share. Now it can be used without max_cpus workload setting being set. #88217 (Neerav).SYSTEM STOP MERGES. #88241 (alesapin).system.projections and system.data_skipping_indices. #88330 (Azat Khuzhin).show_data_lake_catalogs_in_system_tables explicitly enabled. #88341 (alesapin).interserver_http_host configuration. #88378 (xiaohuanlin).countMatches function. Closes #88400. #88401 (Alexey Milovidov).ALTER COLUMN ... COMMENT commands for KeeperMap tables replicated so they are committed to Replicated database metadata and propagated across all replicas. Closes #88077. #88408 (Eduard Karacharov).group_by_overflow_mode is set to any. #88440 (Eduard Karacharov).query_plan_use_logical_join_step=0 with multiple FULL JOIN USING clauses. Closes #88103. #88473 (Vladimir Cherkasov).[941] 67c45db4-4df4-4879-87c5-25b8d1e0d414 <Trace>: RestoreCoordinationOnCluster The version of node /clickhouse/backups/restore-7c551a77-bd76-404c-bad0-3213618ac58e/stage/num_hosts changed (attempt #9), will try again. The num_hosts node is overwritten by many hosts at the same time. The fix makes the setting to control attempts dynamic. Closes #87721. #88484 (Mikhail f. Shiryaev).enable_analyzer=0(before 23.8, it's ok) select * from t1 s final join ( select * from t2 final ) r final on s.key = r.key join ( select * from t3 final ) c final on s.key = c.key Because JoinToSubqueryTransformVisitor will rewrite this SQL to SELECT `_--s.key` AS `s.key`, `_--s.value` AS `s.value`, `_--r.key` AS `r.key`, `_--r.value` AS `r.value`, `_--c.key` AS `c.key`, `_--c.value` AS `c.value` FROM ( SELECT value AS `_--s.value`, key AS `_--s.key`, r.value AS `_--r.value`, r.key AS `_--r.key` FROM t1 AS s FINAL ALL INNER JOIN ( SELECT key, value FROM t2 FINAL ) AS r FINAL ON `_--s.key` = `_--r.key` ) AS `--.s` ALL INNER JOIN ( SELECT value AS `_--c.value`, key AS `_--c.key` FROM ( SELECT key, value FROM t3 FINAL ) AS c FINAL ) AS `--.t` ON `_--s.key` = `_--c.key` We want to rewrite this SQL to(just move the last FINAL) SELECT `_--s.key` AS `s.key`, `_--s.value` AS `s.value`, `_--r.key` AS `r.key`, `_--r.value` AS `r.value`, `_--c.key` AS `c.key`, `_--c.value` AS `c.value` FROM ( SELECT value AS `_--s.value`, key AS `_--s.key`, r.value AS `_--r.value`, r.key AS `_--r.key` FROM t1 AS s FINAL ALL INNER JOIN ( SELECT key, value FROM t2 FINAL ) AS r FINAL ON `_--s.key` = `_--r.key` ) AS `--.s` ALL INNER JOIN ( SELECT value AS `_--c.value`, key AS `_--c.key` FROM ( SELECT key, value FROM t3 FINAL ) AS c ) AS `--.t` FINAL ON `_--s.key` = `_--c.key`. #88491 (JIaQi).accurateCast error message when converting large values to DateTime. #88520 (xiaohuanlin).iceberg_format_version=1. This closes #88444. #88532 (scanhex12).plain-rewritable disks for folders of arbitrary depth. #88586 (Mikhail Artemenko).use_skip_indexes_on_data_read and use_query_condition_cache). #88660 (Anton Popov).Poco::TimeoutException exception thrown from Poco::Net::HTTPChunkedStreamBuf::readFromDevice leads to a crash with SIGABRT. #88668 (Miсhael Stetsyuk).Failed to marked query-0004647339 as finished (finished=No node, synced=No node), it's fixed. #88671 (Alexander Tokmakov).system.zookeeper_connection_log in case ClickHouse connects for the first time after config reload. #88728 (Antonio Andelic).date_time_overflow_behavior = 'saturate' could lead to incorrect results for out-of-range values when working with time zones. #88737 (Manuel).loop table function. #88802 (pufit).top_k to respect the threshold parameter when called with a single argument. Closes #88757. #88867 (Manuel).reverseUTF8. In previous versions, it mistakenly reversed the bytes of UTF-8 code points of length 4. This closes #88913. #88914 (Alexey Milovidov).SET DEFINER <current_user>:definer when creating a view with SQL SECURITY DEFINER. #88968 (pufit).LOGICAL_ERROR in L2DistanceTransposed(vec1, vec2, p) where the optimisation for partial QBit reading incorrectly removed Nullable from the return type when p was Nullable. #88974 (Raufs Dunamalijevs).postgres 18.0. #87647 (Konstantin Bogdanov).NO_ARMV81_OR_HIGHER flag if Speculative Store Bypass Safe is unavailable. #88051 (Konstantin Bogdanov).ENABLE_LIBFIU=OFF, failpoint-related functions become no-ops and cannot impact performance anymore. SYSTEM ENABLE/DISABLE FAILPOINT queries return a SUPPORT_IS_DISABLED error in that case. #88184 (c-end)./clickhouse/base/base/wide_integer_impl.h:358:53: error: no member named 'make_pair' in namespace 'std' 358 | wide_integer_from_tuple_like(self, std::make_pair(value.low64, value.high64));. #88498 (buyval01).search_issues"'. #87715 (Mikhail f. Shiryaev).ReverseIndex"'. #88684 (Nikita Taranov).CoordinationMode-s. #87254 (Nikita Taranov).ReadBufferFromRemoteFSGather::setReadUntilPosition. #87296 (Miсhael Stetsyuk).SYSTEM FLUSH LOG query_log in our test 02765_queries_with_subqueries_profile_events. This has been the cause of a number of flaky tests where many clients stall waiting on log flushes (https://github.com/ClickHouse/ClickHouse/issues/85101). #87308 (Grant Holly).use_skip_indexes_on_data_read by default. #87368 (Robert Schulze).datalake_disk_name to disk. #87388 (Kseniia Sumarokova).KeyPair from PEM string or OpenSSL BIO. #87440 (Konstantin Bogdanov).clearDirectory. #87512 (Mikhail Artemenko).Ranges output in EXPLAIN indexes=1. #87543 (Azat Khuzhin).Iceberg and DeltaLake tables features: - Added clarification that custom disk configuration is supported via storage level setting disk - Corrected naming of Iceberg insertion settings to iceberg_insert_max_rows_in_data_file and iceberg_insert_max_bytes_in_data_file - Improved descriptions of Delta Lake and Iceberg file size limiting functionality. #87645 (Kseniia Sumarokova).02023_transform_or_to_in and 00066_sorting_distributed_many_replicas from parallel replicas blacklist, allowing them to run in parallel mode. #87648 (Igor Nikonov).Can't adjust last granule because it has 8192 rows, but try to subtract 16384 rows. #87764 (Vitaly Baranov).QBit: Add cloud badge, reserve encoding 0x36, and restructure vector docs. #87799 (Raufs Dunamalijevs).CheckStat by default. #87835 (Mikhail Artemenko).StoredObject directly instead of ObjectStorageKey. #87893 (Mikhail Artemenko).optimizeDirectReadFromTextIndex information to the debug level logs for testing. #87955 (Jimmy Aguilar Mena).MetadataStorageFromPlainObjectStorageMoveFileOperation when loading table metadata in DatabaseOnDisk. #88006 (Tuan Pham Anh).PageCacheMaxBytes metric. #88016 (Azat Khuzhin).ReadFromMergeTree. #88017 (Dmitry Novik).stack usage from the interface and remove outdated comments. #88019 (Dmitry Novik).network_compression_method. #88048 (Robert Schulze).test_jbod_balancer test occasionally fails with "There are still merges on-going after 20 assignments". It's likely due to recent changes in merge strategy which may result in more merge iterations needed to fully merge parts. Since the test performs 200 inserts, increase the merge attempt limit from 20 to 200 should be enough. The test still exits early when optimize_throw_if_noop confirms no more merges are possible, so this doesn't affect normal test time. #88104 (Amos Bird).hasAny/AllTokens. #88152 (Robert Schulze).removeRecursive from disk tx to meta tx removeRecursive, which can be useful for the meta blob tracker. #88160 (Mikhail Artemenko)..size subcolumn of String columns from compact parts. The issue was due to missing serialization context in IDataType::getSubcolumn() and related functions. Fixes #88167. Introduced in #82850 which is not released yet. #88187 (Amos Bird).database_replicated_drop_broken_tables to drop unexpected tables from Replicated databases. #88204 (Alexander Tokmakov).ReverseIndex. #88239 (Nikita Taranov).plain_rewritable disks. #88240 (Mikhail Artemenko).CORRUPTED_DATA exceptions. #88242 (Miсhael Stetsyuk).QBit: Narrowing optimisation and simsimd integration. #88243 (Raufs Dunamalijevs).CurrentMetrics::ConcurrentQueryAcquired. #88247 (Sergei Trifonov).--proto-caps option to clickhouse-benchmark. #88395 (Ahmed Gouda).AVX-512VL to dynamic dispatch and optimise QBit [un]transposition. #88445 (Raufs Dunamalijevs).ColumnBLOB should be converted to a regular column before usage from CREATE AS SELECT. #88544 (Nikita Taranov).--count; show every path where the clickhouse binary is searched. #88548 (Mikhail f. Shiryaev).plain-rewritable. #88596 (Mikhail Artemenko).max_joined_block_size_bytes) when using joined_block_split_single_row. #88600 (Vladimir Cherkasov).configs.tar.gz files. #88611 (Mikhail f. Shiryaev).s3queue_keeper_fault_injection_probability. #88965 (Nikita Fomichev).f02989_replicated_merge_tree_invalid_metadata_version.sql-test_kq50vskn, should be just the name of the test + database. This can break CI history analysis. #88994 (Mikhail Artemenko).